NEWS
Servicemeldungen - All inclusive für Homematic -
-
const Version = 1.86; const logging = true; //Sollte immer auf true stehen. Bei false wird garnicht protokolliert const debugging = false; //true protokolliert viele zusätzliche Infos const find_bug = false; //erhöht das Logging wird nur verwendet wenn ein aktulles Bug gesucht wird const show_each_device = false; //zeigt alle verfügbaren Datenpunkte je Device const autoAck = true; //Löschen bestätigbarer Kommunikationsstörungen (true = an, false = aus) const observation = true; //Dauerhafte Überwachung der Geräte auf Servicemeldungen aktiv (true = aktiv // false =inaktiv) const onetime = true; //Prüft beim Script Start ob derzeit Geräte eine Servicemeldung haben const with_time = false; //Hängt die Uhrzeit an die Serviemeldung //Geräte die nicht überwacht werden sollen. Komma getrennt erfassen const no_observation = 'JPCAPM00176, XXX'; //Instanz Cuxd ausschließen. Instanz als Zahl z. B. '1' oder bei Nichtnutzung hohe Nr eintragen z. B. '9' const CUXD = '9'; //pro Fehlertyp kann eine andere Prio genutzt werden const prio_LOWBAT = 0; const prio_UNREACH = 1; const prio_STICKY_UNREACH = 1; const prio_CONFIG_PENDING = 0; const prio_UPDATE_PENDING = 0; const prio_DEVICE_IN_BOOTLOADER = 0; const prio_ERROR = 0; const prio_ERROR_CODE = 0; const prio_FAULT_REPORTING = 0; const prio_SABOTAGE= 2; const prio_ERROR_NON_FLAT_POSITIONING = 0; //Variablen für Servicemeldung in Objekt schreiben // Wenn einer Meldung auftritt wird diese in ein Textfeld geschrieben. z. B. für vis const write_message = true; // true schreibt beim auftreten einer Servicemeldung die Serviemeldung in ein Objekt const id_Text_Servicemeldung = 'javascript.0.Allservicemeldungen.Raspberrymatic.Text'; // Objekt wo die Servicemeldung hingeschrieben werden soll (String) //Variablen für Pushover const sendpush = true; //true = verschickt per Pushover Nachrchten // false = Pushover wird nicht benutzt const pushover_Instanz0 = 'pushover.0'; // Pushover instance für Pio = 0 const pushover_Instanz1 = 'pushover.1'; // Pushover instance für Pio = 1 const pushover_Instanz2 = 'pushover.2'; // Pushover instance für Pio = 2 const pushover_Instanz3 = 'pushover.3'; // Pushover instance für Pio = -1 oder -2 let h_prio = -2; //nicht verändern die höchste Prio nach Fehlertyp wird verwendet let titel; let message; let device = 'iPhone'; //Welches Gerät soll die Nachricht bekommen //let _device = 'All'; //Variablen für Telegram const sendtelegram = false; //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt const user_telegram = ''; //User der die Nachricht bekommen soll //Variable zum verschicken der Servicemeldungen per eMail const sendmail = false; //true = verschickt per email Nachrchten // false = email wird nicht benutzt //Ergebnis in Datenfelder schreiben const write_state = true; //Schreibt die Ergebnisse der Servicemeldungen in Datenfelder. (true = schreiben, false, kein schreiben) //nicht benutzte Felder einfach leer lassen --> var id_IST_XXX = ''; //Müssen selber als Zahl angelegt werden const id_IST_LOWBAT = 'javascript.0.Allservicemeldungen.Raspberrymatic.Anzahl_LOWBAT'/*Anzahl LOWBAT*/; const id_IST_LOW_BAT = ''; const id_IST_UNREACH = 'javascript.0.Allservicemeldungen.Raspberrymatic.Anzahl_UNREACH'/*Anzahl_UNREACH*/; const id_IST_STICKY_UNREACH = 'javascript.0.Allservicemeldungen.Raspberrymatic.Anzahl_STICKY_UNREACH'/*Anzahl_STICKY_UNREACH*/; const id_IST_CONFIG_PENDING = ''; const id_IST_UPDATE_PENDING = ''; const id_IST_DEVICE_IN_BOOTLOADER = ''; const id_IST_ERROR = ''; const id_IST_ERROR_NON_FLAT_POSITIONING = ''; const id_IST_ERROR_CODE = ''; const id_IST_FAULT_REPORTING = ''; const id_IST_SABOTAGE = 'javascript.0.Allservicemeldungen.Raspberrymatic.Anzahl_SABOTAGE'/*Anzahl_SABOTAGE*/;; const id_IST_Gesamt = "javascript.0.Allservicemeldungen.Raspberrymatic.Anzahl_GESAMT"/*Anzahl_GESAMT*/; //Ab hier eigentliches Script const SelectorLOWBAT = $('channel[state.id=hm-rpc.*.0.LOWBAT_ALARM]'); const SelectorLOW_BAT = $('channel[state.id=hm-rpc.*.0.LOW_BAT_ALARM]'); const SelectorUNREACH = $('channel[state.id=hm-rpc.*.0.UNREACH_ALARM]'); const SelectorSTICKY_UNREACH = $('channel[state.id=hm-rpc.*.0.STICKY_UNREACH_ALARM]'); const SelectorCONFIG_PENDING = $('channel[state.id=hm-rpc.*.0.CONFIG_PENDING_ALARM]'); const SelectorUPDATE_PENDING = $('channel[state.id=hm-rpc.*.0.UPDATE_PENDING_ALARM]'); const SelectorDEVICE_IN_BOOTLOADER = $('channel[state.id=hm-rpc.*.0.DEVICE_IN_BOOTLOADER_ALARM]'); const SelectorERROR = $('channel[state.id=hm-rpc.*.1.ERROR]'); const SelectorERROR_CODE = $('channel[state.id=hm-rpc.*.ERROR_CODE]'); const SelectorFAULT_REPORTING = $('channel[state.id=hm-rpc.*.4.FAULT_REPORTING]'); const SelectorSABOTAGE = $('channel[state.id=hm-rpc.*.0.SABOTAGE_ALARM]'); const SelectorERROR_NON_FLAT_POSITIONING = $('channel[state.id=hm-rpc.*.0.ERROR_NON_FLAT_POSITIONING_ALARM]');
javascript.0 2403594 2021-08-06 21:14:38.039 info script.js.Meldungen_Alarme.Allservicemeldungen: Es werden: 361 Datenpunkte überwacht. Derzeit: 6 Servicemeldung(en). javascript.0 2403594 2021-08-06 21:14:35.039 info script.js.Meldungen_Alarme.Allservicemeldungen: registered 361 subscriptions and 0 schedules javascript.0 2403594 2021-08-06 21:14:35.038 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 50 Geräte mit dem Datenpunkt UPDATE_PENDING. javascript.0 2403594 2021-08-06 21:14:35.035 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 64 Geräte mit dem Datenpunkt CONFIG_PENDING. javascript.0 2403594 2021-08-06 21:14:35.030 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 44 Geräte mit dem Datenpunkt DEVICE_IN_BOOTLOADER. javascript.0 2403594 2021-08-06 21:14:35.027 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 10 Geräte mit dem Datenpunkt FAULT_REPORTING. javascript.0 2403594 2021-08-06 21:14:35.026 info script.js.Meldungen_Alarme.Allservicemeldungen: Keine Geräte gefunden mit dem Datenpunkt ERROR_NON_FLAT_POSITIONING. javascript.0 2403594 2021-08-06 21:14:35.026 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 13 Geräte mit dem Datenpunkt ERROR. javascript.0 2403594 2021-08-06 21:14:35.024 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 3 Geräte mit dem Datenpunkt SABOTAGE. javascript.0 2403594 2021-08-06 21:14:35.023 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 58 Geräte mit dem Datenpunkt STICKY_UNREACH. javascript.0 2403594 2021-08-06 21:14:35.019 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 64 Geräte mit dem Datenpunkt UNREACH. javascript.0 2403594 2021-08-06 21:14:35.018 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 64 Geräte mit dem Datenpunkt UNREACH_ALARM. Derzeit: 1 unterdrückte Servicemeldung(en). javascript.0 2403594 2021-08-06 21:14:35.013 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 3 Geräte mit dem Datenpunkt LOW_BAT. javascript.0 2403594 2021-08-06 21:14:35.012 info script.js.Meldungen_Alarme.Allservicemeldungen: Es gibt: 52 Geräte mit dem Datenpunkt LOWBAT_ALARM. Derzeit: 6 Servicemeldung(en). javascript.0 2403594 2021-08-06 21:14:35.003 info script.js.Meldungen_Alarme.Allservicemeldungen: Bitte melden: Bodenfeuchte (JPCAPM3802) --- HB-UNI-Sen-CAP-MOIST-T --- Batterietyp fehlt im Script javascript.0 2403594 2021-08-06 21:14:35.003 info script.js.Meldungen_Alarme.Allservicemeldungen: Bitte melden: Bodenfeuchte Hochbeet (JPCAPM00176) --- HB-UNI-Sen-CAP-MOIST-T --- Batterietyp fehlt im Script javascript.0 2403594 2021-08-06 21:14:35.001 info script.js.Meldungen_Alarme.Allservicemeldungen: Script manuell gestartet. (Version: 1.86) javascript.0 2403594 2021-08-06 21:14:30.034 info Start javascript script.js.Meldungen_Alarme.Allservicemeldungen javascript.0 2403594 2021-08-06 21:14:30.034 info Start javascript script.js.Meldungen_Alarme.Allservicemeldungen
Das kommt wenn ich den Fensterkontakt entferne.
javascript.0 2403594 2021-08-06 21:27:04.448 info script.js.Meldungen_Alarme.Allservicemeldungen: Neue Servicemeldung: (KEQ0164324) --- HM-Sec-SC--- Typ: ERROR --- Status: 7 Sabotage
-
@jensus11 Ok das Script läuft wie es soll. Dein Fensterkontakt meldet keine Sabotage über den Sabotage Punkt sondern über Error mit Status Sabotage.
Ich muss mal schauen ob das bei mir auch so ist und ob da evtl doch noch was nicht richtig ist. Ich erinnere mich an einen ähnlichen Fall. Weiß leider nicht mehr was die genaue Ursache war.
Gibt es bei den Fensterkontakt den Datenpunkte Sabotage_Alarm? was zeigt er an wenn Du die Sabotage auslöst?
-
@jensus11 Es wurden nur 3 Geräte mit den Datenpunkt Sabotage gefunden? Passt das bei Dir?
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
@jensus11 Es wurden nur 3 Geräte mit den Datenpunkt Sabotage gefunden? Passt das bei Dir?
Anscheinend ja, das sind die paar IP Geräte die ich habe.
-
@jensus11 Das Gerät was Du getestest hast ist das ein IP oder ein normales? Hat das den Sabotage Punkt oder nicht? Ggf müsste ich das dann im Script abfangen und die Prio hochsetzten
-
Das ist ein normales Funk Teil. Das Bild ist von dem Fensterkontakt, das hat kein Sabotage Punkt.
-
@jensus11 Zeile 1365 einfügen mit
if(status == 7){
if(prio < prio_SABOTAGE){prio = prio_SABOTAGE;}
}Dann bitte nochmal testen
-
leider keine Änderung.
-
@jensus11 Spontan keine Idee. Auf den ersten Blick hätte es funktionieren können Ich teste es die nächsten Tagen mal und bringe ein Update raus
-
Super, dann noch schönen Abend und Wochenende.
-
@jensus11 Einen habe ich noch. Du hast es falsch eingefügt. Bitte vor dem if(with_time… einfügen. So wie Du es gemacht hast wird es nur berücksichtigt wenn Du in der Konfig die Zeile 115 auf true stellst…
Werde es aber in der nächsten Version trotzdem etwas anders schreiben. Ist also max. eine Zwischenlösung
-
Guten Morgen, funktioniert. In Pushover wird die richtige Prio jetzt gesendet, nur der selbstangelegte Sabotage Datenpunkt wird nicht gefüllt(er bleibt auf 0).
-
@jensus11 was ja logisch ist. Da die Zeile nur die Prio verändert hat. Das andere wird etwas aufwendiger. Prüfe ich in den nächsten Tagen, wenn ich Zeit habe. Ich schreibe Dir eine pn wenn ich die neue Version auf Github lade
-
@cash
Hallo,
ich habe leider ein Problem mit deinem Script. Es werden Servicemeldungen angezeigt obwohl keine mehr vorhanden sind. Ich benutze das Script in der Version 1.86.script.js.Servicemeldungen.Servicemeldungen_CCU3: Es werden: 72 Datenpunkte überwacht. Derzeit: 3 Servicemeldung(en).
-
@conquest Das was die CCU sagt ist dem Script total egal. Interessant sind die Datenpunkte vom ioBroker. Welche Geräte , bzw welche Meldung sind denn betroffen? Welchen Wert zeigen die Datenpunkte?
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
@conquest Das was die CCU sagt ist dem Script total egal. Interessant sind die Datenpunkte vom ioBroker. Welche Geräte , bzw welche Meldung sind denn betroffen? Welchen Wert zeigen die Datenpunkte?
Ok Fehler kommt nicht vom Script. Im hm-rpc werden noch Alarme angezeigt obwohl keine mehr da sind.
-
Hallo, ich habe das Script in v1.86 auf dem ioBroker unter "common" gespeichert, die Konfiguration im Script-Kopf angepasst und die Standard-Datenpunkte manuell angelegt (diese werden auch durch das Script nach Start gefüllt).
Aktuell liegt auf der CCU3 eine Meldung zu einer erschöpften Batterie vor.
Wenn ich das Script ausführe, kann ich im ioBroker-Log sehen, dass momentan eine Servicemeldung vorliegt, die mir auch mit eingeschaltetem DEBUG-Modus im Log angezeigt wird.Ich habe konfiguriert, dass mir Meldungen via Telegram (=true) gesendet werden - es kommt aber nix an
Bei anderen meiner Scripts funktioniert der Versand mit Telegram, meine Telegram-Instanz tut also.Testweise habe ich auch mal Versand per E-Mail auf "true" gesetzt (eine funktionierende Instanz ist ebenfalls vorhanden) - auch hier kommt nix an!?
Mache ich was falsch?
Welche Parameter/Werte müssen konfiguriert sein, damit ich die Servicemeldungen mit Telegram (und/oder Mail) erhalte? Bitte um HilfeP.S. Ich hab auch schon hier um Forum nach einer Lösung gesucht, aber leider nix gefunden.
-
@j0hu das Script verschickt nur neue Meldungen per Telegram. Da Du schon weißt das eine Batterie leer ist macht das doch eigentlich wenig Sinn wenn Du nach dem Script-Start darüber wieder eine Meldung bekommst.
-
@cash danke für die schnelle Antwort Ich habe das Script erst gestern entdeckt und direkt verwendet. Genau, die Batterie-Meldung gabs schon vorher in der CCU3.
Nach Einrichten des Scripts wollte ich abschließend die Script-Funktion inkl. Telegram-Versand testen...
Inzwischen habe ich eine weitere, neue Meldung provoziert (Sabotage-Alarm bei einem Fenstergriff-Sensor ausgelöst) - und siehe da, die Benachrichtigung funktioniert!
-
Hallo,
habe mir das Skript nun auch mal installiert, jedoch bekomme ich folgende Meldung
17:46:28.499 warn javascript.0 (499) script.js.java.sonstige.Servicemeldungen: [Script wird gestoppt] Der Datenpunkt hm-rpc.1.0003DA49963B0A.0.UNREACH_ALARM existiert nicht.
Und auch noch :
17:46:28.533 error javascript.0 (499) script.js.java.sonstige.Servicemeldungen: TypeError: Cannot read property 'common' of null 17:46:28.533 error javascript.0 (499) at script.js.java.sonstige.Servicemeldungen:1772:74 17:46:28.534 error javascript.0 (499) at Servicemeldung (script.js.java.sonstige.Servicemeldungen:1771:28) 17:46:28.534 error javascript.0 (499) at script.js.java.sonstige.Servicemeldungen:2250:5 17:46:28.534 error javascript.0 (499) at script.js.java.sonstige.Servicemeldungen:2253:3
Könnt ihr mir hier weiter helfen?