Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Script] MessageHandler: Nachrichten protokollieren +VIS

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Script] MessageHandler: Nachrichten protokollieren +VIS

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Tirador @der-eine last edited by

      @der-eine Das ist kurios, aber wenn es hilft 😉

      Ich habe deine Änderung (entfernen des nbsp-Tags) übernommen in die aktuelle Development Version.

      D 1 Reply Last reply Reply Quote 0
      • T
        Tirador last edited by

        Neuer Stand zur Entwicklung:
        Ich habe jetzt TELEGRAM-Pushs eingebaut.

        Damit kann ich für bestimmte einzelne Nachrichten konfigurierbar TELEGRAM Pushs auslösen oder auch für alle Nachrichten eines Severity-Levels (INFO; WARN, ALARM, ERROR etc.).

        Möglich ist auch die Konfiguration von mehreren Pushs (d.h. mehrere Chatbenutzer oder mehrere Telegraminstanzanzen oder Telegramchatids).

        Als nächstes wollte ich auch Email-Pushs integrieren.

        Meine Lampensteuerung überdenke ich momentan noch. Die Idee Lampen / eine Lampe auf eine Farbe in Abhängigkeit der Severity (Info, Warnung, Error, Alarm) zu stellen, wenn eine Nachricht existiert kriege ich glaube ich nicht gut in das Skript integriert. Die Problematik ist, dass man wechselhafte Zustände abdecken muss (im Prinzip muss ein höhergewichtiger Status alle anderen überlagern). Ein weiteres Problem ist das man auch zum initialen Zustand zurückspringen sollte (d.h. die ursprüngliche Farbe/Status der Lampe wiederherstellen, wenn der Status wechselt). Dazu kommt, dass das alles natürlich nicht blinken sollte, wenn man nicht anwesend ist usw. Die Logik ist daher schon sehr speziell und glaube ich nicht generalisierbar in das Skript reinzuquetschen.

        uwe12489 1 Reply Last reply Reply Quote 0
        • D
          der-eine @Tirador last edited by

          @Tirador ändert denn die Änderung bei Deiner Visualisierung was? 🤔

          1 Reply Last reply Reply Quote 0
          • uwe12489
            uwe12489 @Tirador last edited by

            @Tirador
            Eine tolle Arbeit. Danke. Habe mir Einträge für LAST_CALL und DWD_WETTERWARNUNG gebastelt.
            Bildschirmfoto 2020-04-14 um 20.35.04.png
            Kann man einen Eintrag (zBsp Wetterwarnung) ausblenden wenn keine Meldung vorliegt?

            T 1 Reply Last reply Reply Quote 0
            • T
              Tirador @uwe12489 last edited by Tirador

              @uwe12489 besten Dank. Würdest du deine Erweiterungen für Nachrichten teilen, dann nehme ich diese mit in die nächste Version auf. Letzter Anruf finde ich auch gut.

              Du kannst das auslösen der Nachricht im MessageStateCreator bedingen. Dafür gibt es das Attribut postMsg. Ebenso auch, wenn eine Nachricht entfernt werden soll (Attribut removeMsg). Wenn du einen Datenpunkt hast mit der DWD Warnmeldung, kannst du somit die Nachricht nur auslösen, wenn ein Text drin steht. Ebenso kannst du die Nachricht wieder automatisch entfernen, wenn kein Text mehr drin steht.

              Beispiele für das bedingen sind im Skript Initial:

              // postMsg: Nachricht nur erzeugen, wenn ein vorgegebener Datenpunkt einer bestimmten Bedingung entspricht.
              		//          Im Beispiel müssen die Anzahl der geöffneten Fenster größer als 0 sein,
              		//          damit die Nachricht "Fenster geöffnet" ausgelöst wird.
              		//          
              		//       dp: Datenpunkt dessen Wert der Bedingung entsprichen muss
              		//       comp: Vergleichsoperator. Es sind folgende Operatoren erlaubt:
              		//             == gleich
              		//             != ungleich
              		//             >= größer gleich
              		//             <= kleiner gleich
              		//             >  größer
              		//             <  kleiner
              		//       val: Wert
              		//       Die Nachricht wird erzeugt, wenn die Bedingung "dp comp val" eintritt.
              		
                      postMsgDP: {dp:'javascript.0.FensterUeberwachung.WindowsOpen', comp: '>', val:0}, 
              		
              		
              		// removeMsgDP: Nachricht entfernen, wenn ein vorgegebener Datenpunkt einer bestimmten Bedingung entspricht.
              		//          Im Beispiel wird die Nachricht "Fenster geöffnet" entfernt, 
              		//          wenn die Anzahl der geöffneten Fenster gleich 0 ist.
              		//
              		//       dp: Datenpunkt dessen Wert der Bedingung entsprichen muss
              		//       comp: Vergleichsoperator. Es sind folgende Operatoren erlaubt:
              		//             == gleich
              		//             != ungleich
              		//             >= größer gleich
              		//             <= kleiner gleich
              		//             >  größer
              		//             <  kleiner
              		//       val: Wert
              		//       Die Nachricht wird entfernt, wenn die Bedingung "dp comp val" eintritt.
              				
                      removeMsgDP: {dp:'javascript.0.FensterUeberwachung.WindowsOpen', comp: '==', val:0}, // Nachricht enfernen, wenn die Bedingung eintritt
              
              uwe12489 1 Reply Last reply Reply Quote 0
              • uwe12489
                uwe12489 @Tirador last edited by

                @Tirador
                Mit der DWD-Wetterwarnung komm ich nicht weiter. Hier die aktuelle Verdrahtung 😉

                    // letzter Anruf (des Tages) TEST
                    // Über TR-064-Community-Adapter
                    {
                        msgID: 'LAST_CALL', 
                        triggerDP: 'tr-064.0.callmonitor.lastCall.callerName',
                        postMsgDP: {dp:'tr-064.0.callmonitor.lastCall.callerName'},
                        msgText_1: {text: 'Anrufer: '},
                        msgText_2: {dp: 'tr-064.0.callmonitor.lastCall.callerName'},
                        msgText_3: {text: '</br>Angerufen: '},
                        msgText_4: {dp: 'tr-064.0.callmonitor.lastCall.calleeName'},
                        countEventsDP: ''
                    } ,
                
                    // DWD Wetterwarnung TEST
                    // Über DWD-Adapter
                    {
                        msgID: 'DWD_INFO', 
                        triggerDP: ['dwd.0.warning.headline'],
                        postMsgDP: {dp:'dwd.0.warning.headline',
                        //postMsgDP: {dp:'dwd.0.warning.severity', comp: '==', val:'None(0)',
                        msgText_1: {dp: 'dwd.0.warning.headline'},
                        msgText_2: {dp: '</br>dwd.0.warning.text'},
                        countEventsDP: ''
                    } ,
                
                D 1 Reply Last reply Reply Quote 0
                • D
                  der-eine @uwe12489 last edited by der-eine

                  @uwe12489 schreib mal Deine Konfiguration so um:

                  // DWD Wetterwarnung TEST
                      // Über DWD-Adapter
                      {
                          msgID: 'DWD_INFO', 
                          triggerDP: 'dwd.0.warning.severity',
                          postMsgDP: {dp:'dwd.0.warning.severity', comp: '>', val:0},
                          removeMsgDP: {dp:'dwd.0.warning.severity', comp: '<', val:1},
                          msgText_1: {dp: 'dwd.0.warning.headline'},
                          msgText_2: {text: ' <br> '},
                          msgText_3: {dp: 'dwd.0.warning.description'},
                          countEventsDP: ''
                      },
                  
                  //Deutscher Wetter Dienst
                          DWD_INFO: {logType: 'LAST',  severity: 'WARN',  msgHeader: "Wetterwarnung", msgText: "", quit: false, mdIcon: 'warning', mdIconColor: '', fontColor: '', backgroundColor: ''},
                  

                  Bildschirmfoto 2020-04-15 um 01.34.27.png

                  Bildschirmfoto 2020-04-15 um 01.35.40.png

                  uwe12489 T 2 Replies Last reply Reply Quote 0
                  • uwe12489
                    uwe12489 @der-eine last edited by

                    @der-eine Supi. Danke.

                    1 Reply Last reply Reply Quote 0
                    • T
                      Tirador @der-eine last edited by

                      DWD hatte ich bis dato noch gar nicht installiert und auf dem Schirm. Habe das jetzt auch installiert und die Nachricht in das Skript übernommen! 🙂

                      1 Reply Last reply Reply Quote 0
                      • T
                        Tirador last edited by Tirador

                        Ich habe jetzt noch eine Visualisierung ergänzt die Anzeigt, ob die Nachricht quittierbar ist.
                        Die Änderung ist noch nicht veröffentlicht.

                        Beispiel: Erkennbar an dem "x" hinten.

                        2020-04-15 20_43_03-vis.png

                        Wenn jemand eine bessere Idee hat, gerne 🙂

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Saschag @Tirador last edited by

                          @Tirador

                          Super Script, Danke dafür!
                          Stellst du die Änderungen auch auf Github?

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            Tirador @Saschag last edited by

                            @Saschag ich veröffentliche die nächste Version, wenn die aktuelle Entwicklungsversion ein paar Tage fehlerfrei lief.

                            S Glasfaser uwe12489 3 Replies Last reply Reply Quote 0
                            • S
                              Saschag @Tirador last edited by

                              @Tirador

                              👍

                              1 Reply Last reply Reply Quote 0
                              • D
                                der-eine last edited by

                                Bildschirmfoto 2020-04-15 um 23.19.33.png

                                Meine neuen Messages:

                                • Internetverbindung

                                • Wetterwarnung (Aussentemp unter 3 °)

                                • Wetterwarnung (DWD)

                                • Haustürklingel aktiv?

                                • Anzeige der eingeschaltenen Lichter (Umbau Fensterskript von Pittini)

                                T 1 Reply Last reply Reply Quote 1
                                • Glasfaser
                                  Glasfaser @Tirador last edited by Glasfaser

                                  @Tirador

                                  Im alten/defekten Thread hast du dieses Blockly Beispiel zur Verfügung gestellt ....
                                  Könntest du es wieder hier einstellen ...Danke

                                  1.JPG

                                  1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @Tirador last edited by Glasfaser

                                    @Tirador

                                    2020-04-06 18_02_59-vis.png

                                    Welche Einstellungen muß ich ändern , um es mit den alten MDCSS V1 zu nutzen .

                                    Hintergrund die Übersicht sieht besser aus als htlm... und nicht jeder hat MDCSS V2 .

                                    So sieht es natürlich zum kot.... aus in V1 😞

                                    1.JPG

                                    und htlm ... sieht es alles gequetscht aus :

                                    2.JPG

                                    1 Reply Last reply Reply Quote 1
                                    • uwe12489
                                      uwe12489 @Tirador last edited by

                                      @Tirador
                                      Hallo, ich versuche mich gerade an einem Regen-Radar

                                      im MessageHandler:

                                      •     REGEN_INFO: {logType: 'LAST',  severity: 'INFO',  msgHeader: "Regenradar", msgText: "", quit: false, mdIcon: 'filter_drama', mdIconColor: 'mdui-red', fontColor: '', backgroundColor: ''},
                                        

                                      und im MessageStateCreator:

                                        // Regen-Radar TEST
                                          // Über Daswetter.0-Adapter
                                          {
                                              msgID: 'REGEN_INFO', 
                                              triggerDP: 'daswetter.0.NextHours.Location_1.Day_1.rain_value',
                                              postMsgDP: {dp:'daswetter.0.NextHours.Location_1.Day_1.rain_value', comp: '>', val:0},
                                              removeMsgDP: {dp:'daswetter.0.NextHours.Location_1.Day_1.rain_value', comp: '==', val:0},
                                              msgText_1: {dp: 'daswetter.0.NextHours.Location_1.Day_1.rain_value'},
                                              msgText_2: {text: ' mm Niederschlag'},
                                              countEventsDP: ''
                                          },
                                      

                                      Jetzt muss es nur noch regnen 😉

                                      1 Reply Last reply Reply Quote 0
                                      • V
                                        vader722 last edited by

                                        Hallo,

                                        ich finde das Skript eine tolle Idee ! Vielen Dank 🙂

                                        Ich hab es soweit erfolgreich installiert, für mich angepasst und es funktioniert auch tadellos.
                                        Leider stell ich mich zu blöd an, das in VIS vernünftig zu integrieren.
                                        Ich habe die beiden Views (ich bevorzuge die Material Design CSS2.0 Variante) testweise in das MD_Demo Projekt eingebunden.
                                        Irgendwie klappt das mit den Icons nicht, bei mit erscheinen keine Icons.

                                        Ich habe nach der Anleitung für das Material Design CSS2.0 in dem Projekt die Globale CSS sowie die Projekt CSS als auch das Skript eingetragen, alle IconSets installiert die ich finden konnte, jedoch bleiben die Icons verschwunden. Leider ist mein Wissen über HTML und CSS überschaubar 😉

                                        Auch in dem original MD_Demo Projekt sind nicht alle Icons zu sehen, manche schon.

                                        Hat da einer eine Idee wo ich nachschauen könnte ?

                                        Gruss Marco

                                        Bildschirmfoto 2020-04-16 um 13.41.21.png

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          der-eine @vader722 last edited by der-eine

                                          @vader722 Du musst noch im CSS den Pfad der Icons auf den Namen Deines Vis Projektes anpassen.
                                          Hier bei mir VIS-iPhone 3x

                                          Bildschirmfoto 2020-04-16 um 13.54.18.png

                                          V 1 Reply Last reply Reply Quote 0
                                          • V
                                            vader722 @der-eine last edited by

                                            @der-eine
                                            Danke Dir 🙂

                                            Aber mein Projekt heisst aktuell schon MD_Demo, da ich den View in das Demo Projekt zum testen eingefügt habe.

                                            Ich habe jedoch mal im Browser versucht aus dem Verzeichnis /vis.0/MD_Demo/images ein JPG oder die MaterialIcons-Regular.eot zu laden, was jedoch nicht funktioniert ?

                                            Ich bekomme da immer: File MD_Demo/images/MaterialIcons-Regular.eot not found: Not exists

                                            Dabei existiert das File auf jeden Fall ? Kann es sein, das die Web Instanz nicht in das Verzeichnis vis.0 zugreift ?

                                            Fileberechtigungen sehen alle ok aus ?

                                            Bildschirmfoto 2020-04-16 um 14.18.30.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            455
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            25
                                            336
                                            43468
                                            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