NEWS
Servicemeldungen - All inclusive für Homematic -
-
@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
-
@negalein sagte in Servicemeldungen - All inclusive für Homematic -:
@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.
-
-
Besteht die Möglichkeit, dass man im Skript einstellen kann, dass die Seriennummer vom Aktor nicht mitgleoggt wird?
Mir reicht immer der HM-Name um zu wissen, um welchen Aktor es geht.
Ich kann jetzt natürlich überall im Skript den Output ändern, müsste das dann bei jeder neuen Version wieder tun.
-
@kuddel Die Seriennr ist die ID. So heißt das Gerät technisch unter ioBroker. Der Aufwand eine Auswahl zu programmieren ist mir zu hoch. Ich denke man kann man mit dem mehr an Info gut leben oder eben selber hand anlegen… Zur Fehlersuche halte ich die Info aber für Unverzichtbar eben weil die Geräte in ioBroker heißen…
-
Hallo zusamen,
habe probleme mit dem Script irgen bekomme ich es nicht zu laufen.
Hat jemand eine Idee
Anbei der Log
javascript.0 2022-02-02 11:03:22.334 error at processImmediate (internal/timers.js:463:21) javascript.0 2022-02-02 11:03:22.334 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1311:17) javascript.0 2022-02-02 11:03:22.334 error at /opt/iobroker/node_modules/iobroker.javascript/main.js:1832:17 javascript.0 2022-02-02 11:03:22.334 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1731:37) javascript.0 2022-02-02 11:03:22.334 error at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1482:28) javascript.0 2022-02-02 11:03:22.334 error at Object.createScript (vm.js:261:10) javascript.0 2022-02-02 11:03:22.333 error at new Script (vm.js:88:7) javascript.0 2022-02-02 11:03:22.333 error SyntaxError: Identifier 'message' has already been declared javascript.0 2022-02-02 11:03:22.333 error ^ javascript.0 2022-02-02 11:03:22.333 error let message; javascript.0 2022-02-02 11:03:22.333 error script.js.1_Homematic._Servicemeldungen-Homematic_ compile failed: at script.js.1_Homematic._Servicemeldungen-Homematic_:157 javascript.0 2022-02-02 11:03:22.329 info Start javascript script.js.1_Homematic._Servicemeldungen-Homematic_ javascript.0 2022-02-02 11:03:22.319 info Stop script script.js.1_Homematic._Servicemeldungen-Homematic_
-
@svenomatt hast Du Script unter global? Falls nein: Hast Du am Script etwas verändert oder nicht komplett kopiert? Welche Version?