Virtuelle INSTAR MQTT Kamera für homee

Das hier velinkte homee Tutorial ist noch Work-in-Progress - benötigt also etwas Feinschliff.

Wir haben bereits Anleitungen, wie man die HTTP-Schnittstellen von homee und einer INSTAR-Kamera miteinander verbindet. Dies funktioniert mit allen INSTAR-IP-Kameras. Im zweiten Tutorial haben wir Node-RED verwendet, um die homee HTTP-Schnittstelle mit der MQTT-Schnittstelle einer INSTAR Full HD Kamera zu verbinden.

Diesmal wollte ich mit Node-RED ein virtuellen homee erstellen, der direkt mit der MQTT-Schnittstelle der Kamera verbunden ist. Dieses virtuelle Gerät wird dann von einem realen homee gesteuert (hih).

Was schon funktioniert

  • Installation des homee Nodes in Node-RED (ioBroker Adapter).
  • Einbinden des so erstellten virtuellen homee’s über die homee UI
  • Anlegen von virtuellen Geräten im virtuellen homee, die Funktionen auf der Kamera schalten
  • Hinzufügen dieser virtuellen Geräte in der homee UI

Also kann man schon jetzt all diese Punkte - 12 Anwendungsbeispiele -, die zuvor über die HTTP Schnittstelle (CGI Befehle) umgesetzt wurden, jetzt auch über virtuelle Geräte und ein paar Automatisierungen zum Laufen bekommen.

Was noch nicht funktioniert

  • Damit ein virtuelles Gerät korrekt in der homee UI angezeigt wird, muß ein Profil und ein Typ gewählt werden.

Was ich bislang verstanden habe (und eventuell falsch ist): Das Profil gibt einem vor was für (Bedien-) Elemente einem zur Verfügung stehen - Knöpfe, Schalter, Schieber. Der Type definiert das eigentlich Element Type 1 = Schalter, Type 2 = Schieber, usw.

  • Wenn man einen Typ wählt der nicht zum Profil gehört, wird einem in der UI nichts angezeigt.
  • Wenn man in der JSON Defintion des Typs etwas falsches angibt, oder eine Information auslässt, wird einem in der UI nichts angezeigt.

Es gibt hier eine Liste aller Typen (AttributeType) in der man eine Bezeichnung und die dazugehörige ID bekommt. Des Weiteren gibt es noch eine Reihe von Beispiel Node-RED Flows auf Github. Und man muß sich wohl die passenden Kombinationen zusammensuchen.

Ich habe eine Reihe von Node-RED Flows für INSTAR Full HD Kameras erstellt, die, mit einer Ausnahme, bereits jetzt funktionieren - aber noch kleinere Probleme haben (siehe Kommentare). Und ich würde mir das jetzt noch weiter ansehen.

Aber falls jemand da schon etwas mehr Überblick hat - bitte hier posten :slight_smile: #helpwanted

Wäre es nicht einfacher für Euch die homee GmbH mit der vollständigen Integration (analog Netatmo) inkl. der Darstellung im Dashboard zu beauftragen? Das Alleinstellungsmerkmal könnte die vollständig lokale Integration sein. Ihr seht ja jetzt schon einen sprunghaften Anstieg der Verkäufe an homee User, stellt Euch mal vor wie das mit einer offiziellen Integration aussehen würde…

15 „Gefällt mir“

danke, dem kann ich nur beipflichten. Produkte die nicht vollständig in homee integriert sind kommen für mich nicht in Frage.
Aber natürlich jeder wie er will :slight_smile:
Grüße

Bisschen flexibel muss man aber auch mal sein.

2 „Gefällt mir“

Richtig, aber lass uns unsere Faulheit :wink:

Das von dir Holger :pensive:
OT off

1 „Gefällt mir“

Hey @INSTAR Mike,

Habe es geschafft normale RTSP Kamera Streams in ein vhih Geräte zu bekommen.
Ich konvertiere den Stream und speichere diesen auf nem Webserver und homee ruft diesen dann ab.
Könnte auch was für dich sein denke ich.
Sag Bescheid wenn du da paar Infos haben magst.

VG Micha

2 „Gefällt mir“

:wink:

Wenn man die Kamera schon so eingebunden hat ist man auch nur noch einen Copy&Paste Schritt davon entfernt die Kamera - und alle anderen am homee angebundenen Geräte - per Logitech Harmony Universal Fernbedienung bequem von der Couch aus zu nutzen:

