NEWS
Node-red iobroker Objekte in homekit einbinden
-
@minta79 Nun bei dem Rollladen musst Du halt wenn Du über Jarvis steuerst auch noch die Node mit der Position als TargetState füttern. Ansonsten stellt die Node halt nur fest dass CurrentPosition nicht mit TargetPosition übereinstimmt. Also einfach die Position triggern lassen und dann die Node mit der TargetPosition füttern. Nachdem ja insgesamt das Passthrough ausgeschaltet wurde (und das funktioniert - habe es ja selbst getestet), sollte es somit auch keine Endlosschleifen mehr geben.
Das mit dem Send only when ack==true rauszunehmen, halte ich nicht für sinnvoll. Ich meine Du kannst mit dem iobroker manuell steuern, ob ein state bestätigt oder nicht bestätigt gesetzt wird und ob es funktioniert oder nicht. Normalerweise sende eine Visualisierung unbestätigte Werte wie vis, jarvis oder auch HomeKit an den Adapter. Der sendet das dann an die Hardware und bestätigt das dann auch mit ACK=true.
In Node-Red kannst Du überprüfen, welche Nachrichten rein kommen und in diesem Fall geht es ja nur darum, dass der Status richtig angezeigt wird. Zur Statusübermittlung an die NOde brauchen wir nur bestätigte Nachrichten.Wenn Du steuerst musst halt immer darauf achten, dass Du in Deiner iobroker Out Node nur ACK=false schickst und das machst Du indem Du immer commands nie values schickst.
-
@mickym
Das mit dem Rolladen hat geklappt
Den Haken bei "Send only when ack==true" habe ich wieder reingesetzt,Warum die Shelly Steckdose so komisch reagiert und ich die zweimal anschalten muss, wie im Video oben zu sehen, weißt du auch nicht oder?
-
@minta79 Mit der Shelly weiss ich nicht, aber Du musst halt mal genau schauen, was passiert.
Vielleicht liegt es am Shelly Adapter. Ich habe auch keine Ahnung ob dieses Verhalten kommt wenn Du mit Homekit oder über Jarvis schaltest, wa passiert wenn Du den Datenpunkt über iobroker schaltest (bestätigt unbestätigt). Du musst doch erst mal rausfinden, was dieses Verhalten bedingt - jedenfalls hat das mit der Rückmeldung und dem ACK=true beim Setzen des Status der Homekit Node nichts zu tun. Du schaltest ja nichts mit den iobroker In Nodes in Node Red, sondern Du aktualisierst nur noch den Status der Nodes. Da es kein passthrough gibt schalten die In-Nodes nichts mehr. Lediglich die Homekit NOde an sich schaltet. Vielleicht übersetzt Du mal true und false in ON und OFF - vielleicht mag das der Shelly Adapter lieben. IN mqtt ist das so, aber der Adapter mag das selbst übersetzen. Deshalb mag ich diese Adapter alle nicht - aber das ist ein anderes Thema. Eventuell musst Du ein Shelly Spezi fragen - der wird wahrscheinlich sagen es liegt an NodeRed - aber man kann ja nicht mehr machen, als irgendeinen Wert true/false ON/OFF mit oder ohne ACK schreiben. Probiere es einfach manuell im iobroker aus und wie es am Besten passt, so schickst Du es halt raus. Inzwischen solltest Du genügend Kenntnisse haben.
Du kannst ja prüfen, wenn Du das erste Mal was rausschickst, ob das dann gleich wieder rein kommt. Vielleicht spukt Dir ja auch jarvis in die Suppe. Das musst Du befürchte ich alleine rausfinden. Ich kann Dir nur sagen, wie es funktionieren sollte und Dir Tipps geben, wie Du halt debuggst.
-
@mickym Vielen Dank für deine Hilfe! Werde mal auf die Suche gehen.
-
@minta79 sagte in Node-red iobroker Objekte in homekit einbinden:
@mickym Vielen Dank für deine Hilfe! Werde mal auf die Suche gehen.
Und falls es gar nicht anders geht ,dann musst halt mit einer Trigger Node alle Zwischennachrichten des Shelly Datenpunktes wegwerfen. Aber das sollte wirklich erst dann passieren, wenn man dem Ganzen auf den Grund gegangen ist.
Also am Besten mal aufschreiben, was man gemacht hat und wie es sich verhalten hat, damit man dann ggf. logisch die richtigen Schlussfolgerungen ziehen kann. Eventuell auch mal den Schalter aus jarvis rausnehmen. Du musst immer die Systeme einzeln betrachten um dem ganzen auf die Spur zu kommen.
-
@mickym ok mache ich. Danke
-
@mickym Manchmal ist es ganz einfach - habe rausgefunden, dass die Shelly Steckdose noch eine alte Firmware hatte. Sie hatte mir vorgegaukelt aktuell zu sein, war sie aber nicht. Und siehe da nach dem Update funktioniert alles einwandfrei
-
@minta79 Na das ist doch mal sehr erfreulich.
- Freut mich für Dich!
Für mich natürlich auch, dass ich nicht an meinem Verstand zweifeln muss.
-
Hi,
das passt zwar nicht ganz, aber fast
Ich verstehe das mit dem Übersetzen nicht ganz. Ich habe einen Shelly und möchte den an HomeKit anbinden. Der Schalter hat im Output folgendes stehen:object
relays: array[1]
0: object
ison: false
has_timer: false
timer_started: 0
timer_duration: 0
timer_remaining: 0
source: "http"
meters: array[1]
0: object
inputs: array[1]Der ison Teil zeigt hier true oder false....wie muss ich was anpassen, dass der Schalter ein sauberen true oder false gibt?
Vielen Dank!
-
Hi,
das passt zwar nicht ganz, aber fast
Ich verstehe das mit dem Übersetzen nicht ganz. Ich habe einen Shelly und möchte den an HomeKit anbinden. Der Schalter hat im Output folgendes stehen:object
relays: array[1]
0: object
ison: false
has_timer: false
timer_started: 0
timer_duration: 0
timer_remaining: 0
source: "http"
meters: array[1]
0: object
inputs: array[1]Der ison Teil zeigt hier true oder false....wie muss ich was anpassen, dass der Schalter ein sauberen true oder false gibt?
Vielen Dank!
-
Hier mal grundsätzlich wenn Du dieses Objekt hast.
[{"ison":true,"has_timer":false,"timer_started":0,"timer_duration":0,"timer_remaining":0,"overpower":false,"source":"http"}]
Dann ziehst Du es Dir einfach aus dem Objekt raus. Wenn Du mqtt nutzt - hast Du aber direkt einen Datenpunkt im relay Datenpunkt
und musst nicht den Info Datenpunkt bemühen.
Wie gesagt, um das true oder false aus dem Objekt rauszuholen gehst am besten ins Debug Fenster und kopierst den Pfad raus.
Du nimmst eine Change Node und extrahierst den Wert, wie hier gezeigt - in dem Du mit der Maus rechts neben den Dich interessierenden Wert gehst und den Pfad kopierst.
Ansonsten lieber den Relay 0 Wert nehmen und on und off in true und false übersetzen: