Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. State Ordner von zwei Lampen syncen

    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

    State Ordner von zwei Lampen syncen

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

      Wie soll das gehen ?

      Naja das weiß ich auch nicht 😄 Dachte vllt. an: zwei Datenpunkte zeigen auf eine Referenz und man ändert immer die Referenz.

      Weshalb geht es nicht ?

      ioBroker bzw. meine Lampen spinnen dann. Vmtl. checkt der Yeelight Adapter es nicht, wenn acht Datenpunkte gleichzeitig geändert werden.

      Verwende besser 8 einzelne Subscriptions, damit nicht bei jedem Trigger-Ereignis 8 Datenpunkte gesetzt werden müssen.

      Das hatte ich übersichtlichkeitshalber extra nicht gemacht. Denn wenn ichs in beide Richtungen will brauch ich 16 subscriptions.
      Aber ich versteh auch nicht ganz die Struktur von ioBroker. Wollte eig. ein foreach auf control oder so machen. Intuitiv hätte ich gedacht, control ist ein object, welches wiederum ein Array mit den Datenpunkten enthält. Leider ist dem nicht so, sondern es sind alles einzelne Objects...

      PS: einzeln geht alles. Aber ich find das schon sehr unschön mit 16 subscriptions pro Zimmer.

      paul53 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @jlssmt last edited by

        @jlssmt sagte in State Ordner von zwei Lampen syncen:

        einzeln geht alles. Aber ich find das schon sehr unschön mit 16 subscriptions pro Zimmer.

        Hast du den alternativen Vorschlag mit dem $Selector gesehen ? (habe ich nachträglich hinzu gefügt)

        J 1 Reply Last reply Reply Quote 1
        • J
          jlssmt @paul53 last edited by jlssmt

          @paul53

          Hab ich natürlich nicht gesehen 😄
          Den kannte ich nicht. Find ich geil. Genau für so ne Info hab ich die Frage gestellt. Danke 🙂

          Edith: Werden ja trotzdem 8 Subscriptions erstellt. Weißt du zufällig auch ob viele Subscriptions Auswirkungen auf Performanz bzw. RAM hat? Gurk hier noch mit nem rpi3 rum und da läuft nicht nur ioBroker drauf 😄

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @jlssmt last edited by paul53

            @jlssmt sagte:

            Werden ja trotzdem 8 Subscriptions erstellt. Weißt du zufällig auch ob viele Subscriptions Auswirkungen auf Performanz bzw. RAM hat?

            Ja, natürlich werden im Hintergrund 8 Subscriptions erstellt, die alle RAM verbrauchen. Die CPU-Last wird durch die Häufigkeit der Trigger-Ereignisse bestimmt und sollte kein Problem sein.

            1 Reply Last reply Reply Quote 1
            • paul53
              paul53 @jlssmt last edited by

              @jlssmt sagte:

              mit 16 subscriptions pro Zimmer.

              Wenn die Synchronisation in beide Richtungen erfolgen soll, sollte man als Quelle des Triggers die Javascript-Instanz ausschließen, damit nicht unnötig gesendet wird.

              const jsi = 'system.adapter.javascript.' + instance;
              
              $('yeelight-2.0.bslamp2.control.*').on(function(dp) {
                 if(dp.state.from != jsi) {
                    let id = dp.id.replace('bslamp2', 'color');
                    setState(id, dp.state.val);
                 }
              });
              
              $('yeelight-2.0.color.control.*').on(function(dp) {
                 if(dp.state.from != jsi) {
                    let id = dp.id.replace('color', 'bslamp2');
                    setState(id, dp.state.val);
                 }
              });
              
              J 1 Reply Last reply Reply Quote 1
              • J
                Jan1 @jlssmt last edited by

                @jlssmt
                Da müsste doch ein DP zum synchron laufen genügen und am allereinfachsten geht das mit Blockly und dem Block:
                2f968002-b4f5-4d91-905e-dfcfd1ea3d8e-grafik.png
                Soll das ganze in beide Richtungen laufen,, einfach den Block doppelt und die DP tauschen.

                T 1 Reply Last reply Reply Quote 0
                • T
                  ticaki Developer @Jan1 last edited by ticaki

                  @Jan1

                  on(id1, id2);
                  

                  Und mit Änderungen ist es der selbe Code der schon oben gepostet wurde.

                  on({id: 'Object ID 1', change: "ne"}, function (obj) {
                    setState('Object ID 2', obj.state.val);
                  });
                  
                  J 1 Reply Last reply Reply Quote 1
                  • J
                    Jan1 @ticaki last edited by

                    @ticaki
                    Nur dass ich mit Blockly nicht mal tippen muss 😉

                    1 Reply Last reply Reply Quote 0
                    • J
                      jlssmt @paul53 last edited by

                      @paul53 said in State Ordner von zwei Lampen syncen:

                      Wenn die Synchronisation in beide Richtungen erfolgen soll, sollte man als Quelle des Triggers die Javascript-Instanz ausschließen, damit nicht unnötig gesendet wird.

                      Habe ich verstanden und ergänzt, danke. Werd es testen und melde mich, wenns Probleme gibt, die ich selbst nicht lösen kann. Bisher siehts aber gut aus.

                      //

                      @Jan1 said in State Ordner von zwei Lampen syncen:

                      Nur dass ich mit Blockly nicht mal tippen muss 😉

                      Ich denke wir müssen jetzt keine Grundsatzdiskussion "Blockly vs. Plain JS" lostreten 😉

                      J 1 Reply Last reply Reply Quote 0
                      • J
                        Jan1 @jlssmt last edited by

                        @jlssmt
                        Nö, weil ich von Java Script kein Plan habe und das mit Blockly, wie Du schon erkannt hast es der selbe Code ist und ich eben schneller klicke als tippe 🙂

                        1 Reply Last reply Reply Quote 0
                        • J
                          jlssmt last edited by jlssmt

                          @Jan1 said in State Ordner von zwei Lampen syncen:

                          Nö, weil ich von Java Script kein Plan habe und das mit Blockly, wie Du schon erkannt hast es der selbe Code ist und ich eben schneller klicke als tippe 🙂

                          Ich habs ja nicht umsonst in das JavaScript Forum und nicht ins Blockly Forum gepostet 😉

                          @paul53
                          Zu früh gefreut 😄 Meine Bedside Lamp 2 oder der Yeelight Adapter hat einen Bug, den ich vorher nicht gesehen hatte.
                          bslamp2 schaltet (warum auch immer) ab und an den value power auf false, geht aber nicht aus. Die zweite Lampe dann natürlich schon... Paar sec später geht der value dann wieder auf true und die zweite Lampe wieder an.
                          Sehr weird das ganze und so für mich keine Lösung.
                          Rot rechts ist die "from" Spalte. Kommt also nicht von JS sondern vom Adapter/ der Lampe...
                          1268e427-91c1-45d4-b5cb-95dc283240bc-image.png

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          836
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          4
                          13
                          879
                          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