NEWS
Node-red iobroker Objekte in homekit einbinden
-
@mickym Vielen vielen Dank noch mal für deine Hilfe! Ich habe es jetzt so umgesetzt wie beschrieben. Allerdings kommt in der get-Node die "CurrentPosition" nicht an. Im Debug Node wird auch nichts angezeigt. Im in-Node wird sie angezeigt. Im ersten DP wird auch ein stop übergeben laut Debug Node.
-
@minta79 Na wenn in der DebugStop eine Nachricht rauskommt, dann muss auch aus der getNode was rauskommen, wenn das Topic richtig gesetzt is. Aus der getNode kommt ja nur der Wert der in dem Position Datenpunkt steht und da steht ja was drin.
Also nochmal topic in der position getNode überprüfen bzw. das Topic halt richtig auswählen.
Wenn in der DebugStop Node nichts rauskommt, aus der Debugstate aber schon, dann halt mal alle states im Debugfenster der Debugstate anschauen und schauen, ob eine stop richtig ist eventuell poste den output der Debugstate.
-
@mickym Aus der DebugStop Node kommt keine Meldung. Hier die Ausgaben:
![Bildschirmfoto 2022-01-01 um 21.55.21.png]
Im Topic steht der DP "Position". Den hatte ich auch vorher in dem in-Node drin. -
@minta79 Dann stimmt was an der switch Node nicht. Die stop Nachricht muss durchgelassen werden. Überprüf die switch Node nochmal. Vielleicht irgendwelche Leerzeichen dahinter oder vor dem stop - Groß und Kleinschreibung.
-
@mickym Hier noch mal die get Node
und die Switch Node
-
@minta79 sagte in Node-red iobroker Objekte in homekit einbinden:
@mickym Hier noch mal die get Node
und die Switch Node
@minta79 Da steht stiop
in der Switch NOde.
-
@mickym Oh nein, wie peinlich
Ich glaube es funktioniert jetzt.
Eine Frage noch. Immer wenn ich den Flow speichere/deploye dann steht der Schalter in HomeKIt immer auf geschlossen, egal wie der aktuelle Status ist. Ich muss dann erst den Rolladen kurz "bewegen", damit der richtige Status wieder angezeigt wird. Kann man das irgendwie triggern, dass der Homekit Schalter sich den aktuellen Status holt?
-
@minta79 Nun normalerweise passiert das nur, wenn Du NodeRed neu startest oder Du bei Deploy immer den ganzen Flow neu deployest und nicht nur die geänderten Nodes. Wenn es nach dem Neustart von NodeRed Probleme macht kannst Du in der iobroker IN Node spezifizieren, dass der Status zu Beginn ausgelesen wird.
-
@mickym Ah super. Danke für den Tipp.
Noch eine Frage bitte. Bei einer Steckdose habe ich das Problem , dass ich sie zwar mit dem Homekit Schalter an und aus bekommen, wenn ich aber den Status von anderweitig setze, z.B. über Jarvis, bekommt der Schalter den neuen Status nicht mit. Muss ich da dann auch mit einer get-Node arbeiten oder mit einem trigger o.ä.?
-
@minta79 Das Prinzip ist immer das Gleiche. Wenn Du anderweitig schaltest ändern sich ja die Datenpunkte des Gerätes und diese Änderungen sollten dann triggern um die homekit Nodes zu aktualisieren. Also mit In-Nodes. Wir haben nur bei dem Rolladen zusätzlich den Status des Rollladens auslesen müssen, getriggert hatte der state.
Sprich es ist Deine Aufgabe, dass die HomeKit Nodes den richtigen Status haben. Die HomeKit Nodes wiederum geben das aus, was Du in der Home App veränderst.
Du musst halt aufpassen, dass Du Dir keine Endlosschleifen einfängst. Sprich Du steuerst über einen Datenpunkt der gleichzeitig das gleiche Gerät triggert. Falls da so ist, dann musst Du eigene Marker ggf. einsetzen oder mit dem ACK Flag arbeiten, um zu unterscheiden, ob der Datenpunkt durch Bedienung der HomeApp oder durch Aktualisierung gesetzt wurde.
-
@mickym said in Node-red iobroker Objekte in homekit einbinden:
Du musst halt aufpassen, dass Du Dir keine Endlosschleifen einfängst. Sprich Du steuerst über einen Datenpunkt der gleichzeitig das gleiche Gerät triggert. Falls da so ist, dann musst Du eigene Marker ggf. einsetzen oder mit dem ACK Flag arbeiten, um zu unterscheiden, ob der Datenpunkt durch Bedienung der HomeApp oder durch Aktualisierung gesetzt wurde.
Genau das ist gerade mein Problem
-
@minta79 Gut dann musst Du mit dem ACK Flag arbeiten.
Unterbrich mal die Verbindung von der iobroker In Node und der HomeKit Node. Mache eine Debug Node an die iobroker In Node und analsiere das komplete Nachrichtenobjekt in der Debug Node.
Ein Debug Node mit dem kompletten Nachrichtenobjekte machst Du an die Homekit Node.
Die Nachricht die aus der Homekit Node rauskommt, sollte kein gesetztes ACK Flag haben. (Wenn Du die Steckdose über die APP bedienst)Die Nachricht aus der iobroker IN Node sollte ein ACK Flag gleich true haben. (Wenn Du die Steckdose anderweitig steuerst Jarvis etc.)
STOP:
Vielleicht geht das Ganze auch einfacher:
Schau mal wenn Du hier einfach in Deiner Bridge Konfiguration den Passthrough Haken rausmachst:
Dann sollte es auch keine Endlosschleifen geben. Wenn das nicht funktioniert, dann müssen wir die erste Methode anwenden.
Zusätzlich setzt Du in Deinen Iobroker In-Nodes noch
dann sollten die Nachrichten nicht doppelt kommen, insbesondere sollten dann die Nachrichten, die Du über jarvis oder andere Visualisierungen schreibst ausfilterst.
-
@mickym wenn ich den Haken rausnheme, geht die Steckdose kurz an und nach 2-3 Sekunden wieder aus
-
- Welchen Haken - Hast Du den Haken in Deiner HomeKit KonfigNode rausgenommen?
Das ist Prio 1.
- Den Haken in der Iobroker IN Node "Send only on then ack === true" den reinmachen und nicht rausmachen.
-
- den Haken bei "Allow Message Passthrough" habe ich rausgenomme
- den haken habe ich gerade gesetzt - trotzdem geht der Schalter nach ein paar Sekunden wieder aus - das muss doch an dem ACK Flag liegen, denn wenn ich den Status im iobroker Objekt setze passiert das gleiche wenn ich nicht "bestätige"
-
@minta79 sagte in Node-red iobroker Objekte in homekit einbinden:
@mickym ja den Haken bei "Allow Message Passthrough"
Wie gesagt und den Haken in der iobroker IN rein machen.
Die erste Nachricht dürfte gar nicht mehr rein kommen:
ACK = false.
Die Payload sollte dann auch nur noch false durchlassen - sprich Lampe ist ausgeschaltet.
-
@mickym Ausgabe sieht jetzt so aus
-
-
Nun die payload aus der homekit Node hast Du nicht ausgeklappt - da sehe ich nicht viel.
- Klapp das mal aus.
-
Die iobroker IN Node passt doch nun, es kommt nur noch eine Nachricht mit ACK = True und da ist die Steckdose aus (payload = false)
-
Hast Du die iobroker IN Node wieder mit der HomeKit NOde verbunden?.
Es sollte ja nun wenn Du das Objekt im iobroker schaltest, nichts mehr aus der Homekit Node rauskommen. Es sollte nur noch eine Nachricht rauskommen, wenn Du über die Home App schaltest.
Wie gesagt schaut aber eigentlich gut aus . dass kein ACK Flag gesetzt wird. Zu guter Letzt klemmst Du einfach die iobroker out Node ab und schaust ob Du einen Unterschied feststellen kannst, wenn Du aus der HomeApp oder über die iobrokerIn Node etwas in die Homekit App schickst.
-
-
@mickym Habe den Node wieder verbunden. Hier der komplette flow und die Ausgabe, wenn ich im iobroker objekt manuell schalte
-
@mickym Habe den out node abgeklemmt.
So sieht es aus, wenn ich über den homekit schalter schalte:
und so wenn ich das iobroker objekt manuell anpasse