NEWS
Servicemeldungen - All inclusive für Homematic -
-
@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?
-
@akuehnemann73 wie immer. Script stoppen. Instanzen stopppen. Datenpunkte alle löschen und alles wieder starten. Welches Gerät wird dort angemerkert?
-
@cash danke sehr hab jetzt alles hinbekommen!
-
Ich bekomm in unregelmäßigen Abständen immer mal wieder diese Warnungen.
javascript.0 2021-10-21 10:41:20.905 warn script.js.System.CCU3_Servicemeld: [Script wird gestoppt] STICKY:_UNREACH: Die Cuxd-Instanz wurde im Script auf 9 gestellt. Ein Objekt hat folgenden Namen: hm-rpc.2.CUX2801001.0.STICKY_UNREACH_ALARM javascript.0 2021-10-21 10:41:20.905 warn script.js.System.CCU3_Servicemeld: [Script wird gestoppt] UNREACH: Die Cuxd-Instanz wurde im Script auf 9 gestellt. Ein Objekt hat folgenden Namen: hm-rpc.2.CUX2801001.0.UNREACH_ALARM javascript.0 2021-10-21 10:41:20.903 warn script.js.System.CCU3_Servicemeld: [Script wird gestoppt] LOWBAT: Die Cuxd-Instanz wurde im Script auf 9 gestellt. Ein Objekt hat folgenden Namen: hm-rpc.2.CUX2801001.0.LOWBAT_ALARM
-
@negalein Wo ist jetzt die Frage? Das Problem steht ja im Log. Du hast in der config angegebn, dass Du cuxd nicht nutzt bzw als Instanz 9 installiert hast. Das Script hat aber Datenpunkte in der Instanz 2 gefunden die cuxd heißen…
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
Du hast in der config angegebn, dass Du cuxd nicht nutzt bzw als Instanz 9 installiert hast. Das Script hat aber Datenpunkte in der Instanz 2 gefunden die cuxd heißen…
Ah, so ist das gemeint.
Dachte mit 9 prüft er nicht auf Cuxd (oder bei Nichtnutzung hohe Nr eintragen z. B. '9').
Das hab ich dann falsch interpretiert. -
GELÖST: Hallo Zusammen - ich brauch Eure Hilfe.
Habe jetzt den ganzen Tread durchsucht bzw. durchgelesen und alle TIPS und Tricks versucht umzusetzen. Leider habe ich den Fehler bei meiner Installation nicht gefunden. Ihr könnt mir bestimmt helfen.Das Script habe ich eingelesen, parametrisiert und gestartet. Fehler bekomme ich soweit keine - aber ich erhalte lediglich 5 Geräte mit dem Datenpunkt ERROR.
Ich habe aber - nach Prüfung - Geräte die haben LOWBAT, UNREACH, SABOTAGE etc.
Sogar die Benachrichtigung über pushover mit einer simulierten SABOTAGE ist angekommen.
Warum kommen diese Geräte nicht?Instanzen laufen alle
rega.0
rpc.0 = HomematicIP
rpc.1 = rfd25.10.2021, 20:20:42.170 [info ]: javascript.0 (11376) Stop script script.js.common.System.Servicemeldungen 25.10.2021, 20:20:42.205 [info ]: javascript.0 (11376) Start javascript script.js.common.System.Servicemeldungen 25.10.2021, 20:20:42.351 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Script manuell gestartet. (Version: 1.86) 25.10.2021, 20:20:42.351 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt LOWBAT. 25.10.2021, 20:20:42.351 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt LOW_BAT. 25.10.2021, 20:20:42.351 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt UNREACH. 25.10.2021, 20:20:42.351 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt STICKY_UNREACH. 25.10.2021, 20:20:42.352 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Geräte Nr. 0 Name: DG02_Drehgriff_Küchenfenster (LEQ0141923) --- HM-Sec-RHS --- Typ: ERROR --- Status: 0 ERROR mit dem Wert: 0 --- seit: 02.10.21 12:39:11 Uhr 25.10.2021, 20:20:42.352 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Geräte Nr. 1 Name: DG03_Drehgriff_Badzimmer (LEQ0887844) --- HM-Sec-RHS --- Typ: ERROR --- Status: 0 ERROR mit dem Wert: 0 --- seit: 25.10.21 12:38:27 Uhr 25.10.2021, 20:20:42.353 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Geräte Nr. 2 Name: TF03_Terassenfenster_West (LEQ0917487) --- HM-Sec-SCo --- Typ: ERROR --- Status: 0 ERROR mit dem Wert: 0 --- seit: 02.10.21 12:39:12 Uhr 25.10.2021, 20:20:42.353 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Geräte Nr. 3 Name: TF01_Hundetuere_Eingang (OEQ0372985) --- HM-Sec-SC-2 --- Typ: ERROR --- Status: 0 ERROR mit dem Wert: 0 --- seit: 02.10.21 12:39:13 Uhr 25.10.2021, 20:20:42.354 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Geräte Nr. 4 Name: TF02_Haupteingang (OEQ1980184) --- HM-Sec-SCo --- Typ: ERROR --- Status: 0 ERROR mit dem Wert: 0 --- seit: 02.10.21 12:39:14 Uhr 25.10.2021, 20:20:42.354 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Es gibt: 5 Geräte mit dem Datenpunkt ERROR. 25.10.2021, 20:20:42.354 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt SABOTAGE. 25.10.2021, 20:20:42.354 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt ERROR_NON_FLAT_POSITIONING. 25.10.2021, 20:20:42.354 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt FAULT_REPORTING. 25.10.2021, 20:20:42.355 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt DEVICE_IN_BOOTLOADER. 25.10.2021, 20:20:42.355 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt CONFIG_PENDING. 25.10.2021, 20:20:42.355 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt UPDATE_PENDING. 25.10.2021, 20:20:42.355 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: 5 Datenpunkte werden insgesamt vom Script script.js.common.System.Servicemeldungen (Version: 1.86) überwacht. Instance: 0 25.10.2021, 20:20:42.355 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: logging: true debugging: false find_bug: false show_each_device: true autoAck: true observation: true ohnetime: true CUXD: 9 25.10.2021, 20:20:42.355 [info ]: javascript.0 (11376) script.js.common.System.Servicemeldungen: registered 5 subscriptions and 0 schedules
const Version = 1.86; const logging = true; //Sollte immer auf true stehen. Bei false wird gar nicht 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 = true; //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 = true; //Hängt die Uhrzeit an die Serviemeldung //Geräte die nicht überwacht werden sollen. Komma getrennt erfassen const no_observation = 'LEQ09282x96, 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 = 0; const prio_STICKY_UNREACH = 0; 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= 0; 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 = false; // true schreibt beim auftreten einer Servicemeldung die Serviemeldung in ein Objekt const id_Text_Servicemeldung = '0_userdata.0.Servicemeldungen_CCU3'; // 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 = 'huaweimate20pro'; //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 = '0_userdata.0.Servicemeldungen_CCU3.Anzahl_LOWBAT'/*Anzahl LOWBAT*/; const id_IST_LOW_BAT = ''; const id_IST_UNREACH = '0_userdata.0.Servicemeldungen_CCU3.Anzahl_UNREACH'/*Anzahl_UNREACH*/; const id_IST_STICKY_UNREACH = '0_userdata.0.Servicemeldungen_CCU3.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 = '0_userdata.0.Servicemeldungen_CCU3.Anzahl_SABOTAGE'; const id_IST_Gesamt = "0_userdata.0.Servicemeldungen_CCU3.Anzahl_GESAMT"/*Anzahl_GESAMT*/;
-
@sentinel997 Ich glaube kaum das Du alles gelesen hast. Das Script sucht nach den Datenpunkten LOWBAT_ALARM oder LOW_BAT_ALARM je nach Typ generelle muss immer der Datenpunkt mit der Endung ALARM vorhanden sein damit das Script funktioniert. Falls es die Datenpunkte bei Dir nicht gibt kannst Du die Adapter stopppen, Objekte löschen, Adapter starten, Javascript Adapter stoppen und mal gucken ob es dann geht. Wenn nicht könnte ein Adapter oder die ccu nicht richtig konfiguriert sein. Ansonsten kann Dir nur der Entwickler von dem Adaptern helfen…Wieviel Geräte hast Du genau? Mehr als 100?
-
@cash Guten Morgen Cash. Ich habe mich heute nochmals eingearbeitet. Und habe nun dank deiner Hilfe herausgefunden an was es liegt.
Wenn natürlich beim hm-rega.0 Adapter die Synchronisation der Variablen nicht aktiviert ist, können auch keine Variablen ankommen. Danke.
Ich habe insgesamt 21 Geräte verbaut.
-
Hi,
ich habe das Script installiert (vielen Dank für die Veröffentlichung!!!)
und wie folgt angepasst: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 = true; //Hängt die Uhrzeit an die Serviemeldung //Geräte die nicht überwacht werden sollen. Komma getrennt erfassen const no_observation = 'LEQ092862x9, XXX'; //Instanz Cuxd ausschließen. Instanz als Zahl z. B. '1' oder bei Nichtnutzung hohe Nr eintragen z. B. '9' const CUXD = '0'; //pro Fehlertyp kann eine andere Prio genutzt werden const prio_LOWBAT = 0; const prio_UNREACH = 0; const prio_STICKY_UNREACH = 0; 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= 0; 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.Servicemeldungen.Text'; // Objekt wo die Servicemeldung hingeschrieben werden soll (String) //Variablen für Pushover const sendpush = false; //true = verschickt per Pushover Nachrichten // 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 = 'TPhone'; //Welches Gerät soll die Nachricht bekommen //let _device = 'All'; //Variablen für Telegram const sendtelegram = false; //true = verschickt per Telegram Nachrichten // 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 Nachrichten // 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.Servicemeldungen.Anzahl_LOWBAT'/*Anzahl LOWBAT*/; const id_IST_LOW_BAT = ''; const id_IST_UNREACH = 'javascript.0.Servicemeldungen.Anzahl_UNREACH'/*Anzahl_UNREACH*/; const id_IST_STICKY_UNREACH = 'javascript.0.Servicemeldungen.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 = ''; const id_IST_Gesamt = 'javascript.0.Servicemeldungen.Anzahl_GESAMT'/*Anzahl_GESAMT*/; //Ab hier eigentliches Script
Es werden alle Datenpunkte zwar richtig befüllt, aber ich erhalte ständig folgende Fehlermeldungen:
javascript.0 2021-11-05 18:26:57.038 warn at script.js.common.servicemeldungen:2254:3 javascript.0 2021-11-05 18:26:57.038 warn at script.js.common.servicemeldungen:2251:5 javascript.0 2021-11-05 18:26:57.038 warn at Servicemeldung (script.js.common.servicemeldungen:2013:17) javascript.0 2021-11-05 18:26:57.037 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1439:20) javascript.0 2021-11-05 18:26:57.026 warn You are assigning a number to the state "javascript.0.Servicemeldungen.Anzahl_GESAMT" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
Ich habe den Datenpunkt-Typ javascript.0.Servicemeldungen.Anzahl_GESAMT auch schon von String in Number manuell geändert, der Fehler kommt dennoch.
Nicht dass es allzu störend ist, aber schön sind diese Meldungen nicht und ich würde mich freuen, diese wegzubekommen.
Vielen Dank für die Unterstützung
-
@pahan das Feld muss vom Typ number sein. Also entsprechend anpassen. Ansonsten bitte den Datenpunkt zeigen (RAW). Normal sollte der Fehler weg sein, wenn man den Typ ändert. Ansonsten ggf. iobroker mal komplett neustarten.
-
wo finde ich die Aktuelle version?
-
@cnissen sagte in Servicemeldungen - All inclusive für Homematic -:
wo finde ich die Aktuelle version?
-
Hallo cash,
es fehlt der Heizungsregler HmIP-eTRV-E -> lr6x2 im Script.
Gruß//Lucky
-
Auf der CCU3 gibt es ein neues Update, aber das Script zeigt es mir nicht an.
Habe das Script in V1.93Und was bedeutet in
0_userdata.0.CCU3.Servicemeldungen.Verfuegbare_CCU-Firmware
der Link zuhttps://fonts.googleapis.com/css?family=Noto+Sans
?Danke
-
@negalein Liegt vermutlich daran, dass das Script nicht auf Updates prüft
-
@cash sagte in Servicemeldungen - All inclusive für Homematic -:
Liegt vermutlich daran, dass das Script nicht auf Updates prüft
Ahh, gerade gesehn, das macht ein anderes Script.
Mal schaun ob ich den Thread dazu finde.
-
@negalein Falls es mein SCript ist muss es zwei Datenpunkte geben. Einmal die ermittelte Version die aktuell installiert ist und einmal ein Feld wo er die hineinschreibt welche es gibt. Damit informiert er nur einmal über ein neues Update. Wo der Thread ist weiß ich aber nicht