Funktionsfrage zum HTTP-IN Node


#1

Hallo allerseits,
hänge gerade mal wieder bei einer Einstellung fest und wollte mal um Rat nachfragen.

Ich habe vor mittelfristig meine Doorbird mit der SONOS Anlage zu verknüpfen, damit jedesmal, wenn der Klingeltaster gedrückt wird, ein Klingel-Audiofile abgespielt wird.
Habe dazu auch schon einige Sachen gefunden und ausprobiert. Jetzt hängt es aber irgendwie am HTTP-IN Node…
Dazu habe ich die Vorlage von @Micha aus dem Beitrag hier verwendet und diese in Node-Blue importiert. Anschließend habe ich im Homegearverzeichnis:

/var/lib/homegear/www/rpc

eine Datei mit dem Namen: dingdong.html erzeugt mit dem Inhalt:

<html>
    <head></head>
    <body>
        <h1>Hello World!</h1>
    </body>
</html>

Wenn ich jetzt im Browser die Adresse: http://192.168.178.69:2001/dingdong.html eingebe, erscheint wie gewünscht:

Hello World!

Soweit so gut...

Nun habe ich zum Testen in Node-Blue folgenden Flow erstellt:


Wenn ich nun über die constant-node die http-request-node anstupse erhalte ich in der debug-node wie erwartet die payloads der http-request-node und der template-node.

Wenn ich jetzt aber die Adresse im Browser eingebe, habe ich erwartet, dass der http-in-node entsprechend aktiv wird, weil dieser doch auf den request der URL hört. Es passiert aber leider nichts.

Ich wollte eigentlich später die Doorbird so einrichten, dass bei Betätigung des Klingeltasters die oben erwähnte Adresse aufgerufen wird und somit der Flow gestartet wird.

Bin mir sicher, dass es wieder nur eine Kleinigkeit ist, die ich übersehe. Oder ist hier mein Verständnis der http-in-node grundlegend falsch?

Hier noch der exportierte Flow.txt (3,3 KB) zur Einsicht.

Bin für alle Tipps sehr dankbar.


#2

Hey Frott,

also irgendwie hast du da zwei komplett verschiedene Sachen gemacht :wink:

Damit hast du eine Datei in das Webroot-Verzeichniss von Homegear gelegt, welche auch direkt vom Homegear-Webserver ausgeliefert wird. Das hat erstmal nichts mit node-blue zu tun.

Das ist auch korrekt. Du triggerst ja einen http-request, der dir ein GET auf deine lokale Homegear-Instanz an Port 2001 macht (auf dem ja auch der Homegear-Webserver “lauscht”).

Das liegt daran, dass deine HTTP endpoint-node auf dem gleichen Port lauschen soll wie der Homegear RPC-Server (2001). Das wird so nicht funktionieren, deine endpoint-node muss einen anderen Port als 2001 (bzw. einen der anderen Ports auf den der Homegear RPC/Webserver “lauscht”) konfiguriert werden. In meinem Beispiel ist es Port 8080. Weiterhin musst du das “http” in der Konfiguration der HTTP-Server node weg lassen, dort gehoert (IIRC) nur die IP in das Feld “Listen address”.

Im Prinzip kannst du eigentlich direkt mein Beispiel nehmen und musst nur die http-in node anpassen (IP-Adresse / URL) :wink:

– Micha


#3

Ahh, okay.

Dann habe ich die Funktion ganz falsch gedeutet. Aber vielen Dank nochmals, es funktioniert jetzt schon mal.
Jetzt muss ich es nur noch hinkriegen, dass die SONOS Lautsprecher in allen Räumen synchron angehen und nicht willkürlich zeitversetzt, dann bin ich fertig. Werde sie vermutlich gruppieren müssen, mal sehen …

Wenn es dann zuverlässig funktioniert, könnte ich hier ein “how to” für das Verbinden der Doorbird mit SONOS reinstellen, so einfach erklärt, dass auch die nächsten Anfänger wie ich das einfach nachmachen können.

Vielen Dank nochmals @Micha


#4

Das geht wunderbar mit der synchronous-node, in dem angehaengten Beispiel zu sehen.

Ich erstelle aus 2 Speakern eine Gruppe (“Esszimmer” + “Buero”), setze das Volume, lasse es klingeln, loese danach die Gruppe wieder auf und setze das Volume auf die initiale Lautstaerke. Die initiale Lautstaerke speichere ich in dem Flow global bei Aenderung in eine Flow-Variable, das ist jetzt im Beispiel nicht dabei …

– Micha

doorbird-flow.txt (3.6 KB)