NEWS
Homematic IP Cloud Access Point Adapter
-
Moin zusammen, ich hätte da mal ein Anliegen und hoffe, dass ich hier richtig bin :)
Ich nutze seit einigen Jahren ein HMIP-System zusammen mit ioBroker. Seit etwa 1-2 Jahren habe ich ein sporadisches Problem mit der Statussynchronisation, das mich langsam ratlos macht:
Ein Bewegungsmelder schaltet über ein JavaScript Lampen an. Das funktioniert immer tadellos.
Nach x Minuten sollen die Lampen per Skript wieder ausgeschaltet werden. Im Log erscheint dann: "Value unchanged, do not send this value".
Die Lampen bleiben in echt AN, aber im ioBroker-Objekt unter state steht der Wert bereits auf false.
Es wirkt so, als würde der Adapter den "echten" Status (AN) von der Zentrale nicht mitbekommen. Da der Adapter intern glaubt, die Lampe sei schon aus (false), blockiert er den Ausschaltbefehl.Das Interessante dabei:
Der Fehler tritt absolut sporadisch auf. Mal läuft es wochenlang gut, mal passiert es zweimal die Woche.Hardware-unabhängig: Das Problem trat früher schon auf dem Raspberry Pi auf und besteht weiterhin, seit ich auf Docker (Synology) umgezogen bin.
Zentralen-unabhängig: Ich hatte den Fehler schon vor der HCU und er wandert mit.
Logstufe auf SILLY zeigt keine Fehler. Er scheint nicht mehr zu synchronisieren.
Der Adapter bleibt durchgehend "grün".Ein Neustart des hmip-Adapters behebt das Problem sofort für unbestimmte Zeit.
Hat jemand eine Idee, warum der ioBroker den Status-Update von Homematic verpasst oder warum der Adapter "einschläft", obwohl die Instanz grün bleibt?
Meine aktuelle Umgebung:
Node.js: v22.22.0
hmip-Adapter: v1.27.0
Installation: Docker (manuelles Setup) auf Synology DS925+
Vielen Dank vorab für eure Tipps!
-
Moin zusammen, ich hätte da mal ein Anliegen und hoffe, dass ich hier richtig bin :)
Ich nutze seit einigen Jahren ein HMIP-System zusammen mit ioBroker. Seit etwa 1-2 Jahren habe ich ein sporadisches Problem mit der Statussynchronisation, das mich langsam ratlos macht:
Ein Bewegungsmelder schaltet über ein JavaScript Lampen an. Das funktioniert immer tadellos.
Nach x Minuten sollen die Lampen per Skript wieder ausgeschaltet werden. Im Log erscheint dann: "Value unchanged, do not send this value".
Die Lampen bleiben in echt AN, aber im ioBroker-Objekt unter state steht der Wert bereits auf false.
Es wirkt so, als würde der Adapter den "echten" Status (AN) von der Zentrale nicht mitbekommen. Da der Adapter intern glaubt, die Lampe sei schon aus (false), blockiert er den Ausschaltbefehl.Das Interessante dabei:
Der Fehler tritt absolut sporadisch auf. Mal läuft es wochenlang gut, mal passiert es zweimal die Woche.Hardware-unabhängig: Das Problem trat früher schon auf dem Raspberry Pi auf und besteht weiterhin, seit ich auf Docker (Synology) umgezogen bin.
Zentralen-unabhängig: Ich hatte den Fehler schon vor der HCU und er wandert mit.
Logstufe auf SILLY zeigt keine Fehler. Er scheint nicht mehr zu synchronisieren.
Der Adapter bleibt durchgehend "grün".Ein Neustart des hmip-Adapters behebt das Problem sofort für unbestimmte Zeit.
Hat jemand eine Idee, warum der ioBroker den Status-Update von Homematic verpasst oder warum der Adapter "einschläft", obwohl die Instanz grün bleibt?
Meine aktuelle Umgebung:
Node.js: v22.22.0
hmip-Adapter: v1.27.0
Installation: Docker (manuelles Setup) auf Synology DS925+
Vielen Dank vorab für eure Tipps!
@Mechler sagte in Homematic IP Cloud Access Point Adapter:
Dann zeig doch mal das Skript. Nur dann kann man eventuelle Fehler sehen.
-
@Mechler sagte in Homematic IP Cloud Access Point Adapter:
Dann zeig doch mal das Skript. Nur dann kann man eventuelle Fehler sehen.
Ich glaube nicht, dass es an den Scripts liegt, da es in dem Moment auch so ist, wenn ich den Datenpunkt "on" manuell über den objektbaum setze das gleiche Verhalten haben.
Hier aber mal ein Script von einem der Bewegungsmelder.
Die DP vom RPC Adpater laufen immer ohne Probleme.var An__überprüfen, Mülll_war_an, Terasse_2_war_an, Terasse_1_war_an, BWM1; An__überprüfen = true; Mülll_war_an = 0; Terasse_2_war_an = 0; Terasse_1_war_an = 0; on({ id: [].concat(['0_userdata.0.Variablen.Licht.Schalter.BWM.BWM_Terasse_State']), change: 'ne' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : '') == true) { // Debug if (getState('0_userdata.0.Variablen.Debugmodus').val == true) { sendTo('telegram', 'send', { text: 'BWM_TER', user: 'Dennis', }); sendTo('telegram', 'send', { text: ([Terasse_1_war_an,'\n',Terasse_2_war_an,'\n',Mülll_war_an,'\n',''].join('')), user: 'Dennis', }); } if (getState('0_userdata.0.Variablen.BWM_TER').val == true && getState('javascript.0.variables.Nachtcheck').val == true) { (() => { if (BWM1) { clearTimeout(BWM1); BWM1 = null; }})(); if (getState('0_userdata.0.Variablen.Licht.Spots_Terasse2').val == true) { Terasse_2_war_an = 1; } else if (getState('0_userdata.0.Variablen.Licht.Spots_Terasse2').val == false) { Terasse_2_war_an = 0; } if (getState('0_userdata.0.Variablen.Licht.Spots_Müll').val == true) { Mülll_war_an = 1; } else if (getState('0_userdata.0.Variablen.Licht.Spots_Müll').val == false) { Mülll_war_an = 0; } if (getState('0_userdata.0.Variablen.Licht.Spots_Terasse1').val == true) { Terasse_1_war_an = 1; } else if (getState('0_userdata.0.Variablen.Licht.Spots_Terasse1').val == false) { Terasse_1_war_an = 0; } // Debug if (getState('0_userdata.0.Variablen.Debugmodus').val == true) { sendTo('telegram', 'send', { text: 'TER an', user: 'Dennis', }); sendTo('telegram', 'send', { text: ([Terasse_1_war_an,'\n',Terasse_2_war_an,'\n',Mülll_war_an,'',''].join('')), user: 'Dennis', }); } setState('hm-rpc.1.00161D898B15B2.30.STATE' /* Spots Terasse.STATE */, true); setStateDelayed('hm-rpc.1.00161D898B15B2.26.STATE' /* Spots Hinten.STATE */, true, 1000, false); // Spots Terasse Haus setStateDelayed('hmip.0.devices.3014F711A000085A49A4B06A.channels.1.on' /* on */, true, 1000, false); } } if ((obj.state ? obj.state.val : '') == false) { BWM1 = setTimeout(async () => { BWM1 = null; if (getState('0_userdata.0.Variablen.BWM_TER').val == true && getState('javascript.0.variables.Nachtcheck').val == true) { if (Terasse_2_war_an != 1) { setState('hmip.0.devices.3014F711A000085A49A4B06A.channels.1.on' /* on */, false); } if (Mülll_war_an != 1) { setStateDelayed('hm-rpc.1.00161D898B15B2.26.STATE' /* Spots Hinten.STATE */, false, 1000, false); } if (Terasse_1_war_an != 1) { setStateDelayed('hm-rpc.1.00161D898B15B2.30.STATE' /* Spots Terasse.STATE */, false, 1000, false); } An__überprüfen = true; Terasse_1_war_an = 0; Terasse_2_war_an = 0; Mülll_war_an = 0; } }, 120000); } });MOD-EDIT: Code in code-tags gesetzt!