Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Servicemeldungen - All inclusive für Homematic -

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Servicemeldungen - All inclusive für Homematic -

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      f0rd42 last edited by f0rd42

      @cash

      ich habe da zwei Fragen:

      Pushover
      Du hast 4 Instanzen.
      Der Pushover Adapter kennt jedoch nur 3 Prio's (quit, default, high-priority)
      Mir ist nicht so ganz klar, wie du die 4 Instanzen auf die 3 Prio's aufteilst.

      Bei Deinen Instanzen denke ich mal, du hast Group Key und Token überall identisch und nur die Prioritäten verändert, richtig?

      Was genau macht "let _device = 'All'; " das kann ich doch (alternativ) auch über die Gruppe in der App festlegen, oder?

      Ich habe das bei mir nun mal installiert, bekomme aber folgende Fehler:

      1/1/2020, 5:46:13 PM.478	[info ]: javascript.0 (1940) Stop script script.js.common.ServicemeldungenHomematic
      1/1/2020, 5:46:21 PM.382	[info ]: javascript.0 (1940) Start javascript script.js.common.ServicemeldungenHomematic
      1/1/2020, 5:46:23 PM.515	[info ]: javascript.0 (1940) script.js.common.ServicemeldungenHomematic: Bitte melden: HM-LC-Sw4-DR-2 Gartenbewässerung (PEQ0085117) --- HM-LC-Sw4-DR-2 --- Batterietyp fehlt im Script
      1/1/2020, 5:46:23 PM.515	[info ]: javascript.0 (1940) script.js.common.ServicemeldungenHomematic: Es gibt: 2 Geräte mit dem Datenpunkt LOWBAT.
      1/1/2020, 5:46:23 PM.521	[warn ]: javascript.0 (1940)     at Servicemeldung (script.js.common.ServicemeldungenHomematic:749:21)
      1/1/2020, 5:46:23 PM.521	[warn ]: javascript.0 (1940)     at script.js.common.ServicemeldungenHomematic:2075:5
      1/1/2020, 5:46:23 PM.544	[info ]: javascript.0 (1940) script.js.common.ServicemeldungenHomematic: Es gibt: 40 Geräte mit dem Datenpunkt LOW_BAT.
      1/1/2020, 5:46:23 PM.548	[error]: javascript.0 (1940) script.js.common.ServicemeldungenHomematic: script.js.common.ServicemeldungenHomematic:891
      1/1/2020, 5:46:23 PM.549	[error]: javascript.0 (1940)     at script.js.common.ServicemeldungenHomematic:891:29
      1/1/2020, 5:46:23 PM.550	[error]: javascript.0 (1940)     at Servicemeldung (script.js.common.ServicemeldungenHomematic:875:21)
      1/1/2020, 5:46:23 PM.550	[error]: javascript.0 (1940)     at script.js.common.ServicemeldungenHomematic:2075:5
      
      cash 1 Reply Last reply Reply Quote 0
      • cash
        cash Most Active @f0rd42 last edited by

        @f0rd42 Es gibt die Prio -2 bis 3 das sind also 5 Priostufen. Die habe ich aufgeteilt auf die Instanzen. Das hat den Vorteil das ich schon am Icon erkenne wie wichtig die Pushmeldung für mich ist (bei den Servicemeldungen also eher unwichtig).

        Mit device steuere ich wer eine Push bekommt. All für meine Frau und ich ansonsten halt den Devicenamen. Klar das geht auch anders aber als ich mit ioBroker angefangen hat war das für mich ein logischer Weg. Aus heutiger Sicht nicht perfekt aber ändern würde ich es auch nicht mehr.

        F 1 Reply Last reply Reply Quote 0
        • F
          f0rd42 @cash last edited by

          @cash

          wo stellt du denn die Pro -2 bis 3 ein? Im Adapter selbst gibt es ja nur die 3 zum auswählen?

          cash 2 Replies Last reply Reply Quote 0
          • cash
            cash Most Active @f0rd42 last edited by

            @f0rd42 In den Servicemeldungen nutze ich die nicht. Aber Du kannst die doch nutzen in den Zeilen 101 bis 111 kannst Du je nach Servicemeldung eine Prio eingeben. Also auch die -2

            F 1 Reply Last reply Reply Quote 0
            • F
              f0rd42 @cash last edited by

              @cash

              Aha, in deinem Adapter selbst (also in der Instanz) steht also immer "Default" als Prio und die eigentliche Priorität wird durch das Script übergeben?

              Hast Du eine Idee zu den o.g. Fehlermeldungen (hatte meinen Beitrag editiert)

              Danke

              1 Reply Last reply Reply Quote 0
              • F
                f0rd42 last edited by

                @cash

                der Fehler ist irgendwie zusammenhängend mit no_observation.search(id_name)
                da meckert er im Editor immer: gibbet nicht!

                Dominik F. 1 Reply Last reply Reply Quote 0
                • Dominik F.
                  Dominik F. @f0rd42 last edited by

                  @f0rd42

                  Ich nutze nach Crash's Vorbild für das Script 2 Pushover instanzen. Eine für wichtige z.B. Sabotage und eine für weniger wichtige wie Lowbat. Jede Instanz hat sein eigenes Symbol um die wichtigkeit einfach sofort erkennen zu können. Ist einfach eine hübsche Spielerei finde ich. In Crash's erstem Post, müsste es glaube ich sein, siehst du wie er die verschiedenen Instanzen nutzt.

                  1 Reply Last reply Reply Quote 0
                  • cash
                    cash Most Active @f0rd42 last edited by

                    @f0rd42 Der Fehler erscheint wenn das Script einige Daten nicht komplett ermitteln kann. Meistens weil in der Instanz Geräte sind die es nicht mehr gibt oder nie gab. Manchmal hilft es einfach alle Datenpunkte der Instanz unter den Objekten zu löschen und danach die Geräte mit der Instanz wieder neu einzulesen. Ansonsten muss man tiefer eingreifen um zu sehen welches Gerät das Problem verursacht. Evtl hilft es schon wenn man show_each_device mal auf true zu stellen um zu sehen bei welchen Gerät der Fehler auftritt.

                    F 1 Reply Last reply Reply Quote 0
                    • B
                      brain last edited by

                      Ich bin gerade dabei, das Skript zu implementieren. Ich habe mir das aktuelle Skript von GitHub gezogen und meine Anpassungen vorgenommen (Datenpunkte für Servicemeldungen angelegt und im Skript hinterlegt). Das funktiert auch soweit und die Zählung wird aktualisiert, sobald ich testweise manuell einen Fehler erzeuge. Siehe folgendes Log:

                      3.1.2020, 15:40:43.966	[info ]: javascript.0 (21626) script.js.Anzeige.Servicemeldungen-Homematic: Neue Servicemeldung: BA_HM-Sec-SCo OEQxxxxxxx (OEQxxxxxxx) --- HM-Sec-SCo--- Typ: LOWBAT_ALARM --- Status: 1 Batterie niedrig
                      3.1.2020, 15:40:43.989	[warn ]: javascript.0 (21626)     at Servicemeldung (script.js.Anzeige.Servicemeldungen-Homematic:1111:21)
                      3.1.2020, 15:40:43.989	[warn ]: javascript.0 (21626)     at Object.<anonymous> (script.js.Anzeige.Servicemeldungen-Homematic:2058:9)
                      3.1.2020, 15:40:45.325	[info ]: javascript.0 (21626) script.js.Anzeige.Servicemeldungen-Homematic: Servicemeldung aufgehoben: BA_HM-Sec-SCo OEQxxxxxxx (OEQxxxxxxx) --- HM-Sec-SCo--- Typ: LOWBAT_ALARM --- Status: 2 Batterie ok
                      3.1.2020, 15:40:45.350	[warn ]: javascript.0 (21626)     at Servicemeldung (script.js.Anzeige.Servicemeldungen-Homematic:1111:21)
                      3.1.2020, 15:40:45.350	[warn ]: javascript.0 (21626)     at Object.<anonymous> (script.js.Anzeige.Servicemeldungen-Homematic:2058:9)
                      

                      Allerdings bekomme ich keine Meldungen per Telegram. Ich habe es schon mit Klarnamen und Nummer bei user_telegram versucht. Nichts funkioniert. Kann mir hier jemand weiterhelfen?

                      cash 1 Reply Last reply Reply Quote 0
                      • cash
                        cash Most Active @brain last edited by

                        @brain Wie sieht denn Zeile 142 bei Dir aus? In Zeile 1111 wird id_IST_STICKY_UNREACH befüllt. Und da gibt es ein Problem?

                        B 1 Reply Last reply Reply Quote 0
                        • F
                          f0rd42 @cash last edited by

                          @cash

                          OK, danke! Ich werde das mal beobachten. Denke da handelt es sich um ein paar HMIP-PSM, die nicht in der Steckdose stecken.

                          cash 1 Reply Last reply Reply Quote 0
                          • B
                            brain @cash last edited by brain

                            @cash Zeile 142 ist wie folgt:

                            const id_IST_STICKY_UNREACH = 'javascript.0.HomeMatic-Servicemeldungen.Anzahl_STICKY_UNREACH'/*Anzahl_STICKY_UNREACH*/;
                            

                            Den entsprechenden Datenpunkt habe ich manuell erstellt:
                            7755bc06-b50b-401e-8287-1e81c7ede201-grafik.png

                            cash 1 Reply Last reply Reply Quote 0
                            • cash
                              cash Most Active @f0rd42 last edited by

                              @f0rd42 Nein daran kann es nicht liegen. Die Geräte gibt es ja nur eben mit einer Servicemeldungen...

                              1 Reply Last reply Reply Quote 0
                              • cash
                                cash Most Active @brain last edited by

                                @brain Kommt es immer noch zu Warnings im Log? Oder war das nur erstmalig und die angelegten Objekte hatten dort noch keinen Inhalt?

                                Zu Telegram kann ich nichts sagen da ich es nicht nutze. Kannst Du Dir denn per anderen Script Telegram Nachrichten schicken?

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  brain @cash last edited by

                                  @cash Im laufenden Betrieb treten keine Fehler o.Ä. auf. Die obigen Meldungen kommen lediglich zu Stande, wenn es eine neue Meldung durch HomeMatic gibt (oder ich eine erzeuge). Ich denke aber, die Warnungen könnten ignoriert werden.

                                  Das Problem ist also vielmehr, dass mir keine Telegram-Nachrichten geschickt werden. Warum das so ist weiß ich nicht. Der Versand funktioniert mit anderen Scripten (Blockly) einwandfrei.

                                  cash 1 Reply Last reply Reply Quote 0
                                  • cash
                                    cash Most Active @brain last edited by

                                    @brain Die Warnungen sind nicht normal und sollten eher nicht ignoriert werden. Da es eben Warnungen sind und keine Hinweise.

                                    Zeig mal Deine Config bzw eine Push wird nur versand wenn ein Fehler länger nicht vorliegt also nicht sofort sondern mit einer Verzögerung von einer Minute, da Dein Fehler aber nicht so lange anhält sendet er auch keine Nachricht. Wenn in der Config anders konfiguriert wird ebenfalls keine Nachricht verschickt. Hast Du einen Drehgriffsensor? Dort kann man wunderbar die Sabotage meldung erzeugen...

                                    B 1 Reply Last reply Reply Quote 0
                                    • B
                                      brain @cash last edited by brain

                                      @cash
                                      Hmmm... Nun bin ich mir unsicher, ob ich richtig getestet habe. Zum Testen habe ich einfach einen LOWBAT-Datenpunkt auf 1 gesetzt. Daraufhin haben sich die von mir erzeugten Zählvariablen geändert, aber es wurde keine Nachricht verschickt.
                                      Zum Testen habe ich nun noch einen Datenpunkt für die Anzeige in VIS erstellt. Dieser wird auch mit der Statusmeldung befüllt.
                                      Hier auf jeden Fall mal meine Config, falls du diesen Teil des Skripts meinst

                                      const Version = 1.63;
                                      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 = false;             //Prüft beim Script Start ob derzeit Geräte eine Servicemeldung haben
                                      const with_time = false;           //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 = '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 = true;        // true schreibt beim auftreten einer Servicemeldung die Serviemeldung in ein Objekt
                                      const id_Text_Servicemeldung = 'javascript.0.HomeMatic-Servicemeldungen.Text';  // Objekt wo die Servicemeldung hingeschrieben werden soll
                                      
                                      //Variablen für Pushover
                                      const sendpush = false;     //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 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 = true;            //true = verschickt per Telegram Nachrchten // false = Telegram wird nicht benutzt
                                      const user_telegram = 'brain';             //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 = '';
                                      const id_IST_LOWBAT = 'javascript.0.HomeMatic-Servicemeldungen.Anzahl_LOWBAT'/*Anzahl LOWBAT*/;
                                      const id_IST_LOW_BAT = '';
                                      const id_IST_UNREACH = 'javascript.0.HomeMatic-Servicemeldungen.Anzahl_UNREACH'/*Anzahl_UNREACH*/;
                                      const id_IST_STICKY_UNREACH = 'javascript.0.HomeMatic-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.HomeMatic-Servicemeldungen.Anzahl_GESAMT"/*Anzahl_GESAMT*/;
                                      
                                      cash 1 Reply Last reply Reply Quote 0
                                      • cash
                                        cash Most Active @brain last edited by

                                        @brain sieht so weit gut aus. Bei dem Test kann keine Push kommen, da der von Dir veränderte Wert zu schnell wieder korrigiert wird. Du kannst Batterien entfernen oder eine Zwischensteckdose rausziehen. Dann musst Du aber ggf länger warten bis die CCU mal wieder nach dem Gerät fragt. Am Einfachsten sind eigentlich die Sabotagemeldungen.

                                        Dein Test hat erstmal nur gezeigt das das Script grundsätzlich läuft und im Falle einer Servicemeldung richtig reagiert. Der Test zeigt aber auch das irgend etwas noch nicht passt und deshalb die Warnings kommen.

                                        B 1 Reply Last reply Reply Quote 0
                                        • B
                                          brain @cash last edited by

                                          @cash Danke für die schnelle Rückmeldung und die Hilfe.
                                          Ich hatte falsch getestet. Gerade einmal die Batterien aus einem Wandthermostat entnommen und etwas gewartet (min. 5 Minuten). Siehe da: Meldung per Telegram.

                                          1 Reply Last reply Reply Quote 0
                                          • rantanplan
                                            rantanplan last edited by

                                            @cash Ist das richtig wenn ich das hier Melde?

                                            Bitte melden: Gong-1 (LEQ0573128) --- HM-OU-CF-Pl --- Batterietyp fehlt im Script 
                                            
                                            cash 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            93
                                            1038
                                            230194
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo