NEWS
Servicemeldungen - All inclusive für Homematic -
-
@cash Hallöchen, ja mit "var" läuft das Script, zumindest bekomme ich Meldungen im LOG (siehe Spoiler).
Ich habe den Urprung nun wieder hergestellt. Leider bekomme ich jetzt wieder den Compelier Fehler in Zeile 158.
Das Script läuft nun nicht mehr. Deine Vorschläge habe ich übernommen, ohne Erfolg. Ich benutze CuxD . Gruß Michael -
@cash: Fehler gefunden hatte in Global bereits einmal den "timer" vergeben. Somit konnte sich die Variable nicht im selben Gültigkeitsbereit den Namen teilen.
Gruß Michael -
Neue Version auf Github.
Für Cuxd User mit neuer Option. Dort muss man die Instanz-Nr eingeben damit die Gerät überlesen werden.
@Michael-Horn bitte mit neuer Version testen und bei Fehler das Log kopieren und nicht das was unter dem Script angezeigt wird... Auch wenn es theoretisch das gleiche sein sollte. Es macht keinen Unterschied ob let oder var. Muss beides gehen. Bitte auf jeden Fall das komplette Script kopieren (Vom ersten bis letzten Zeichen). Hattest Du die Config angepasst? Welche Javascript Version welchen js-Adapter? Windows-System?
@Dominik-F Du hast in Zeile 9 observation auf false. Das macht doch eigentlich keinen Sinn? Denn dann bekommt man von Servicemeldungen ja nichts mit? Bitte mal debug auf true und show_each_device auf false. Danach das Log falls der Datenpunkt nicht richtig gesetzt wird. Ob " oder ' spielt auch keine Rolle beides geht meistens
Ich habe im Debug nochmal etwas mehr logging eingebaut um zu sehen was er macht oder nicht macht. Einen Fehler konnte ich so erstmal nicht finden.@bommel_030 Mit der neuen Version sollten Deine Probleme hoffentlich weg sein....
-
@Michael-Horn Ah. Hatte ich überlesen. Aus Interesse was hast Du denn unter Global damit angestellt?
Somit ist es mit let auch nachvollziehbar da ja global immer vor jeden Script ausgeführt wird und somit natürlich die Variable deklariert war...
-
ich hatte observation auf false weil du das in deinem ersten Post geschrieben hattest, dass man dies zu Testzwecken tun sollte. One Time war auf true und hatte das so verstanden, dass zum Start des Skriptes dann einmal alles geloggt wird und nur nicht weiter überprüft. hab es jetzt auf True, es wird auch mit der neuen Version des Skripts nichts in den Datenpunkt geschrieben.
Hier der Log:
javascript.0 2019-11-12 20:46:15.027 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] Es gibt eine Servicemeldung: javascript.0 2019-11-12 20:46:15.026 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es werden: 100 Datenpunkte überwacht. Derzeit: 1 Servicemeldung(en). javascript.0 2019-11-12 20:46:12.026 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: registered 100 subscriptions and 0 schedules javascript.0 2019-11-12 20:46:12.025 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] meldung alt und neu geändert javascript.0 2019-11-12 20:46:12.025 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] Betroffen: javascript.0 2019-11-12 20:46:12.025 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] write_message steht auf true. Ergebnis in Objekt geschrieben javascript.0 2019-11-12 20:46:12.024 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] Betroffen: 1 javascript.0 2019-11-12 20:46:12.024 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] Derzeit gibt es Servicemeldungen. Ergebnis in Objekt geschrieben javascript.0 2019-11-12 20:46:12.024 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] Betroffen mehr als 0 und keine Heizungsgruppe javascript.0 2019-11-12 20:46:12.024 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] id_IST Feld für UPDATE_PENDING nicht gefüllt javascript.0 2019-11-12 20:46:12.024 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 10 Geräte mit dem Datenpunkt UPDATE_PENDING. javascript.0 2019-11-12 20:46:12.020 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] id_IST Feld für CONFIG_PENDING nicht gefüllt javascript.0 2019-11-12 20:46:12.020 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 19 Geräte mit dem Datenpunkt CONFIG_PENDING. javascript.0 2019-11-12 20:46:12.017 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] id_IST Feld für DEVICE_IN_BOOTLOADER nicht gefüllt javascript.0 2019-11-12 20:46:12.017 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 10 Geräte mit dem Datenpunkt DEVICE_IN_BOOTLOADER. javascript.0 2019-11-12 20:46:12.015 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] id_IST Feld für FAULT_REPORTING nicht gefüllt javascript.0 2019-11-12 20:46:12.014 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 6 Geräte mit dem Datenpunkt FAULT_REPORTING. javascript.0 2019-11-12 20:46:12.013 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt ERROR_NON_FLAT_POSITIONING. javascript.0 2019-11-12 20:46:12.013 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt ERROR. javascript.0 2019-11-12 20:46:12.012 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt SABOTAGE. javascript.0 2019-11-12 20:46:12.012 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 19 Geräte mit dem Datenpunkt STICKY_UNREACH. javascript.0 2019-11-12 20:46:12.007 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 19 Geräte mit dem Datenpunkt UNREACH_ALARM. Derzeit: 1 Servicemeldung(en). javascript.0 2019-11-12 20:46:12.003 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Keine Geräte gefunden mit dem Datenpunkt LOW_BAT. javascript.0 2019-11-12 20:46:12.003 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: Es gibt: 17 Geräte mit dem Datenpunkt LOWBAT. javascript.0 2019-11-12 20:46:11.997 info (27245) script.js.common.Geräte.CCU_3_Servicemeldungen: [DEBUG] Function wird gestartet. javascript.0 2019-11-12 20:46:11.152 info (27245) Start javascript script.js.common.Geräte.CCU_3_Servicemeldungen javascript.0 2019-11-12 20:46:10.428 info (27245) Stop script script.js.common.Geräte.CCU_3_Servicemeldungen
-
@Dominik-F alles klar. Er schreibt schon das Datenfeld nur leider mit "" also leer. Hatte ja geschrieben das ich erstmal nur mehr logging eingebaut habe damit ich weiß wo er hängt...
Kannst Du mir bitte mal ein Screenshot zeigen von den entsprechenden Datenpunkt bzw das Gerät.
Ich habe mir gerade nochmal den Code angeguckt und eine erste Idee.
-
@cash Dankeschön das Script läuft. Morgen kümmere ich mich mal um den Telegram Versand
-
@Dominik-F und noch etwas: bitte mal das Script ändern.
Zeile 900
if(statusSTICKY_UNREACH == 1 && autoAck){
löschen und
Zeile 923}
ebenfalls entfernen und dann mal testen. Ich gehe davon aus das es dann gehen würde?
Was ist das für ein Gerät warum ist es nur unreach und nicht auch sticky_unreach. Hast Du manuell Batterien rausgenommen?
-
@cash Ich hatte ein Script gebastelt, das mittels Bewegungsmelder mir eine Tablets im Büro einschaltet und wenn eine bestimmte Zeit ohne Bewegung oder Dunkelheit festgestellt wird, die Tablets wieder Ausschaltet. Hat sich aber erledigt, da FullyBrower mit Lizenz das auch kann.
-
@Michael-Horn ah ok. Hört sich nicht so an als ob so etwas in global sollte. Ist ja ein ganz normales Script. Unter global sollten nur Scripts die man immer vor jedem anderen Script ausgeführt haben möchte also z. B. bestimmte functions auf die man bei vielen Scripten drauf zugreifen möchte...
-
Genau das war die Lösung mit dem Löschen der Zeilen. Danach wurde genau das richtige in den Datenpunkt geschrieben.
Das Gerät war ein Rauchmelder, ich hab die Verbindung wegen Fehlalarmen getrennt Hab den Rauchmelder von der Halterung entfernt und da es immer noch angelernt ist, bleibt dort die Fehlermeldung. Da ich mich irgendwann nochmal damit befassen möchte, hab ich die Fehlermeldung davon akzeptiert. Zum testen des Skripts war es jetzt natürlich hilfreich
ich danke dir vielmal für deinen tollen support.
-
@Dominik-F Wenn ich nun noch wüßte warum ich die Zeilen darein gemacht habe
Es wird auch dazu einen Grund geben. Ich werde es für mich bewerten und entweder mit der nächsten Version die Zeilen löschen oder eben drin lassen. Ich tendiere derzeit zum löschen, da icb glaube das die Einschränkung nicht mehr relevant war.
Letzte Frage an Dich: Hast die auto_Ask auf true oder false. Damit bestätigt man löschbare Meldungen in der ccu. Ansonsten muss man das in der ccu web-ui selber machen.
-
@cash
Läuft bis jetzt fehlerfrei. Schau mal was im Laufe des Tages via Pushover kommt und melde mich dann.
Danke nochmals für den Support. Kann man auch mehrere Instanzen ausklammern, oder ist das nur auf eine CuxD-Instanz ausgelegt? -
@cash
Irgendwas scheint wohl doch noch zu klemmen...
Hatte das neue Skript heute früh scharf geschaltet und mal nen LowBat Alarm simuliert. Skript hat wie gewünscht reagiert.
Ausm Büro nochmal nachgeschaut, irgendwann tauchte das auf:
Später kam dann das:
Und das Skript wurde automatisch angehalten (Gelbes Symbol).
Find_bug auf true gesetzt und reboot... Low_Bat simuliert, Meldung kommt....
Mal schauen ob er jetzt durchgehend läuft oder sich wieder was einfängt. -
ich habe auto_ack (ich hoffe das meintest du auch) auf true weil es so voreingestellt war bei dir. hab das aber in der CCU auch voreingestellt, daher kann ich da nicht sagen ob die einstellung funktioniert. Hab das Skript mit einem Funkzwischenstecker noch einmal getestet, in dem ich das einfach aus der Steckdose gezogen habe. Die Meldung wurde erfolgreich angezeigt.
-
@bommel_030 Ich verstehe da so einiges nicht. Gestern hast Du geschrieben läuft. Heute Morgen das Du das Script scharf gemacht hast? Wie lief es gestern und hast Du es wieder gestoppt? Das zweite Log deutet darauf hin das das Script neu gestartet wurde? Z. B. durch reboot oder Adapter neu gestartet? Was ist dort passiert? Läuft Dein System insgesamt stabil? Für das Script brauchst Du jedensdall keinen Reeboot. Meine Kiste läuft 24/7.
Wie sieht die Config von Dir aus? Cuxd = „1“?
-
@Dominik-F Genau das meinte ich. Die Antwort war nur zur Fehleranalyse wichtig aber ich hatte es ja auch so gefunden. Mit der nächsten Version brauchst Du das Script nicht mehr anpassen. Ich habe die entsprechenden Zeilen dort auch gelöscht weil nicht mehr nötig.
-
ich danke dir auf jedenfall.
Ich hätte da vielleicht noch einen Vorschlag für dein Skript, weil ich das aus meinem bisherigen Skript für Servicemeldungen so kenne. Vielleicht könntest du eine Option einbauen, mit der man sich zu festgelegten Zeiten eine Pushnachricht/Email etc schicken kann mit den Meldungen? Bisher bekomme ich alle 24h eine Email ob alles in Ordnung ist bzw ob etwas vorliegt. Vielleicht könnte man das Skript so erweitern, das man einstellen kann, ob z.B.Push wie bisher versendet wird, oder zusätzlich zu festgelegten zeiten.
-
@Dominik-F Das werde ich nicht einbauen weil ich keinen Sinn darin sehe. Man bekommt sofort beim auftreten der Meldung eine Push. Die Meldung landet in ein Objekt welches man bei Bedarf jederzeit auf vis sich angucken kann. Somit kann jeder bei Bedarf zu jeder Zeit nachgucken wie der Stand ist. Eine Batteriemeldung ist so lange aktiv bis man die Batteiren tauscht. Beim aufheben unreach bekommt man ebenfalls eine Nachricht.
Wozu also noch eine regelmäßige Übersicht die eigentlich immer zu 95% mit aktuell keine Servicemeldung ankommt.
Also wozu?
Du kannst Dir ja relativ einfach ein Script schreiben welches alle x Stunden Dir per Push das Objekt mit den Serviemeldungen schickt...Das ganze auch noch in das Script packen macht es nicht übersichtlicher. Ich hätte aber auch keine Idee wie ich das einigermaßen Sinnvoll konfigurierbar einbauen könnte.
-
okay, so wie du das jetzt erklärt hast mach es wirklich nicht so viel sinn bzw ist eigentlich überflüssig. hab das nicht bedacht, dass man sich den Datenpunkt in Vis anzeigen lassen kann und man dort den aktuellen Status ja einsehen kann.