NEWS
Homematic Lowbat und Unreach Status fehlerhaft
-
Hallo,
In der CCU wird keine Servicemeldung angezeigt, aber in ioBroker sehe ich
-
einen Fensterkontakt, der "unreach" gleich true anzeigt, obwohl der Fensterstatus ohne Probleme in den Datenpunkt übertragen wird.
-
einen anderen weiteren Fensterkontakt, der "lowbat" gleich true anzeigt, obwohl die Batterie frisch gewechselt wurde.
-
ein Thermostat mit frisch gewechselten Batterien, aber mit "lowbat" gleich true
Ich habe schon iobroker neugestartet, aber keine Änderung.
Irgendeine Idee?
-
-
Uff. Da gibt es viele Möglichkeiten.
Wenn es HM IP ist , den Knopf am Gerät 1 mal drücken.
Oder CCU neu starten.
Oder im Iobroker den Knopf Geräte einmalig synchronisieren im Adapter anklicken.
Oder die Zeit abwarten.
Nach nem Batteriewechsel dauert es ein wenig das der aktuelle Status gemeldet wird. -
@haselchen Danke.
Hat leider alles nichts gebracht. -
Die Datenpunkt der Geräte mal gelöscht und neu einlesen lassen?
-
@haselchen
Das Löschen hat die Fehler gelöscht. So weit so gut.
Ich würde aber dennoch verstehen, was da passiert ist, denn so kann ich mich auf die Werte gar nicht mehr richtig verlassen.Ich habe meinen Raspberry erst vor einen Tag neu gestartet.
-
Da hat der Entwickler bestimmt mehr Infos zu @foxriver76
-
@marty56 sagte in Homematic Lowbat und Unreach Status fehlerhaft:
@haselchen
Das Löschen hat die Fehler gelöscht. So weit so gut.
Ich würde aber dennoch verstehen, was da passiert ist, denn so kann ich mich auf die Werte gar nicht mehr richtig verlassen.Ich habe meinen Raspberry erst vor einen Tag neu gestartet.
Hallo,
der Fehler das einige Statusmeldungen nicht im iobroker ankommen/zurückgesetzt werden habe ich leider auch schon lange Zeit.
Was meist sicher funktioniert: status kommt an, z.B. UNREACH,LOWBAT, ...
Oft bleibt der Status aber hängen.Ich habe ein kleines Skript, was das repariert. Wenn ich in Homematic keine Servicemeldungen habe, dann lösche ich sie auch in iobroker:
var instanz = 'javascript.0.'; // Service Meldungen var SelectorUNREACH = $('channel[state.id=hm-rpc.0.*.UNREACH]'); //var SelectorUNREACH = $('channel[state.id=*.UNREACH]'); // var SelectorSTICKY_UNREACH = $('channel[state.id=^hm-rpc.0.*.STICKY_UNREACH$]'); var SelectorLOWBAT = $('channel[state.id=hm-rpc.0.*.LOWBAT]'); var SelectorCONFIG_PENDING = $('channel[state.id=hm-rpc.0.*.CONFIG_PENDING]'); function delService(obj) { var anzahl = 0; var text = ""; log("Start"); function delid(id) { try { // log(id); var status = getState(id).val; // Zustand abfragen (jedes Element) if (status) { // wenn Zustand = true, dann löschen text = text + getObject(id).common.name + ","; // Zu String hinzufügen ++anzahl; // Zählt die Anzahl der Service-Alarme log(getObject(id).common.name); setState(id,false); } } catch (err) { log("ERR:"+err); } } SelectorUNREACH.each(function (id, i) { // log(id); delid(id); }); // SelectorSTICKY_UNREACH.each(function (id, i) { // var status = getState(id).val; // Zustand abfragen (jedes Element) // if (status) { // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt // log('STICKY_UNREACH Meldung: ' + id + ' wurde auf <true> gesetzt. Das Homematic Gerät ist wieder uneingeschränkt erreichbar.'); // setState(id, false); // STICKY_UNREACH werden gelöscht // } // }); SelectorLOWBAT.each(function (id, i) { delid(id); }); SelectorCONFIG_PENDING.each(function (id, i) { delid(id); }); // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon Service zutreffend) ausgegeben // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert if (!anzahl) { text = "keine Servicemeldungen"; } log("Anzahl Homematic-Servicemeldungen: " + anzahl); log("Text Homematic-Servicemeldungen: " + text); } // Ausführung bei Scriptstart delService(); // deaktiviert
Triggern tue ich dass wenn die Servicemeldungen in der CCU auf 0 gehen (habe ich als Rega-Variable).
Wenn du das mal aus versehen laufen lassen hast, dann mußt du nur rpc mit "Neu einlesen" neu starten, dann ist wieder alles sauber.