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.
    • metaxa
      metaxa last edited by metaxa

      Hallo cash!

      Lieben Dank für deinen enormen Aufwand!

      Leider habe ich paar Fehlermeldungen sobald ich das Script v1.31 bei mir einspiele:

      lt. meinen JS Adapter fehlte de Defintion von "datum_neu", konnte ich beheben mit:
      01a2867b-9266-40c0-8889-4e9290586957-grafik.png

      Hierbei stehe ich jedoch an:
      242eb63b-c599-4d1c-85c7-0814b5fc50d0-grafik.png
      Die eigenen Datenpunkte sind ident wie in deiner Scriptversion v1.19 die ich bis jetzt laufen hatte.

      Wo könnte ich (m)einen Fehler finden?
      LG, mxa

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

        @metaxa das datum_neu ist ein Fehler. Die Variable gab es früher einmal. Richtig muss es datum_seit heißen (also einfach ersetzen und das var xxx wieder entfernen). Wie kommst Du darauf das die Zeile 473 und 476 fehlerhaft sind? Nur weil der Javascript Adapter etwas rot anzeigt? Ich bin der Meinung, dass dort der Adapter irrt. Im log wirst Du dazu keinen Fehler finden.

        Werde Heute oder Morgen eine neue Version hochladen wo der Fehler mit datum_neu berichtigt wurde.

        Danke fürs melden.

        metaxa 1 Reply Last reply Reply Quote 1
        • M
          marcbroe last edited by

          @cash sagte in Servicemeldungen - All inclusive für Homematic -:

          Alchy aus dem Homematic Forum

          Hallo, bin noch am Anfang mit iobroker 🙂 Wie binde ich dieses Script ein? Habe bisher immer mit Blockly gearbeitet. Statt Blockly nehme ich ja den Javascript import, aber es sind ja mehrer Dateien?! Danke schon einmal.

          sigi234 1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @marcbroe last edited by sigi234

            @marcbroe sagte in Servicemeldungen - All inclusive für Homematic -:

            Statt Blockly nehme ich ja den Javascript import,

            Nein, neues JS Skript anlegen, dann das Skript einfügen, anpassen, speichern , starten.

            aber es sind ja mehrer Dateien

            Nein, nimm die neue Beta Version. Anklicken, Alles Kopieren und im Neuen JS Script einfügen
            Screenshot (3306)_LI.jpg

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

              @cash sagte in Servicemeldungen - All inclusive für Homematic -:

              Wie kommst Du darauf das die Zeile 473 und 476 fehlerhaft sind?

              Ich maße mir in keinsten Fall an, Fehler da oder dort zuzuweisen. Habe keine Ahnung von JS, von daher habe ich mich nur an die rote Anzeige rechts gehalten. Ja es stimmt, keine Fehlermeldung im Log.

              Zur Zeit habe ich auch keine Servicemeldungen, was mir auch recht ist 🙂

              LG, mxa

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

                Habe gerade die aktuelle Beta hochgeladen. Vom Funktionsumfang jetzt identisch mit der alten Version.

                Ich habe dort einen Log eingebaut bei doppelten Meldungen von unreach und sticky_unreach. Falls jemand eine Meldung bekommt bitte bei mir melden.

                @metaxa War nicht böse gemeint. Ich bin auch kein javascript Profi...

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

                  Hatte heute zufällig mal wieder unreach-Meldungen. Leider funktioniert meine Idee noch nicht so ganz.

                  Also gibt es eine neue Beta-Version auf GitHub mit etwas mehr log-Einträgen damit ich hoffentlich das Problem finde.

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

                    Es gibt es neue Version (als Beta). Ich hoffe die letzte. Wenn ich mich nicht täusche sollten ab jetzt doppelte Meldungen unterdrückt werden.

                    1 Reply Last reply Reply Quote 0
                    • A
                      ArnoD last edited by

                      Hallo cash,

                      wollte so was Ähnliches auch programmieren und habe bei der Suche dein Script entdeckt.
                      Bin echt begeistert davon und du hast mir bestimmt viel Arbeit erspart.
                      Meine Frau wird es dir auch danken 😂

                      Habe die Version 1.36 am laufen und funktioniert so weit ganz gut.
                      Jetzt habe ich noch eine Frage zu meinem Verständnis und hoffe, dass zu Zeit hast zu antworten.

                      • Bewirkt die Constante "autoAck" dasselbe wie die Einstellung in der Benutzerverwaltung der CCU "Automatische
                        Bestätigung der Servicemeldung Gerätekommunikation war gestört" ? Oder ist damit noch was anderes realisiert ?

                      Werde jetzt erst mal dein Script durchgehen,
                      bevor ich noch weiter Fragen stelle, das meiste wird sich dann wahrscheinlich von selbst beantworten. 😉

                      Gruß Arno

                      1 Reply Last reply Reply Quote 1
                      • A
                        ArnoD last edited by

                        Hallo cash,

                        habe jetzt noch eine Frage 🙂

                        Mir ist aufgefallen, dass du in deinem Script die ID STICKY_UNREACH_ALARM auswertest. Hat das einen bestimmten Grund ? Die STICKY_UNREACH_ALARM zeigt eigentlich nur das eine Kommunikationsstörung Vorlag und sagt nichts über die aktuelle Störung der CCU aus. Bei den HMIP Geräten gibt es diesen Datenpunkt bereits nicht mehr, da sinnfrei.
                        Ich erhalte doppelte Pushover Meldungen, die von der ID STICKY_UNREACH_ALARM ausgelöst werden, da diese nur verzögert von der Rega quittiert werden also bereits nicht mehr aktuell sind. Wenn ich bei mir diesen Teil deines Scripts auskommentiere, bekomme ich nur die aktuellen Störungen gemeldet.
                        Wolltest du damit eine Quittiermeldung über Pushover realisieren ?

                        Sorry das ich so viel nachfrage. 😌

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

                          @ArnoD ob der Paramter das gleiche bewirkt weiß ich nicht 100% klingt zumindest so? Wenn ich mich nicht täusche gibt es die Option nur beim raspberrymatic...

                          Also bei IP Geräten gibt es keinen Sticky-Unreach das ist richtig. Ich möchte die Meldung auf jeden Fall haben, denn sie sagt das es eine Kommunikationsstörung gab die man nun mit dem Paramter autoACK erledigen kann.

                          Früher wollte man eigentlich schon wissen wieviel Kommunikationsstörungen hat meine ccu denn und wieviele erledigen sich von ganz alleine.

                          Sinn des Scripts ist es halt jede Servicemeldung zu pushen.

                          In meiner aktuellen Version (ich glaube 1.43) werden doppelte Meldungen rausgefiltert. Werde die Version heute Abend oder am Wochenende hochladen. Habe in der Version aber immer noch kleine ungereimtheiten. Ich bekomme leider nicht regelmäßig Servicemeldungen, so dass das Fehler finden nicht so einfach ist 🙂

                          Du kannst natürlich den Teil löschen oder auskommentieren. Einfacher geht es wenn Du ganz unten bei if(obervation) die drei Zeilen mit Sticky_Unreach auskommentierst.

                          Du kannst das Script jederzeit Deinen Bedürfnissen anpassen.

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            ArnoD @cash last edited by

                            @cash danke für deine schnelle Antwort und für die neue Version 1.43 👍

                            @cash said in Servicemeldungen - All inclusive für Homematic -:

                            @ArnoD ob der Paramter das gleiche bewirkt weiß ich nicht 100% klingt zumindest so? Wenn ich mich nicht täusche gibt es die Option nur beim raspberrymatic...

                            Ok wieder was gelernt, wuste nicht das diese Option nur bei der raspberrymatic vorhanden ist.

                            Habe heute die neue Version 1.43 am laufen und bin gerade wieder am testen.
                            Einen Fehler habe ich finden können, allerdings nicht im Script sondern in der automatischen Quittierfunktion der Raspberrymatic. Wenn ein Teilnehmer nicht mehr erreichbar ist wird die Störung automatisch quittiert und STICKY_UNREACH_ALARM auf 2 gesetzt obwohl die Störung immer noch besteht und eigentlich nicht quittiert werden kann, UNREACH bleibt auf true. Nach etwa 60 sek. wird STICKY_UNREACH_ALARM wieder auf 1 gesetzt. Das hat zur Folge das eine weitere Push Nachricht verschickt wird.
                            Das sieht dann so aus:
                            Unbenannt.jpg

                            Ist aber eher ein Thema für Jens Maus 😉

                            Ist es eigentlich gewollt das beide Meldungstexte verschickt werden? Also die Störung und das es sich um eine quttierbare Störung handelt.

                            Wenn es dir hilft bin ich immer gerne bereit zu testen, habe mehrer RF HMIP und Wired Geräte im Einsatz.

                            1 Reply Last reply Reply Quote 0
                            • M
                              MartyBr last edited by

                              Hallo cash,
                              ich habe mal eine Frage zu deinem Script: Du verwendest bei den Push-Funktionen eine Variable messgae. Weiter unten im Script wird eine Variable message benutzt. Als temporäre Variablen nutzt du messgae_temp.

                              Ist das so beabsichtichtigt? Oder verstehe ich deinen Code nicht (bin Anfänger 😀

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

                                @ArnoD Ja es ist beabsichtigt das beide Meldungen kommen. Den Grund sieht man in der ersten Pushmeldung. Es kann ja sein, das es nur eine Sticky_Unreach Meldung gibt und nicht auch eine Unreach.

                                In Deinem Fall hätte die zweite Meldung eigentlich nicht kommen sollen. Das finde ich eher unschön und versuche ich zu unterdrücken. Das nachstellen ist halt immer schwierig um so eine Lösung zu finden.

                                Und was den Parameter von raspberrymatic angeht glaube ich das Jens etwas schummelt. Wenn ich mich nicht täusche unterdrückt er nur die Anzeige, da bin ich mir aber nicht so ganz sicher. Anderseits mache ich das im Script auch. Wenn man ein Gerät bei no_observation einträgt und es kommt eine Meldung wird halt nur keine Push verschickt im Protokoll taucht die Meldung trotzdem auf...

                                @MartyBr ich weiß nicht genau was Du meinst. Ich benutzte glaube in der aktuellen Version verwende ich kein message_tmp mehr (bin mir unsicher am ipad ist er mühsam den Code sich komplett anzugucken). Aus dem Kopf:

                                Früher habe ich die Meldungen erstmal in message_tmp bzw message_tmp1 aufgenommen. Unterschied war einmal mit html tags und einmal ohne. Da Telegram z. B. damit nicht umgehen kann Irgendwo im Script habe ich dann einfach message = message_tmp gesetzt so dass sie identisch sind. Den genauen Hintergrund warum ich das gemacht habe kann ich Dir nicht mehr sagen. Aber meistens habe ich mir irgend etwas dabei gedacht wenn ich eine Script Zeile schreibe 🙂

                                1 Reply Last reply Reply Quote 0
                                • M
                                  MartyBr last edited by

                                  Hallo cash,

                                  das sind diese Code passagen:

                                      sendTo(pushover_Instanz, { 
                                          device: device,
                                          message: message, 
                                          title: titel, 
                                          priority: prio,
                                          retry: 60,
                                          expire: 600,
                                          html: 1
                                      }); 
                                  }
                                  
                                  function send_telegram (messgae, user_telegram) {
                                      sendTo('telegram.0', { 
                                          text: messgae,
                                          user: user_telegram,
                                          parse_mode: 'HTML'
                                      }); 
                                  

                                  Wenn du nach messgae suchst, dann findes du die Variable an mehreren Stellen:

                                      var servicemeldung = [];
                                      var formatiert_servicemeldung = [];
                                      var messgae_tmp = '';
                                      var messgae_tmp1 = '';
                                      var log_manuell = false;
                                      
                                  

                                  Das wird wahrscheinlich auch nur ein Tippfehler sein.

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

                                    @MartyBr wie ich schon schrieb ich habe mir etwas dabei gedacht. In der aktuellen Version verwende ich message_tmp garnicht mehr. Oder meine suche funktioniert nicht.

                                    Falls Du nicht die V1.44 benutzt aktualisiere bitte das Script.

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

                                      @MartyBr aber nochmal zu Erklärung. Ursprünglich habe ich nur message verwendet. Irgendwann kam der Wunsch auf das ich Telegram intergriere. Telegramm kann aber nicht mit html-Tags umgehen. Also habe ich zwei Variablen benutzt. Aus message wurde message_tmp und für Telegram gab es message_tmp1. Da ich viel aus meinen anderen Scripten immer wieder kopiere und meine Standard Pushover Function mit message funktioniert habe ich es so umgesetzt das ich dann die Vaiable message entweder mit message_tmp fülle oder eben mit message_tmp1 und somit hat das Script korrekt gearbeitet.

                                      Man hätte es anders lösen können oder eben so wie ich. Viele Wege führen zum Ziel. Aber es ist eh eine alte Version. Bei der neuen habe ich es anders umgesetzt aber auch bei der Version gibt es die Variable message.

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        MartyBr last edited by

                                        @cash
                                        Alles klar verstanden 😎

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          ArnoD last edited by

                                          Ich denke @MartyBr meinte den Buchstabendreher in message, da wurde bei message das a und g vertauscht.
                                          Bei den Funktionen send_telegram und send_mail.

                                          mesage1 .png

                                          genauso weiter unten im Script bei den Variablen messgae_tmp und messgae_tmp1. Ist aber nur ein kosmetischer Fehler 😉

                                          M 1 Reply Last reply Reply Quote 0
                                          • A
                                            ArnoD last edited by ArnoD

                                            Ich habe bei mir jetzt den Fehler mit der doppelten Push Meldung korrigiert, eventuell willst du ja die Lösung in deinem Script übernehmen.
                                            Es ist eigentlich derselbe Fehler, wie Jens bei seiner Quittierung der Fehler macht.
                                            Das ein Fehler, der noch aktuell ansteht, versucht wird zu quittieren, was natürlich nicht geht.
                                            Die Schleife STICKY_UNREACH darf erst durchlaufen werden, wen UNREACH= false ist, sonst kann der Fehler nicht quittiert werden.
                                            Ich habe in deiner Funktion Servicemeldung(obj) eine neue Variable var id_UNREACH und status_UNREACH eingefügt und folgenden code geändert:
                                            unreach- .png

                                            Ist Programmiertechnisch nicht die beste Lösung aber es funktioniert und mir ist nichts besseres eingefallen ohne das ganze Script abzuändern. 😀

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            940
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            93
                                            1038
                                            230285
                                            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