Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Datenpunkte zusammenfassen - Jalousiesteuerung über VIS

    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

    Datenpunkte zusammenfassen - Jalousiesteuerung über VIS

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kfL @Codierknecht last edited by

      @codierknecht dann bleib ich wohl lieber erst mal bei meinem praktmatischen Beispiel 🙂
      Muss erst einmal reinkommen, bevor ich mich mit komplexeren Themen u.a. Selektoren beschäftige.

      Danke für den Tipp mit dem Objekt lesen und für das Topic!

      Codierknecht 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @kfL last edited by

        @kfl
        Statt mit Selektoren könnte man auch mit einer Liste arbeiten. Also ein DP, der ein Array enthält.
        Mir fällt aber jetzt aus dem Stegreif kein Widget ein, mit dem man sowas in der gewünschten Art realisieren könnte.

        61587a1f-43f5-408d-980b-d9d794c2a198-image.png

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @kfL last edited by

          @kfl
          Oder so:
          Man erstellt eine eigene Struktur unterhalb von 0_userdata.0 mit DP vom Typ "Logikwert".
          Die kann man in der Vis an- und abwählen.
          f13afa54-f4d7-48ad-97d0-783dd907d2ea-image.png
          In "name" (oder "desc") steckt man bei den eigenen DP die ID des zugeordneten Rollo.

          Im Script reagiert man auf einen weiteren DP, der "auf" oder "ab" bzw. den Ziel-Level liefert.
          cfcad9fd-5388-4186-8ae9-e062aaf0925a-image.png

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

            @kfl sagte: Auswahl zusammen hoch oder runter fahren soll bei der Ansteuerung.

            Links ist die Auswahl und rechts oben sind zwei Button zur Ansteuerung "hoch" oder "runter"?
            Dann kann man zu den Jalousien Alias DP erstellen mit der ID-Struktur von z.B. "alias.0.Jalousien.Wohnzimmer_Links". Eine identische Struktur kann man für die Auswahl unter "0_userdata.0.Jalousien" erstellen.
            Das Blockly könnte dann so aussehen:

            Blockly_temp.JPG

            1 Reply Last reply Reply Quote 2
            • Codierknecht
              Codierknecht Developer Most Active last edited by

              @paul53
              Nimm mal @paul53's Vorschlag.
              Was er zeigt, funktioniert eigentlich immer einwandfrei 😁

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

                @codierknecht sagte: funktioniert eigentlich immer

                In dem Fall aber nur mit den passenden ID-Strukturen unter "alias.0" und "0_userdata.0", die erst erstellt werden müssen.

                Codierknecht 1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @paul53 last edited by

                  @paul53
                  Naja - ein bisschen Arbeit muss ja für den TE auch noch übrig bleiben 😉

                  1 Reply Last reply Reply Quote 0
                  • K
                    kfL @Codierknecht last edited by kfL

                    @codierknecht said in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                    @paul53
                    Nimm mal @paul53's Vorschlag.
                    Was er zeigt, funktioniert eigentlich immer einwandfrei 😁

                    Dann beschäftige ich mich mit @paul53 's Vorschlag, Danke für deine Bemühungen 🙂

                    @paul53 said in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                    @kfl sagte: Auswahl zusammen hoch oder runter fahren soll bei der Ansteuerung.

                    Links ist die Auswahl und rechts oben sind zwei Button zur Ansteuerung "hoch" oder "runter"?
                    Dann kann man zu den Jalousien Alias DP erstellen mit der ID-Struktur von z.B. "alias.0.Jalousien.Wohnzimmer_Links". Eine identische Struktur kann man für die Auswahl unter "0_userdata.0.Jalousien" erstellen.
                    Das Blockly könnte dann so aussehen:

                    Blockly_temp.JPG

                    Da hätte ich ja direkt drauf kommen können 😁
                    Wie bekommt man denn eine Funktion "Um"? Bzw was ist der Unterschied zwischen "Um" und "Nach"?
                    3517fe8b-c040-40e3-bce0-b55db9371747-image.png
                    Bei der Bedienung "Wert von Objekt ID", muss hier nicht noch ein Operator hin, der schaut ob die ID's von den Fenster auch mit gefahren werden sollen oder nicht?
                    Was macht denn die Zeile setze fenster inder Liste (...)?

                    Sorry wegen den ganzen Fragen, aber ich möchte das auch gerne verstehen, dann ist es einfach umzusetzen 🙂

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

                      @kfl sagte: was ist der Unterschied zwischen "Um" und "Nach"?

                      Die Version des JS-Adapters.

                      @kfl sagte in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                      "Wert von Objekt ID", muss hier nicht noch ein Operator hin, der schaut ob die ID's von den Fenster auch mit gefahren werden sollen oder nicht?

                      Nein, das ist bei booleschen Werten nicht erforderlich, denn "falls" prüft auf true für "mache".

                      @kfl sagte in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                      Was macht denn die Zeile setze fenster inder Liste (...)?

                      Vorher wird die ID in eine Liste aufgespalten, wobei der Punkt das trennende Element im Text ist. Aus dieser Liste wird nur das letzte Element (z.B. "Wohnzimmer_Links") genommen, um damit die Datenpunkt-ID der Jalousie zu bilden.

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

                        @paul53

                        @paul53 said in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                        @kfl sagte: was ist der Unterschied zwischen "Um" und "Nach"?

                        Die Version des JS-Adapters.

                        @kfl sagte in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                        "Wert von Objekt ID", muss hier nicht noch ein Operator hin, der schaut ob die ID's von den Fenster auch mit gefahren werden sollen oder nicht?

                        Nein, das ist bei booleschen Werten nicht erforderlich, denn "falls" prüft auf true für "mache".

                        @kfl sagte in Datenpunkte zusammenfassen - Jalousiesteuerung über VIS:

                        Was macht denn die Zeile setze fenster inder Liste (...)?

                        Vorher wird die ID in eine Liste aufgespalten, wobei der Punkt das trennende Element im Text ist. Aus dieser Liste wird nur das letzte Element (z.B. "Wohnzimmer_Links") genommen, um damit die Datenpunkt-ID der Jalousie zu bilden.

                        Super, vielen vielen Dank für die nützlichen Infos 🙂

                        Das Ganze funktioniert auch soweit, allerdings habe ich noch 2 Warnungen im Log, wie eine Frage, wieso zwischen drin immer noch die Meldung kommt:
                        "14:42:49.841 info javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Hoch"

                        14:42:49.840	info	javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Esszimmer
                        14:42:49.840	warn	javascript.0 (148075) at Jalousien (script.js.common.Jalousie_Steuerung:11:7)
                        14:42:49.840	warn	javascript.0 (148075) at Object.<anonymous> (script.js.common.Jalousie_Steuerung:21:9)
                        14:42:49.841	info	javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Hoch
                        14:42:49.841	warn	javascript.0 (148075) at Jalousien (script.js.common.Jalousie_Steuerung:11:7)
                        14:42:49.841	warn	javascript.0 (148075) at Object.<anonymous> (script.js.common.Jalousie_Steuerung:21:9)
                        14:42:49.841	info	javascript.0 (148075) script.js.common.Jalousie_Steuerung: alias.0.Jalousie_EG.Küche
                        
                        var pos, id, fenster;
                        
                        // Beschreibe diese Funktion …
                        async function Jalousien(pos) {
                          var id_list = Array.prototype.slice.apply($("0_userdata.0.Jalousie_EG.*"));
                          for (var id_index in id_list) {
                            id = id_list[id_index];
                            if (getState(id).val) {
                              id = id.split('.');
                              fenster = id.slice(-1)[0];
                              setStateDelayed(('alias.0.Jalousie_EG.' + String(fenster)), pos, false, parseInt(((0) || "").toString(), 10), false);
                              console.log(('alias.0.Jalousie_EG.' + String(fenster)));
                            }
                          }
                        }
                        
                        
                        on({id: "0_userdata.0.Jalousie_EG.Hoch"/*Hoch*/, val: true}, async function (obj) {
                          let value = obj.state.val;
                          let oldValue = obj.oldState.val;
                          await Jalousien(0);
                        });
                        on({id: "0_userdata.0.Jalousie_EG.Runter"/*Runter*/, val: true}, async function (obj) {
                          let value = obj.state.val;
                          let oldValue = obj.oldState.val;
                          await Jalousien(100);
                        });
                        
                        
                        Codierknecht paul53 2 Replies Last reply Reply Quote 0
                        • Codierknecht
                          Codierknecht Developer Most Active @kfL last edited by

                          @kfl
                          Die Namen von Datenpunkten dürfen keine Sonderzeichen enthalten. Insbesondere keine Umlaute!

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

                            @kfl sagte: immer noch die Meldung kommt:

                            Der Selektor findet auch den Datenpunkt "0_userdata.0.Jalousie_EG.Hoch" zu dem es natürlich keinen Alias gibt.

                            EDIT: Man kann sie ausblenden:

                            Blockly_temp.JPG

                            K 1 Reply Last reply Reply Quote 1
                            • K
                              kfL @paul53 last edited by

                              @Codierknecht @paul53 Elegante Lösungen, vielen Dank für eure Unterstützung!!

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              451
                              Online

                              31.9k
                              Users

                              80.2k
                              Topics

                              1.3m
                              Posts

                              datenpunkt zusammenfassen
                              3
                              17
                              494
                              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