NEWS
Servicemeldungen - All inclusive für Homematic -
-
@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?
-
hat sich erledigt, nach ca 15 min lief alles
-
@cash
lief nicht unter gobal habe das ganze jetzt unter Gobal kann aber gerade nicht sagen ob es läuft, da ich gerade in alle scripten probleme habeüberall die Meldung
3.2.2022, 12:43:26.684 [error]: javascript.0 (3656) script.js.1_Diagramm.weather_diagramm compile failed: at script.js.1_Diagramm.weather_diagramm:490
3.2.2022, 12:44:15.368 [error]: javascript.0 (3656) script.js.1_Allgemein.SunDown_Fritzbox_Calls compile failed: at script.js.1_Allgemein.SunDown_Fritzbox_Calls:490
und ich habe keine ahnung wieso
-
@svenomatt es darf kein Script in global gespeichert sein. Außer Du weißt was Du tust.