NEWS
Servicemeldungen - All inclusive für Homematic -
-
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.
-
@cash
Das Testscript lief einwandfrei. Habe ich heute früh deaktiviert und die aktuelle Version deines Skriptes aktiviert. Auch das lief einwandfrei. Lowbat simuliert, geht. Da ich eh gerade am Rechner saß, JS-Controller aktualisiert, und getestet ob das Skript auch nach einem reboot funktioniert. Auch das hat funktioniert.
Die geposteten Fehlermeldungen kamen erst ne Weile danach.
Ein reboot schließe ich eigentlich aus. Ich habe keinen durchgeführt und wäre er "abgestürzt" wäre ich benachrichtigt worden.
Cuxd ist mit 1 auch richtig eingestellt und seit heute Vormittag läuft es wie erwartet. -
@bommel_030 Bleibt kurios. Ich habe in der neuen Version dafür einige Anpassungen vorgenommen um im Log das hinterher besser nachvollziehen zu können. Werde die Version in den nächsten Tagen online stellen.
-
Mir sind in den letzten Tagen ein paar Dinge aufgefallen und ich bin mir unsicher ob das so sein soll.
Ich hatte zunächst einen Stromausfall, danach wurde ein Rauchmelder, der vorher immer eine Servicemeldung verusacht hat (hab weil er Fehlalarme verursacht hat, den vorrübergehend aus der Halterung genommen und es trat ein kommunikationsfehler auf), weder im Skript noch im Webui angezeigt.
Dazu habe ich, um das Skript nochmals zu testen, eine Funkzwischensteckdose vom Strom genommen. Auch hier trat keine Servicemeldung auf. Erst, als ich diese mit Vis einen Tag später geschaltet habe, kam dort ein Kommunikationsfehler in der WebUI und damit auch im Skript. Jetzt habe ich dauerhaft 2 Meldungen, einmal Sticky Unreach und einmal Unreach. Ist das richtig, dass mir dauerhaft angezeigt wird mit Sticky Unreach? In der WebUI habe ich nur den Kommunikationsfehler weil dort die andere Meldung automatisch bestätigt wurde. Im Skript und in den Datenpunkten taucht diese jedoch weiterhin auf.
Mir scheint, dass die CCU nur Fehlermeldungen ausspuckt, wenn z,B, ein Aktor direkt angesprochen wird. Beim Beispiel von dem Feuermelder würde ich jetzt eigentlich gar nicht wissen, dass dieser nicht mehr funktioniert. Bei Geräten die regelmäßig angesprochen werden, wie Wandthermostat etc funktioniert alles, aber die werden halt auch angesprochen.Ich hoffe ich konnte mich verständlich ausdrücken.
Mache ich was falsch? -
@Dominik-F Das Script kann nur etwas melden wenn entsprechende Datenpunkte sich verändern. Bei Kom-Störungen sind das eben Sticky_unreach und unreach. Sprich wenn die sich ändern reagiert das Script. In der Webui der CCU muss man also einen Fehler sehen sonst werden die Homematic Adapter keine Datenpunkte ändern worauf das Script reagiert.
Nehmen wir mal den normalen Fall: Gerät an der CCU ist angelernt ohne Fehler (z. B. Brandmelder) . Alles gut.
Dieses Gerät meldet sich nur alle 24 Stunden (oder alle 12? Keine Ahnung) bei der CCU oder wenn es eben qualmt sofort. Jetzt entfernst Du die Batterie. Die CCU kriegt hiervon erstmal nichts mit. Erst wenn das Gerät sich nicht mehr meldet fragt die CCU ja. Da es keine Antwort gibt wird eine Serviemeldung in der CCU erzeugt. Der Rega-Adapter bekommt das mit und dadurch wird ein Objekt in ioroker geändert und jetzt kommt das Script ins Spiel....Wenn Du jetzt den Stecker der CCU ziehst ist die Servicemeldung weg. Bei einen gekippten Fenster und den Drehgriffsensoren z. B. werden Dir jetzt auch alle Fenster als geschlossen angezeigt. Erst nach x Stunden. bei der nächsten Routinemeldung vom Sensor passt der Status wieder...
Und so ist es beim Brandmelder vermutlich auch. Das heißt irgendwann sollte in der CCU auch dazu wieder eine Serviemeldung auftauchen. Und erst dann kann mein Script reagieren.
Stromausfall ist generell etwas speziell. Und nach meiner Erfahrung ist jeder Test anders als die Realität. Bei mir macht es einen Unterschied ob ich eine normale Störung durch Umwelteinflüsse habe oder durch Batterie oder Strom entfernen. Deshalb teste ich das Script nur noch an echten Fällen. Bei mir funktioniert es wie es soll und ich kriege die Meldungen die ich erwarte. Je nach Wetter habe ich aber auch mal ein paar Wochen keine Fehlermeldung oder so wie gerade jeden Tag eine.