Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Multi Ereignislisten Skript

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Multi Ereignislisten Skript

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

      Könnte man das Skript nicht so umbauen, dass es keine globale Funktion benötigt, sondern einen Trigger auf einen Datenpunkt setzt? Dieser kann ja einen String beinhalten und die selbe Syntax wie der Funktionsaufruf benötigen.
      Ich würde das ggf. mir Trial an Error irgendwann auch hinbekommen, aber hier ist sicher jemand der das schneller und effizienter hinbekommt. Macht das überhaupt Sinn was ich vorschlage? Oder hat eine globale Funktion irgendwelche Vorteile? (Performance?!)
      Ein eigener Adapter wäre natürlich noch eleganter. 😛

      Habe bisher viele Skripte aber keine globale Funktion in Benutzung, daher meine Frage.

      EDIT: Natürlich vielen Dank für dieses Skript! Funktioniert bisher soweit sehr gut. 🙂

      Hiltex 1 Reply Last reply Reply Quote 0
      • Hiltex
        Hiltex @siggi85 last edited by

        @siggi85 nach meinem Verständnis ist eine globale Funktion ja im Prinzip nur ein Code-Schnipsel, das überall zur Verfügung steht. Speziell bei der Ereignisliste ist der extrem einfach gehalten und ist selbst für einen Raspberry Pi 1 keine Herausforderung.
        Das ganze über einen Datenpunkt zu realisieren scheint mir indes eher unflexibel, weil man da ja auch die Parameter für die Liste und Farbe mit übergeben müsste. Insofern finde ich die aktuelle Lösung garnicht so schlecht.
        Allerdings hab ich das ganze bisher nur sehr rudimentär eingebaut, weil ich keinen Sinn darin sehe, mir eine Liste mit Tür offen, Tür geschlossen, Tür offen, Tür geschlossen anzeigen zu lassen. Sowas benötige ich zwar manchmal für die Fehlersuche, aber dann lass ich mir den Wechsel der Zustände ins History oder InfluxDB schreiben und werte das dann grafisch mit Flot oder Grafana aus. So kann ich Trigger und Aktion gleichzeitig sehen und besser nachvollziehen, warum morgens das Licht leuchtet, wenn ich ins Wohnzimmer komme, obwohl ich es abends ausgeschaltet habe.

        1 Reply Last reply Reply Quote 0
        • M
          martinschm @ruhr70 last edited by

          @ruhr70 Sehr cooles Skript. Hab etwas gebaucht um den Zweck zu verstehen, aber das ist echt super cool. Kommt gleich auf meine ToDo Liste fürs Smart Home

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

            @ruhr70 sagte in [Vorlage] Multi Ereignislisten Skript:

            0.2.3

            Hm , habe mal die 0.2.3 genommen , leider kommt ein Fehler:

            15.8.2019, 11:16:10.692	[info ]: javascript.0 Stop script script.js.Ereignisse.Erstellt_Ereignislisten
            15.8.2019, 11:16:10.692	[info ]: javascript.0 script.js.Ereignisse.Erstellt_Ereignislisten: ----------- Skript: script.js.Ereignisse.Erstellt_Ereignislisten -> wurde beendet -----------
            15.8.2019, 11:16:10.798	[info ]: javascript.0 Start javascript script.js.Ereignisse.Erstellt_Ereignislisten
            15.8.2019, 11:16:10.798	[error]: javascript.0 script.js.Ereignisse.Erstellt_Ereignislisten compile failed:
            at script.js.Ereignisse.Erstellt_Ereignislisten:140
            15.8.2019, 11:16:56.490	[info ]: javascript.0 Stop script script.js.Ereignisse.Erstellt_Ereignislisten
            15.8.2019, 11:16:56.496	[info ]: javascript.0 Start javascript script.js.Ereignisse.Erstellt_Ereignislisten
            15.8.2019, 11:16:56.496	[error]: javascript.0 script.js.Ereignisse.Erstellt_Ereignislisten compile failed:
            at script.js.Ereignisse.Erstellt_Ereignislisten:140
            15.8.2019, 11:17:41.090	[info ]: javascript.0 Stop script script.js.Ereignisse.Erstellt_Ereignislisten
            15.8.2019, 11:17:41.101	[info ]: javascript.0 Start javascript script.js.Ereignisse.Erstellt_Ereignislisten
            15.8.2019, 11:17:41.101	[error]: javascript.0 script.js.Ereignisse.Erstellt_Ereignislisten compile failed:
            at script.js.Ereignisse.Erstellt_Ereignislisten:140
            

            Zeile 140:

            for (var i=0; i<this.length; i++)/if/(a="==" this[i])/return/true/false/}/function/makejsonarr()/{/for/(var/liste/in/listenjson)/jsonarr[liste]="readListEvent(pfad+liste+&quot;.eventlistArr&quot;);" datenpunkte/für/die/eventlisten/anlegen/dpanlegen(callback)/var/stateliste="[];" zeitstempel="listenJson[liste].zeitstempel;" (typeof/"undefined")/hier/wird/als/array/angelegt/stateliste.push({id:/pfad+liste+".eventlistarr",/val:formatdate(new/date(),/zeitstempel)/+/trennerzeitstempel/'datenpunkt/angelegt',/write:/false});/string/mit/\n/pfad+liste+".eventliststr",/val:"",/html-string/<br="">\n für VIS
            

            Bin wieder zurück auf die 0.2.2

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

              @sigi234 sagte in [Vorlage] Multi Ereignislisten Skript:

              Bin wieder zurück auf die 0.2.2

              geht die 0.3.0er bei dir nicht? bei mir flutscht das Ding wie sonst was.

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

                @a200 sagte in [Vorlage] Multi Ereignislisten Skript:

                @sigi234 sagte in [Vorlage] Multi Ereignislisten Skript:

                Bin wieder zurück auf die 0.2.2

                geht die 0.3.0er bei dir nicht? bei mir flutscht das Ding wie sonst was.

                Geht bei mir nicht. .

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

                  Hi,
                  ich würde die Listen gerne unter meinen eigenen Datenpunkten (Ordner der auf der obersten Ebene liegt und Datenpunkte.0 heißt) anlegen lassen und nicht unter javascript.0

                  Kann ich das in den Skript irgendwie anpassen ?

                  arteck 1 Reply Last reply Reply Quote 0
                  • arteck
                    arteck Developer Most Active @martinschm last edited by

                    @martinschm lass die lieber da .. eigenen Datenpunkte sollten nicht im einzelnen eigen angelegten Datenbaum liegen

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      martinschm @arteck last edited by

                      Hi @arteck, was ist der Grund dafür ?

                      Hab zwei javascript Instanzen, eine auf der ich Skripte teste und eine wo die produktiven laufen. Dachte wenn ich teste und der Adapter mal abstürzt läuft der Rest trotzdem weiter.

                      Daher schien es mir klug, die Datenpunkte unabhängig vom Adapter abzulegen

                      arteck 1 Reply Last reply Reply Quote 1
                      • arteck
                        arteck Developer Most Active @martinschm last edited by

                        @martinschm ja es ist so..die instanzen laufen unabhängig voneinander.. stürtzt die eine ab läuft der rest weiter...

                        ich lege die Datenpunkte so wie ich die Brauche .. die Instazen könne untereinander auf diese zugreifen

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          martinschm @arteck last edited by

                          @arteck said in [Vorlage] Multi Ereignislisten Skript:

                          @martinschm ja es ist so..die instanzen laufen unabhängig voneinander.. stürtzt die eine ab läuft der rest weiter...

                          ich lege die Datenpunkte so wie ich die Brauche .. die Instazen könne untereinander auf diese zugreifen

                          Danke für dein Feedback. Aus Neugierde würde mich aber interessieren, warum die Datenpunkte unterhalb des javascript Adapters bleiben sollen. Lerne gern dazu, mir leuchtet das aber noch nicht ein.

                          arteck 1 Reply Last reply Reply Quote 1
                          • arteck
                            arteck Developer Most Active @martinschm last edited by

                            @martinschm na ja.. es kann sein (auch wen ndie warscheinlichkeit klein ist ) das jemand einen Adapter Entwickelt der genaus so heisst wie deine Hauptstruktur.. jetzt wird der Adapter installiert und dieser zerhaut dir die komplette Struktur..

                            siggi85 1 Reply Last reply Reply Quote 0
                            • siggi85
                              siggi85 @arteck last edited by

                              Ich selbst nutze eine Struktur namens "custom" und habe da alles drunter. Bis auf die Ereignislisten und den speedtest des Internetanschlusses. Das habe ich allerdings nur unter javascript, weil ich den Aufwand geschäut habe und in JS nicht ganz auf der Höhe bin. Sollte eine Version erscheinen, wo ich die Ordnerstruktur anhand von bspw. Variablen selber festlegen könnte, wäre auch ich nicht abgeneigt. 🙂

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                martinschm @siggi85 last edited by

                                @siggi85 said in [Vorlage] Multi Ereignislisten Skript:

                                Ich selbst nutze eine Struktur namens "custom" und habe da alles drunter. Bis auf die Ereignislisten und den speedtest des Internetanschlusses. Das habe ich allerdings nur unter javascript, weil ich den Aufwand geschäut habe und in JS nicht ganz auf der Höhe bin. Sollte eine Version erscheinen, wo ich die Ordnerstruktur anhand von bspw. Variablen selber festlegen könnte, wäre auch ich nicht abgeneigt. 🙂

                                Ich hab mir jetzt per Skript die Listen anlegen lassen, hab sie dann als json exportiert. Das json dann angepasst (suchen ersetzen) und wieder importiert. Der Rest läuft dann anscheinen.

                                Das Erstellen lässt sich leider nicht anpassen, da createState immer unterhalb des javascript Ordners anlegt.

                                1 Reply Last reply Reply Quote 0
                                • Nashra
                                  Nashra Most Active Forum Testing last edited by

                                  Erstmal Danke für das tolle Script 👍
                                  Jetzt zu meiner Frage wobei ich sagen muß das ich von js absolut keinen Plan habe.
                                  Wie kann ich die Ausgabe farbig machen d.h. der Text "Flurheizung ausgeschaltet" z.B. in rot
                                  und "eingeschaltet" in grün

                                  var idFlurheizung   = "shelly.0.SHSW-1#55E0BB#1.Relay0.Switch";
                                  
                                  on({id:idFlurheizung,change:'ne'}, function (obj) {
                                      if (obj.state.val) {
                                          event('**Flurheizung eingeschaltet** ');
                                      } else {
                                          event('Flurheizung ausgeschaltet ');
                                      }
                                  });
                                  
                                  a200 1 Reply Last reply Reply Quote 0
                                  • a200
                                    a200 @Nashra last edited by a200

                                    @Nashra sagte in [Vorlage] Multi Ereignislisten Skript:

                                    Erstmal Danke für das tolle Script 👍
                                    Jetzt zu meiner Frage wobei ich sagen muß das ich von js absolut keinen Plan habe.
                                    Wie kann ich die Ausgabe farbig machen d.h. der Text "Flurheizung ausgeschaltet" z.B. in rot
                                    und "eingeschaltet" in grün

                                    event("heizung aus", "default", red);
                                    oder
                                    event("heizung an", "default", "#00ff00");

                                    Nashra 1 Reply Last reply Reply Quote 1
                                    • Nashra
                                      Nashra Most Active Forum Testing @a200 last edited by

                                      @a200 sagte in [Vorlage] Multi Ereignislisten Skript:

                                      @Nashra sagte in [Vorlage] Multi Ereignislisten Skript:

                                      Erstmal Danke für das tolle Script 👍
                                      Jetzt zu meiner Frage wobei ich sagen muß das ich von js absolut keinen Plan habe.
                                      Wie kann ich die Ausgabe farbig machen d.h. der Text "Flurheizung ausgeschaltet" z.B. in rot
                                      und "eingeschaltet" in grün

                                      Klappt so leider nicht

                                      event("Flurheizung ausgeschaltet", "default", red);

                                      hier kommen Fehlermeldungen im Log das die Farbe nicht definiert ist

                                      oder
                                      event("Flurheizung ausgeschaltet", "default", "#00ff00");

                                      hier keine Fehler, aber der Text ist nicht farbig

                                      a200 1 Reply Last reply Reply Quote 0
                                      • a200
                                        a200 @Nashra last edited by a200

                                        @Nashra jetzt habe ich nachgeschaut. Aus dem original Event-Skript:

                                        // Beispiele zur Anwendung in den eigenen Skripten:
                                        //
                                        // event("Tür geöffnet");  // erstellt einen Eintrag "Tür geöffnet" in der default-Liste
                                        // event("neue externe IP-Adresse","wichtig"); // erstellt einen Eintrag "neue externe IP-Adresse" in der Liste "wichtig"
                                        // event("Alarm ausgelöst"),["wichtig","default"],"rot"); // erstellt einen Eintrag "Alarm ausgelöst" in den Listen wichtig und default in der html-Farbe rot.
                                        

                                        wobei aus meiner Sicht hier ein Fehler vorliegt und es sollte heißen:

                                        event("Alarm ausgelöst",["wichtig","default"],"rot");
                                        

                                        oder

                                        event("Alarm ausgelöst", "default", "#ff00ff");
                                        

                                        wo die Farbe als RGB in hex angegeben wird funktioniert auch.

                                        1 Reply Last reply Reply Quote 1
                                        • Nashra
                                          Nashra Most Active Forum Testing last edited by

                                          Hm erstmal Danke für deine Hilfe aber irgendwie will das bei mir nicht.
                                          Welches Widget nutzt Du für die html Ausgabe?
                                          Habe basic-html und dort {javascript.0.Ereignisliste.default.eventlistHTML} eingetragen.
                                          Es wird zwar alles angezeigt aber eben nur in weißer Schrift.

                                          a200 1 Reply Last reply Reply Quote 0
                                          • a200
                                            a200 @Nashra last edited by

                                            @Nashra sagte in [Vorlage] Multi Ereignislisten Skript:

                                            Hm erstmal Danke für deine Hilfe aber irgendwie will das bei mir nicht.
                                            Welches Widget nutzt Du für die html Ausgabe?
                                            Habe basic-html und dort {javascript.0.Ereignisliste.default.eventlistHTML} eingetragen.
                                            Es wird zwar alles angezeigt aber eben nur in weißer Schrift.

                                            Schick mal bitte den Inhalt des DP.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            514
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            28
                                            112
                                            16966
                                            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