NEWS
Servicemeldungen - All inclusive für Homematic -
-
Hallo,
ich würde gerne eine andere Formatierung bei der Versendung von Telegram Nachrichten haben. Gibt es im Script eine Möglichkeit das ohne viel Aufwand zu ändern?
Das zu Meldende Gerät würde ich gerne fettgedruckt darstellen. -
@dominik-f möglich ist das natürlich. Musst Dich einfach mal durch das Script wühlen und entsprechend anpassen.
-
Okay, ist also nicht ohne weiteres möglich. Hab mich schon versucht durchs Skript zu wühlen, aber da ich nicht so gut in Javascript bin ist es für mich leider nicht machbar.
-
@dominik-f sagte in Servicemeldungen - All inclusive für Homematic -:
fettgedruckt
Fett, z.B. so:
"Es liegen <b>keine</b> xxx Meldungen vor."
-
Danke für deine Antwort.
Die Zeichen die ich dafür brauche kenne ich, nur das Skript ist so umfangreich, dass ich als Javascript anfänger (bin deshalb schon auf Blockly für meine selbst erstellten Skripte umgestiegen) den Wald vor lauter Bäumen nicht sehe. -
@cash
Hi cash, ich habe nie Meldungen für leere Batterien bei den Homematic Thermostate HM-CC-RT-DN bekommen. Nun habe ich mir das mal angeschaut und nachdem ich in Zeile 1596 die Abfrage vom 'status' von == 1 auf > 0 geändert habe, funktioniert es. Der Status hat den Wert 6. Man könnte natürlich auch auf status != 0 abfragen.
Stimmst Du mir da zu?Gruß Robert
-
@rookie50 Nein ich stimme nur bedingt zu. Wenn ich mich nicht täusche hatte ich die Abfrage wie von Dir beschrieben auf >0 aber das hatte negative Effekte, an die ich mich nicht erinnern kann. Mit anderen Wort kann funktionieren muss aber nicht.
Muss aber dazu sagen das ich derzeit das Script nicht mehr nutze, da ich keinen Sinn mehr dadrin sehe. Außer für Batteriemeldungen aber da gibt es dann auch schlankere Lösungen...
-
Kannst du kurz erläutern warum? Nutzt du andere Lösungen?
-
@dominik-f klar. Ich nutze es nicht mehr weil mich die Servicemeldungen nicht mehr interessieren. Ich bestätige die einfach alle paar Monate mal und fertig. Ich habe relativ wenig Meldungen bzw immer wieder die selben Geräte.
-
Ja, da hast du irgendwie recht. 99% der Meldungen ignoriere ich tatsächlich auch. Ich bekomme auch fast ausschließlich die Meldung über eine bestätigbare Kommikationsstörung. Die Batteriemeldungen sind für mich auch das interessanteste weil mein anderes Skript nicht so zuverlässig funktioniert.
-
@dominik-f Dann editier das Script und lösch alle unwichtigen Meldungen. So habe ich es gemacht. Ist zwar Quick & Dirty und eigentlich gefällt es mir so auch nicht richtig aber ich habe auch derzeit keine Zeit und Lust das ganze neu zu schreiben…
-
@cash danke für Deine Antwort. Ich habe mir nun den device-watcher angeschaut und werde wahrscheinlich den Adapter in Zukunft nutzen. Trotzdem vielen Danke für Deine Arbeit an dem Script!
-
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