Beiträge von sschuste

    Ich bin kein Elektriker. Sieh dir doch mal das hier an:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Und hier für die Basics (ist kein Figaro, sonders Sonoff, aber egal, halt Basics):

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Es tut mir ja leid, euch mitteilen zu müssen, dass ihr vielleicht doch allein seid, aber bei mir klappt das. Ich habe allerdings nur eine Automation für das Ankommen eingerichtet. Dort werden meine HUEs eingeschaltet und zwei meiner Eve Energys. Eingerichtet habe ich diese Automation mit Apple Home. Steuerung via Apple TV 4.

    Maz Das mit den Schalter war mir klar, habe ich ja auch so. Dachte es gibt vielleicht noch eine andere Lösung, werden sonst ganz schön viele Schalter. Testest du noch das TTS?

    Das TTS hab ich getestet. Ich hab mir einen Account bei http://www.voicerss.org angelegt und dann das kostenlose Paket gewählt. Das erlaubt immerhin 350 Speech-Ausgaben am Tag. Das reicht mir völlig.


    Ich habs genauso installiert wie in der Github-Seite angegeben und es hat auch gleich funktioniert. Aber: hier gibt's erstrecht Probleme mit den Leerzeichen oder ganz anderen Sonderzeichen. Ein API-Call wie

    Code
    /Wohnzimmer/say/Wasn los hier?

    muss urlencodet werden in

    Code
    /Wohnzimmer/say/Wasn%20los%20hier%3F

    Ich habe mich dann nicht weiter drum gekümmert, weil ich dafür gar keine Anwendung habe. Um diese Codierung vorzunehmen, benötigt man ein urlencode-Programm oder man macht's nach einer Tabelle wie hier zu sehen: https://de.wikipedia.org/wiki/…hen_in_Prozentdarstellung oder online: https://www.urlencoder.org.


    Die Sprachqualität ist eher mäßig, aber auch auf deutsch zu bekommen. Ob am Ende ein Fragezeichen steht oder nicht, spielt für die Aussprache keine Rolle - hört sich immer gleich an.

    Das ist doch schon Mega. Wie machst du das mit den Lautstärken?

    Also, das kann man erstmal ganz schön im Browser auf dem Rechner testen.


    Meine Sonos-Zone heißt übrigens "Wohnzimmer".

    Die IP meines Raspis ist 192.168.1.21


    http://192.168.1.21:5005/Wohnzimmer/volume/40 setzt die Lautstärke auf 40%

    http://192.168.1.21:5005/Wohnzimmer/volume/0 setzt die Lautstärke auf 0%

    http://192.168.1.21:5005/Wohnzimmer/volume/100 setzt die Lautstärke auf 100%


    Wenn die Sonos-App auf dem Rechner gestartet ist, kann man dort direkt nachverfolgen, was der Lautstärkeregler so treibt.


    Ich nehme an, dass man die Zone "Wohnzimmer" auch weglassen kann und dann werden damit dann alle Sonos-Lautsprecher in allen Zimmern angesprochen. Ich hab augenblicklich aber nur welche in einem einzigen Raum. Also:


    http://192.168.1.21:5005/volume/40 (hab's nicht getestet)


    Abspielen tu ich mit

    http://192.168.1.21:5005/Wohnzimmer/play

    http://192.168.1.21:5005/Wohnzimmer/pause


    Dann gibt's noch so einiges anderes wie

    http://192.168.1.21:5005/Wohnzimmer/next

    http://192.168.1.21:5005/Wohnzimmer/previous

    http://192.168.1.21:5005/Wohnzimmer/mute


    Das geht alles im Browser. Auf der Raspi-Shell nimmt man curl:

    curl http://192.168.1.21:5005/Wohnzimmer/play


    Vieles andere findet man noch auf der Projektseite im Github

    https://github.com/jishi/node-sonos-http-api


    Dort aufgepasst! Die Beispiele dort nehmen die Zone "living room". Zwei Wörter mit einem Leerzeichen dazwischen sind der Tod jeder URL. Das muss erst noch URLencoded werden, das heißt, das Leerzeichen wird durch "%20" ersetzt.


    Aus http://localhost:5005/living room/volume/15

    wird dann http://localhost:5005/living%20room/volume/15


    Gruß

    Dann kannst du ja mal Meldung machen wenn du die API etwas getestet hast. Ich nutze sie zur Zeit nur für Sprachausgaben. Ich würde aber gerne noch Radiosender und Playlisten etc einfügen, aber ich habe noch kein Plan wie das funzt.

    So, allzu viel kann ich mir der API nicht anfangen, aber sie ist trotzdem im Einsatz. Ich stelle damit in bestimmten Szenen nur die Lautstärke meines Sonos-Zeugs ein. Beispielsweise schaltet nun ein "Siri, Kino ein" etwaig laufende Musik aus und hebt die Lautstärke der Lautsprecher an. "Kino aus" macht das Gegenteil: Lautsprecher leiser und Musik wieder an.


    Eine Szene wie "Siri, mach, dass die Nachbarn das Haus verlassen" könnte also die Lautstärke auf Maximum schalten und üblen Thrash Metal abspielen. Das noch mit Geofencing verbunden, und du bist selbst schon ein paar hundert Meter weg, bevor es losgeht :D


    Verbunden hab ich die API einfach mit Homebridge-http.

    so ist es OK, wobei es eigentlich nur von root oder system gestartet/bearbeitet werden sollte,

    Eigentlich ist das nicht ganz richtig. Manche Startskripte müssen von root gestartet werden, andere können auch von normalen Usern gestartet werden. In vorliegenden Fall läuft der Service sowieso unter dem User pi (das liegt an dem verwendeten Startskript, das den Service mit einem sudo -u pi node server.js startet). Das hat die Vorteile, dass


    a) der Service nicht mit root-Rechten läuft - einfallende Hacker, die diesen Service missbrauchen, haben damit nur die Rechte des Users pi, wenn sie euren Raspi und danach euer Netz verwüsten


    b) der User pi den Service selber starten kann und nicht extra einen Admin rufen muss (na gut, in unserem Fall egal, sind wir nicht alle ein bisschen root?).


    Ich empfehle sogar, alles Zeugs, dass keine root-Rechte braucht, auch nicht mit root-Rechten zu starten. Da bei Systemstart allerdings alle Skripte von root gestartet werden, muss das Startskript das dann selbst händeln (so, wie oben schon beschrieben).


    Trotzdem würde ich das Startskript selbst immer absichern mit

    sudo chown root /etc/init.d/mein-geiles-startscript

    damit keiner ohne root-Rechte es verändern kann.


    Damit jedermann die Startskripte nutzen kann, müssen natürlich die darüber liegenden Verzeichnis ebenfalls offen sein, also /etc und /etc/init.d. Und per default sind die das auch.


    Jaaa, aber, wird jetzt der eine oder andere vielleicht sagen und fragen: was ist jetzt mit den Startscripten, die nur root aufführen darf und kein anderer? Wasn mit denen?


    Falls die Skripte nicht von selbst abbrechen, weil sie Funktionen aufrufen, für die man root-Rechte braucht (oder die abbrechen, weil in Ihnen eine Abfrage steckt, die den root-User abfragen, oder die abbrechen, weil ein Service auf einem Port gestartet werden soll, der root vorbehalten ist): einfach ein


    sudo chown root /etc/init.d/mein-geiles-startscript

    sudo chmod 700 /etc/init.d/mein-geiles-startscript


    drüberbügeln. Allerdings rate ich dringendst davon ab, an den Startskripten herumzufummeln, die man nicht selber geschrieben habt. Ich rate auch davon ab, mit chmod 777 irgendwas die Dinge gangbar zu machen, die irgendwie nicht gehen wollen, und ich rate davon ab, chmod -R einzusetzen, bevor man nicht zwei Stunden intensiv darüber nachgedacht hat, was das bewirkt und ob man das auch wirklich braucht.


    Gruß

    Wie bist du eigentlich auf : cmd="npm start gekommen ? Würde es mit cmd = node server.js auch laufen?

    Nun, das stand ja so in der Installationsanleitung auf https://www.mkshb.de/howto-node-sonos-http-api-installation/ . Unter der Überschrift Der erste Start steht, ich solle


    npm start


    eintippern. Da ich immer alles mache, was man mir sagt, hab ich diesen Befehl auch für das Startscript verwendet. Allerdings funktioniert das bei mir auch mit cmd="node server.js".


    Da ich diesen ganzen Node-Verhau unübersichtlich und gruselig finde, kann ich Detailfragen dazu leider nicht beantworten.

    Ich kannte sie bislang nicht. Das ist ja das schöne an diesem Forum - ständig wird man hier mit der Nase auf neues Spielzeug gestoßen. Jetzt muss ich erstmal ausprobieren, was das kann und ob ich es brauchen kann.

    Quatsch. Vergiss es. Ich arbeite dran.

    Sodele. Bei mir startet der Server mit diesen Zeilen:


    dir="/home/pi/node-sonos-http-api-master"

    cmd="npm start"

    user="pi"


    Das Startscript heißt bei mir


    /etc/init.d/sonos-http-api-master


    und ich habe ihm die notwenigen Rechte mit dem Befehl


    sudo chmod 755 /etc/init.d/sonos-http-api-master


    gegeben.

    Vielleicht funktionieren die ja mit Alexa nicht, weil glücklicherweise andere die Privatsphäre höher einschätzen 8o

    :thumbup:Allerdings finde ich es jetzt nicht soooo wichtig, wie hoch andere den Wert meiner Privatsphäre einschätzen. Ich hab mir nämlich die Mühe gemacht, über diese nachzudenken und sie sozusagen auf den "Prüfstand" zu setzen. Ist nicht viel übrig geblieben, was unbedingt privat bleiben müsste :huh: Ist der Ruf erst ruiniert... Aber das ist natürlich jedermanns eigene Sache.


    Das ich Alexa einsetzen muss, finde ich höchst ärgerlich und ich habe mich eine Weile dagegen gesträubt. Aber von Apple kommt schlichtweg nichts Brauchbares. Siri ist ein bisschen "schlauer" als Alexa, und Alexa ist viel umständlicher, kann dafür aber viel weniger - trotz Skills! Die sind oft halbherzig gemacht und nicht bis zu Ende gedacht. "Alexa, öffne $SKILL und $VORGEFERTIGTER_SATZ": nee, das ist völlig unelegant.


    Ist so ähnlich wie der Apple Newton vs. den Palm Pilot. Ersterer lernte meine Schrift, letzterer zwang mich, seine Schrift zu lernen. Das war vor 25 Jahren, aber ich werd auch nicht jünger und hab dementsprechend noch weniger Lust, Alexas Befehle auswendig zu lernen.


    Demgegenüber steht ein Echo Dot für 35 Euros, der mich in der ganzen Wohnung versteht, teilweise durch mehrere Zimmer hindurch, ohne dass ich sonderlich laut sein müsste. Das Gegenstück von Apple heißt HomePod, kostet das Zehnfache und kann Sachen, die ich nicht brauche - Lautsprecher hab ich hier nämlich schon genug. Das kann ich leider nicht gebrauchen. Leider! Apple, ihr seid ein paar Penner und überlasst Amazon diesen Markt mit allem Schnickschnack - ohne Steve Jobs seid ihr zu doof, wirklich coole Sachen zu entwickeln.


    Egal, gehört alles nicht zum Thema hier und deswegen nehm ich jetzt mein Lieblingskissen und heul da rein.