Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. "Gesunde" Anzahl von registrierten Triggern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    "Gesunde" Anzahl von registrierten Triggern

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @haus-automatisierung last edited by

      @haus-automatisierung sagte: Dachte Du übergibst die Datenpunkte als Array (so wie das Blockly macht).

      Mit Array passiert das gleiche. Lediglich RegExp erzeugt nur einen Trigger.

      haus-automatisierung 1 Reply Last reply Reply Quote 1
      • haus-automatisierung
        haus-automatisierung Developer Most Active @paul53 last edited by

        @paul53 Danke fürs testen! Muss mir die interne Logik mal genauer anschauen. Aber wenn man einen Trigger auf 500+ Datenpunkte registriert hat man eventuell auch etwas ungewolltes getan.

        Aber 100 ist dann eventuell wirklich zu früh für manche Anwensungsfälle mit Selektor

        1 Reply Last reply Reply Quote 0
        • I
          ignis-draco last edited by

          Sorry für das Entern des Thread. Aber es passt thematisch.

          So weit ich es entdeckt habe gibt es 2 Arten eine Trigger zu setzten.

          Einmal mit on direkt (id / array / Regex) oder per Selector und dann on

          • on('maxcul.0.KEQ0465505.isOpen', function(obj){
          • on(['maxcul.0.KEQ0465505.isOpen', 'maxcul.0.OEQ0914535.isOpen'], function(obj){
          • on({ id: /^0_userdata\.0\..*\.person$/}, function (obj) {
          • $('state[id=0_userdata.0.*.light_on]').on(function (obj) {

          Ich habe bis jetzt immer gedacht, dass dieses Varianten alle gleich sind. Heute ist mir aufgefallen das
          es bei der Version mit dem "$(" keine Möglichkeit gibt z.b. "change": "any" zu setzen.
          Jetzt lese ich hier das die Regex Version weniger Ressourcen (da nur ein Trigger angelegt wird) verwendet.

          Persönlich finde ich die Selektor Varianten am einfachsten zu lesen und zu erstellen aber mit diesen Infos macht es wohl Sinn alles auf Regex umzustellen oder ?

          haus-automatisierung 1 Reply Last reply Reply Quote 0
          • haus-automatisierung
            haus-automatisierung Developer Most Active @ignis-draco last edited by

            @ignis-draco sagte in "Gesunde" Anzahl von registrierten Triggern:

            Jetzt lese ich hier das die Regex Version weniger Ressourcen (da nur ein Trigger angelegt wird) verwendet.

            Gerne mal in Zahlen ausdrücken, was Du da so an Einsparungen beobachtest 🙂
            Spoiler: Nicht relevant.

            1 Reply Last reply Reply Quote 0
            • I
              ignis-draco last edited by

              bei mir wären es statt 91 Triggers nur noch 5. Aber ich glaube das es nicht das ist was du meinst. Ja im CPU /Ram Verbrauch wird das wohl untergehen.
              Was ich aber gerade noch entdeckt habe, ist das, wenn man einen neuen Datenpunkt angelegt dieser vom
              Regex sofort mit erkennt wird. Bei den anderen Varianten muss man erst das skript neu starten.
              Das ist auf jeden Fall ein Vorteil.

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @ignis-draco last edited by

                @ignis-draco sagte in "Gesunde" Anzahl von registrierten Triggern:

                Bei den anderen Varianten muss man erst das skript neu starten.

                Logisch, der Selektor wird ja nur einmalig ausgeführt. Man müsste also im Script regelmäßig den Trigger "deabonnieren" (siehe unsubscribe) und neu erstellen, um wirklich alle Datenpunkte abzudecken. Hab ich ja schon rauf und runter erklärt 🙂

                1 Reply Last reply Reply Quote 0
                • I
                  ignis-draco last edited by

                  @haus-automatisierung sagte in "Gesunde" Anzahl von registrierten Triggern:

                  Hab ich ja schon rauf und runter erklärt

                  Da habe ich mich wohl etwas missverständlich ausgedrückt. Das man es bei der anderen Version machen muss war mir sehr bewusst, aber nicht das beim Regex es nicht nötig ist.
                  Tja dann werde ich mich wohl die die Regex Version gewöhnen müssen.

                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @ignis-draco last edited by haus-automatisierung

                    @ignis-draco sagte in "Gesunde" Anzahl von registrierten Triggern:

                    aber nicht das beim Regex es nicht nötig ist.

                    Der Regex kann ja auch weniger. Mit dem $-Selektor kannst Du ja weitere Attribute filtern und nicht nur die ID filtern. Das macht es etwas komplexer.

                    Aber wenn es Dir um Ressourcen geht, wäre das schon ein spannender Vergleich. Immerhin wird dann jede State-Aktualisierung durch jeden Regex-Trigger geprüft.

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @haus-automatisierung last edited by paul53

                      @haus-automatisierung sagte: Der Regex kann ja auch weniger. Mit dem $-Selektor kannst Du ja weitere Attribute filtern

                      Auch mit RegExp bietet der Trigger weitere Filteroptionen:

                      on({id: /^0_userdata\.0\..+/, enumName: 'Fenster'}, function(dp) {
                          log(dp.id);
                      });
                      
                      haus-automatisierung 1 Reply Last reply Reply Quote 0
                      • haus-automatisierung
                        haus-automatisierung Developer Most Active @paul53 last edited by

                        @paul53 Ja, aber nicht alle. Rolle geht z.B. nicht.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        742
                        Online

                        31.9k
                        Users

                        80.2k
                        Topics

                        1.3m
                        Posts

                        6
                        20
                        540
                        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