NEWS
Servicemeldungen - All inclusive für Homematic -
-
Ich weiß nicht, seit wann, aber man könnte mittlerweile auch die Alarmmeldungen der CCU2 abfragen und z.B. in separate Datenpunkte speichern.
Ich habe das bei mir in einem Typescript mal folgendermaßen umgesetzt:
"use strict"; /** * Aktualisiert Anzahl und den Text der Alarmmeldungen in der entsprechenden Systemvariable */ function updateAlarmMessages() { let messages:string = ""; let cacheSelectorState = $('state[id=hm-rega.0.*]'); cacheSelectorState.each(function (id, i) { if ((<iobJS.StateObject><unknown>getObject(id)).common.name.toString().startsWith("WatchDog")) { if (getState(id).val == true) { // Das Alarm-Flag ist aktiv messages += (<iobJS.StateObject><unknown>getObject(id)).common.desc + "\n"; } } }); // Meldungen setzen setState('0_userdata.0.ccu2.alarmmeldungen'/*Text der Alarmmeldungen der CCU2*/, messages); // Anzahl setzen let oldCouter:number = getState('0_userdata.0.ccu2.alarmmeldungenAnzahl'/*Anzahl der Alarmmeldungen der CCU2*/).val; let newCounter:number = getState('hm-rega.0.alarms'/*Alarmmeldungen*/).val; if (oldCouter != newCounter) { setState('0_userdata.0.ccu2.alarmmeldungenAnzahl'/*Anzahl der Alarmmeldungen der CCU2*/, newCounter); } } /** * Bei Änderungen auf der CCU werden Anzahl und Texze der Alarmmeldungen neu gesetzt */ on({id:['hm-rega.0.alarms'/*Alarmmeldungen*/], logic: "and", change: "ne"}, function (obj) { updateAlarmMessages(); }); /** * Beim Starten des Skripts aufrufen */ updateAlarmMessages();
Vielleicht braucht es ja der eine oder andere oder kann @cash als Vorlage dienen, das in sein Skript einzubauen.
-
@neopholus aufgefallen war es mir schon aber ich hatte mich noch nicht weiter damit beschäftigt.. Danke aber für den Hinweis. Auf jeden Fall wäre das Script wesentlich einfacher. Man würde natürlich nicht mehr sehen welche Batterien getauscht werden müssen aber da gibt es bestimmt auch einen Weg das wieder einzubauen…
-
Ich habe eine Frage zum Script:
Kann man die ID des betroffenen Gerätes irgendwie aus dem generiertem String raus nehmen?
-
Ich denke mal, du möchtest mit wildcard (*) arbeiten. Dann würde es mit einem System-Block funktionieren.
-
@Meister-Mopper : Eigentlich solls nur übersichtlicher - eben ohne die Geräte-ID sein
-
@ulli-0 Geht schon. Du kannst es gerne ändern.
-
@cash Verrat mir bitte wie - ich suche schon ne Weile
-
@ulli-0 such mal nach +' ('+id_name +')'. Das sollte es sein. Habe aber nur flüchtig geguckt
-
@cash den Ausdruck gibt es 49x im script - einfach alle rauslöschen?
Noch was bekomm ich nicht hin: In meiner Testumgebung ist
a) ein HMIP-Gerät (HmIP-eTRV-2) mit leerer Batterie, und
b) ein "normales" HM-Gerät (HM-CC-RT-DN), wo der Stellbereich zu groß istBeide Servicemeldungen werden in der CCU-Oberfläche angezeigt:
Das Script zeigt aber nur die Meldungen von a) (dem HMIP) Gerät an. Neustart von iobroker, Neustart der Adapter und Geräte einlesen in den Adaptern hat nichts gebracht. In den Adaptern ist die Servicemeldung aber zu sehen:
-
Hi,
ich habe das script -zunachest fuer mich- komplett umgeschrieben.- effizienter gestaltet
- Historie
- Subsrciption auch auf REGA (also nur 1) wenn gewünscht
- alle message-services zum Senden integiert (email, whatsapp, telegram, signal etc)
@Cash: wenn fuer dich ok und falls interesse von anderen wuerde ich dafuer einen einen neuen Thread aufmachen
vG Looxer
-
@looxer01 Habe natürlich nichts dagegen. Ich würde das Script heute vermutlich auch anders schreiben aber ich nutze es auch schon ewig nicht mehr…