Kamerakontrolle per Harmony:

  1. Anfahren von Preset Positionen
  2. Schrittweise Pan&Tilt Steuerung
  3. Aktivieren/Deaktivieren des Alarms wenn man zuhause angekommen ist, bzw. das Haus verläßt.
  4. Kurze Videoaufnahme auf Knopfdruck
  5. Manuelle Alarmauslösung zum starten aller aktiven Alarmaktionen
[{"id":"b26a205b.d0677","type":"fakeroku-device","z":"a5076ea7.7ad67","confignode":"2be0b813.29d1b8","x":80,"y":40,"wires":[["2b046956.4d3cb6","be58af7.98cd35","a9d93e53.614c8","a62be554.ee3458","3f0b1d37.2f7372"]]},{"id":"2b046956.4d3cb6","type":"switch","z":"a5076ea7.7ad67","name":"PTZ","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Up","vt":"str"},{"t":"eq","v":"Down","vt":"str"},{"t":"eq","v":"Left","vt":"str"},{"t":"eq","v":"Right","vt":"str"},{"t":"eq","v":"Select","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":286,"y":192,"wires":[["ad535231.93481"],["cb334ab7.b51a18"],["47db2c92.f34a84"],["5a6de1ad.b115f"],["e6ddab7a.b5b568"]]},{"id":"9ef72c0f.935c4","type":"mqtt out","z":"a5076ea7.7ad67","name":"features/ptz/movestep","topic":"instar/local/features/ptz/movestep/raw","qos":"1","retain":"","broker":"ac792e24.b9ef3","x":627,"y":192,"wires":[]},{"id":"ad535231.93481","type":"change","z":"a5076ea7.7ad67","name":"up","rules":[{"t":"set","p":"payload","pt":"msg","to":"up","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":415,"y":112,"wires":[["9ef72c0f.935c4"]]},{"id":"cb334ab7.b51a18","type":"change","z":"a5076ea7.7ad67","name":"down","rules":[{"t":"set","p":"payload","pt":"msg","to":"down","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":415,"y":152,"wires":[["9ef72c0f.935c4"]]},{"id":"47db2c92.f34a84","type":"change","z":"a5076ea7.7ad67","name":"left","rules":[{"t":"set","p":"payload","pt":"msg","to":"left","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":415,"y":192,"wires":[["9ef72c0f.935c4"]]},{"id":"5a6de1ad.b115f","type":"change","z":"a5076ea7.7ad67","name":"right","rules":[{"t":"set","p":"payload","pt":"msg","to":"right","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":415,"y":232,"wires":[["9ef72c0f.935c4"]]},{"id":"3df01041.4fb75","type":"inject","z":"a5076ea7.7ad67","name":"Activate","topic":"","payload":"","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":605,"y":91,"wires":[["d976997d.fd4008"]]},{"id":"d976997d.fd4008","type":"change","z":"a5076ea7.7ad67","name":"Initialize","rules":[{"t":"set","p":"counter","pt":"flow","to":"-1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":745,"y":91,"wires":[[]]},{"id":"a9c1729a.e5523","type":"function","z":"a5076ea7.7ad67","name":"Counter","func":"var status = msg.payload;\n\nvar counter = flow.get(\"counter\") || 0;\n\nif (status == \"Fwd\")\n    {\n        \n        if (counter < 3)\n        {\n            counter = counter + 1;\n            flow.set(\"counter\",counter);\n            return msg;\n        }\n        else\n        {\n            counter = 0;\n            flow.set(\"counter\",counter);\n            return msg;\n            \n        }\n    }\n    \nelse {\n        \n    if (counter > 0)\n    {\n        counter = counter - 1;\n        flow.set(\"counter\",counter);\n        return msg;\n    }\n    else\n    {\n        counter = 3;\n        flow.set(\"counter\",counter);\n        return msg;\n    }\n}\n\n ","outputs":1,"noerr":0,"x":412,"y":42,"wires":[["fad6fb17.77e6f8"]]},{"id":"be58af7.98cd35","type":"switch","z":"a5076ea7.7ad67","name":"FWD/REV","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Fwd","vt":"str"},{"t":"eq","v":"Rev","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":272,"y":40,"wires":[["a9c1729a.e5523"],["a9c1729a.e5523"]]},{"id":"7a8a17b1.e2f378","type":"mqtt out","z":"a5076ea7.7ad67","name":"features/ptz/preset","topic":"instar/local/features/ptz/preset/raw","qos":"1","retain":"","broker":"ac792e24.b9ef3","x":718,"y":42,"wires":[]},{"id":"fad6fb17.77e6f8","type":"function","z":"a5076ea7.7ad67","name":"Position","func":"msg.payload = flow.get(\"counter\") || 0;\n\nreturn msg;","outputs":1,"noerr":0,"x":550,"y":42,"wires":[["7a8a17b1.e2f378"]]},{"id":"a9d93e53.614c8","type":"switch","z":"a5076ea7.7ad67","name":"Home/Back","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Home","vt":"str"},{"t":"eq","v":"Back","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":277,"y":338,"wires":[["f3e9fd41.d8395"],["fabc1f41.1f26c"]]},{"id":"f3e9fd41.d8395","type":"change","z":"a5076ea7.7ad67","name":"1","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":416,"y":320,"wires":[["355ce377.fcf90c","49822082.660a","90548647.456b88","b7f8bedc.a4f0e","393d303d.e8f98"]]},{"id":"fabc1f41.1f26c","type":"change","z":"a5076ea7.7ad67","name":"0","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":416,"y":360,"wires":[["393d303d.e8f98","b7f8bedc.a4f0e","90548647.456b88","49822082.660a","355ce377.fcf90c"]]},{"id":"49822082.660a","type":"mqtt out","z":"a5076ea7.7ad67","name":"alarm/area1/enable","topic":"instar/local/alarm/area1/enable/raw","qos":"","retain":"","broker":"ac792e24.b9ef3","x":632,"y":307,"wires":[]},{"id":"90548647.456b88","type":"mqtt out","z":"a5076ea7.7ad67","name":"alarm/area2/enable","topic":"instar/local/alarm/area2/enable/raw","qos":"","retain":"","broker":"ac792e24.b9ef3","x":632,"y":353,"wires":[]},{"id":"b7f8bedc.a4f0e","type":"mqtt out","z":"a5076ea7.7ad67","name":"alarm/area3/enable","topic":"instar/local/alarm/area3/enable/raw","qos":"","retain":"","broker":"ac792e24.b9ef3","x":632,"y":399,"wires":[]},{"id":"393d303d.e8f98","type":"mqtt out","z":"a5076ea7.7ad67","name":"alarm/area4/enable","topic":"instar/local/alarm/area4/enable/raw","qos":"","retain":"","broker":"ac792e24.b9ef3","x":632,"y":445,"wires":[]},{"id":"355ce377.fcf90c","type":"mqtt out","z":"a5076ea7.7ad67","name":"features/ptz/preset","topic":"instar/local/features/ptz/preset/raw","qos":"1","retain":"","broker":"ac792e24.b9ef3","x":633,"y":260,"wires":[]},{"id":"a62be554.ee3458","type":"switch","z":"a5076ea7.7ad67","name":"Play","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Play","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":253,"y":504,"wires":[["d70cf264.cb336","c84b3ab8.9b43a8"]]},{"id":"437645a0.be9ddc","type":"mqtt out","z":"a5076ea7.7ad67","name":"features/manualrec/start","topic":"instar/local/features/manualrec/start/raw","qos":"1","retain":"","broker":"ac792e24.b9ef3","x":612,"y":504,"wires":[]},{"id":"d70cf264.cb336","type":"change","z":"a5076ea7.7ad67","name":"{\"val\":\"60\"}","rules":[{"t":"set","p":"payload","pt":"msg","to":"60","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":412,"y":504,"wires":[["437645a0.be9ddc"]]},{"id":"c84b3ab8.9b43a8","type":"delay","z":"a5076ea7.7ad67","name":"30s","pauseType":"delay","timeout":"30","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":248,"y":550,"wires":[["42e1db28.6e5834"]]},{"id":"1972140d.52346c","type":"mqtt out","z":"a5076ea7.7ad67","name":"features/manualrec/stop","topic":"instar/local/features/manualrec/stop/raw","qos":"1","retain":"","broker":"ac792e24.b9ef3","x":612,"y":550,"wires":[]},{"id":"42e1db28.6e5834","type":"change","z":"a5076ea7.7ad67","name":"{\"val\":\"off\"}","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":408,"y":550,"wires":[["1972140d.52346c"]]},{"id":"e6ddab7a.b5b568","type":"change","z":"a5076ea7.7ad67","name":"right","rules":[{"t":"set","p":"payload","pt":"msg","to":"stop","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":415,"y":271,"wires":[["9ef72c0f.935c4"]]},{"id":"3f0b1d37.2f7372","type":"switch","z":"a5076ea7.7ad67","name":"Info","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Info","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":231,"y":624,"wires":[["94c8802.fe1cf8"]]},{"id":"374425dd.eebaba","type":"mqtt out","z":"a5076ea7.7ad67","name":"alarm/pushalarm","topic":"instar/local/alarm/pushalarm/raw","qos":"1","retain":"","broker":"ac792e24.b9ef3","x":627,"y":624,"wires":[]},{"id":"94c8802.fe1cf8","type":"change","z":"a5076ea7.7ad67","name":"1","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":379,"y":624,"wires":[["374425dd.eebaba"]]},{"id":"2be0b813.29d1b8","type":"fakeroku-config","z":"","ip":"192.168.2.111","multicast":"239.255.255.250","uuid":"c1db5f4a35fd72dd8b9c5ec0a9dc696d","port":"9086"},{"id":"ac792e24.b9ef3","type":"mqtt-broker","z":"","name":"192.168.2.117 (PrivCert)","broker":"192.168.2.117","port":"8883","tls":"33d22969.642746","clientid":"nodered","usetls":true,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"33d22969.642746","type":"tls-config","z":"","name":"192.168.2.117 (PrivCert)","cert":"","key":"","ca":"","certname":"client.pem","keyname":"","caname":"","servername":"","verifyservercert":false}]

Beispiel: Auf Knopfdruck alle Alarmbereiche deaktivieren und Kamera zur Wand drehen, bevor man das Wohnzimmer betritt:

homee INSTAR Harmony dank INSTAR MQTT


Und @Micha, das schaue ich mir gerne mal an!

1 „Gefällt mir“

Wieder mal elegant ums eigentliche Thema (Ich spreche das Thema direkte Integration ja nicht zum ersten Mal an) rumgeredet :wink:

Ne, macht das - INSTAR direkt, bitte.

1 „Gefällt mir“

WIr haben jetzt auch einen MQTT Alarmserver hinzugefügt. D.h. wo man zuvor den HTTP Alarmserver nutzen musste um einen Webhook zu benachrichtigen, kann man jetzt direkt mit einem virtuellen homee Gerät in Node-RED das entsprechende MQTT Topic abonieren und erhält darüber Info das ein Alarm stattgefunden und was diesen ausgelöst hat. Jetzt muß man das nur noch hübsch ins homee Dashboard bekommen :slightly_smiling_face:

1 „Gefällt mir“

Mit einer direkt eingebunden native Integration in homee. Dazu müsste es nur Gespräche zwischen instar und homee geben und man sich auf was einigen kann. Ganz ohne Umwege über Drittdienste und zusätzliche Hardware. :wink:

15 „Gefällt mir“

Danke, dass das auch mal jemand anderes als ich sagt - auch wenn ich (so hab ich es aus PNs herausgelesen) da wenig Hoffnung für habe. @Chris - bei den Kameras muss endlich mal was passieren, macht das zu einer Win-Win-Situation für zwei Deutsche Hersteller, bitte…

11 „Gefällt mir“

Ich sehe das auch so. Bin auch kurz davor mir eine INSTAR zu kaufen. Wenn die schon nativ im homee wäre, hätte ich schon eine … oder zwei … oder drei?!?

4 „Gefällt mir“

Ich bin ebenfalls sehr angetan von den Instar Kameras, aber ohne Native Integration werde ich mir leider keine kaufen. Liebe Grüße

3 „Gefällt mir“

Kann mich nur anschließen. Wäre für mich ein absolutes Kauf-Argument.
LG

3 „Gefällt mir“

Für mich ebenfalls, mir fehlt einfach die Zeit für Basteleien und auch das Wissen dazu.

Gruß

2 „Gefällt mir“

Bereite gerade mein Setup schonmal für die hoffentlich bald eintreffende instar Cam vor und hab deswegen schon Mal bei meinem iobroker den matt Broker Adapter installiert. In Node red have ich im die Verbindung zu testen einen mqtt in Node platziert. Die Verbindung klappt auch so lange ich ssl deaktiviert lasse. Sobald ich beim Broker aber ssl mit den Default Zertifikaten aktiviere bekommt der node rede mqtt node keine Verbindung mehr hergestellt. In dem NR mqtt config node habe ich ssl abgehakt bin mir aber nicht sicher, was ich in den tsl Einstellungen eintragen muss. Kann mir da jemand helfen?

Den MQTT Adapter + SSL in ioBroker habe ich auf die Schnelle nicht zum Laufen bekommen. Wenn man da im ioBroker Forum nach sucht findet man Hinweise, man soll einen NGINX Proxy zum Verwalten des SSL Certs davor schalten. Erschien mir zu kompliziert.

In Node-RED kann man einfach das INSTAR cert in den MQTT Knoten Laden, Benutzer Auth dazu und schon läuft es über SSL.

Wenn jemand eine schöne Anleitung für ioBroker MQTT + SSL hat, wäre ich aber auch dran interessiert :wink:

Sehe ich genauso.

:+1:t2:
Dann wird die Cam aber der Broker und nicht der Client, oder?