HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
iLion
Beiträge: 11
Registriert: 12. Mai 2020 20:15
Answers: 0

HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Beitrag von iLion »

Hallo,

ich komme bei einer Konfiguration nicht weiter und hoffe auf Eure Hilfe. In meiner Installation nutze ich die Bewegungsmelder von zwei Instar-Kameras. Diese können alle möglichen Werte per MQTT übertragen und unterstützen auch einen Alarmserver. Ist z.B. keine Bewegung erkannt, ist ein zugehöriges Topic bei MQTT auf 0, wird über den Bewegungsmelder eine Bewegung erkannt, wechselt der Wert auf 5. Jetzt hat die Firmware anscheinen einen Fehler, den ich schon mal mit dem Instar-Support besprochen habe, allerdings hat sich bisher nichts geändert. Ist die Bewegung weg, bleibt das Topic auf 5 stehen und wechselt nicht auf 0 zurück. Schlecht, wenn man den Wechsel als Trigger nutzen möchte.
Ich habe daher schon lange in Node-RED einen Ablauf eingerichtet, bei dem ich den Alarm in Node-RED abfrage, und dann per MQTT den Wert zwischen 5 oder 0 wechseln lasse. Das ganze geht per HTTP GET in Node-RED und funktioniert tadellos. Allerdings ist damit meine openHAB-Installation halt auch von Node-RED abhängig und ich würde das gerne mit openHAB selber lösen. Ich habe mir schon die Dokumentation zu dem HTTP-Binding angesehen, verstehe es aber nicht, bzw. wie ich den Alarm-Server mit einem Item verbinden könnte. Hat hier jemand ein Beispiel, dass ich eventuell adaptieren kann? Ich hatte gestern Abend im Forum schon gesucht und etwas gefunden, was wohl aus einem Gerät Werte ausliest. Ganz erschlossen hat sich das aber in Verbindung mit den Kameras nicht.

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Beitrag von udo1toni »

Wenn die Werte doch per mqtt kommen, warum machst Du mit http rum?
Wie gehst Du mit einem "hängenden" Wert um? Setzt Du den Wert einfach nach einer Zeit X wieder zurück? Das kannst Du über mqtt genauso machen, Du musst nur möglichst einen getrennten Channel dafür nutzen und auf das betreffende Topic schreiben. Wenn der Alarm ausgelöst wird, wartest Du dann in openHAB X Sekunden und schreibst anschließend einfach die 0 in das Topic. Dass die Cameraa auf diesem Topic sendet, ist dabei egal.

Alternativ kannst Du aber auch in openHAB einfach auf received update 5 reagieren und Dir in openHAB selbst (über ein weiteres Item) einen Timeout bauen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

iLion
Beiträge: 11
Registriert: 12. Mai 2020 20:15
Answers: 0

Re: HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Beitrag von iLion »

udo1toni hat geschrieben: 6. Sep 2023 22:56 Wie gehst Du mit einem "hängenden" Wert um? Setzt Du den Wert einfach nach einer Zeit X wieder zurück?
Hallo Udo,

tatsächlich mache ich es genau so in Node-RED. Wenn der Wert 5 empfangen wurde, warte ich 15 Sekunden und überschreibe ihn dann mit 0.

Du hast grundsätzlich mit Deiner Idee recht, ich hatte mir das auch schon überlegt. Der Grund über das HTTP-Binding nachzudenken war nur, den mqtt-Broker nicht mehr als Mittler zwingend dabei zu haben, sondern die Kameras direkt mit openHAB reden zu lassen.

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Beitrag von udo1toni »

iLion hat geschrieben: 8. Sep 2023 20:48Der Grund über das HTTP-Binding nachzudenken war nur, den mqtt-Broker nicht mehr als Mittler zwingend dabei zu haben, sondern die Kameras direkt mit openHAB reden zu lassen.
Dafür musst Du dann im Vergleich katastrophal komplex konfigurieren, und sobald Du irgendwelche Hardware andockst, die über mqtt Autodiscovery unterstützt, ist die Wahl nicht mehr schwer und mosquitto zieht wieder ein. Und es gibt wirklich viel Hardware, die mqtt unterstützt, die Wahrscheinlichkeit ist recht hoch, dass sie Dir früher oder später unterkommt...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

iLion
Beiträge: 11
Registriert: 12. Mai 2020 20:15
Answers: 0

Re: HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Beitrag von iLion »

Ok, ich habe nun eine erstaunlich einfache Lösung gefunden, die ohne Node-RED auskommt, obwohl ich mir das "warum klappt das jetzt" noch nicht ganz erklären kann. Die Kameras schreiben einen Zahlenwert in ".../status/alarm/triggered", wobei "0" für kein Alarm steht und "5" z.B. für den PIR-Sensor. Laut MQTT-Explorer ist das ein "RETAINED"-Topic und wenn der Alarm nicht mehr erkannt wird, steht da leider auch nicht automatisch "0". Das hatte ich ja mit Node-RED übernommen. In openHAB ist der Alarm ein Item vom Typ Switch, dessen Kanal diesem Topic zugeordnet ist, und über eine Transformation werden die Zahlen in "AN" und "AUS" übersetzt. Durch die fehlende "0" wurde der Schalter jedoch nie ausgeschaltet. Und genau das mache ich jetzt in meiner Regel und schicke direkt als erstes ein itemName.sendCommand(OFF) und arbeite dann den Rest ab. openHAB kommt offensichtlich damit zurecht, denn wenn eine weitere Bewegung erkannt wird und der Wert "5" (erneut) ankommt, dann schaltet der Schalter wieder auf "AN", wird von der Regel abgeschaltet und das Spiel beginnt von vorne.

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HTTP GET Funktion (Instar Kamera) von Node-RED auf openHAB verlegen

Beitrag von udo1toni »

Ja, das geht natürlich auch.
Allerdings kannst Du statt .sendCommand(OFF) auch .postUpdate(OFF) verwenden, das ist schneller :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten