Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Auswertung vieler "States" auf einmal.

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    820

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    616

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.1k

Auswertung vieler "States" auf einmal.

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
21 Beiträge 5 Kommentatoren 531 Aufrufe 3 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Beowolf

    Hallo zusammen,

    ich möchte gerne folgendes.

    Wenn alle Heizungen aus sind mache etwas. Oder wenn alle Fenster zu sind mache etwas.

    Wie stelle ich das an? Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

    Grüße
    Manfred

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #2

    @beowolf Du kannst wenn Du eine eingermassen einheitliche Struktur hast mit Wildcards arbeiten.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    1 Antwort Letzte Antwort
    0
    • B Beowolf

      Hallo zusammen,

      ich möchte gerne folgendes.

      Wenn alle Heizungen aus sind mache etwas. Oder wenn alle Fenster zu sind mache etwas.

      Wie stelle ich das an? Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

      Grüße
      Manfred

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #3

      @beowolf sagte: Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

      Man kann eine Liste mit allen betreffenden Datenpunkt-IDs erstellen und alle Werte in einer Schleife prüfen. Beispiele gibt es reichlich hier im Forum.
      Bei einheitlicher ID-Struktur oder mit Hilfe von Aufzählungen kann man die Liste auch per Selektor erstellen.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      B 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @beowolf sagte: Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

        Man kann eine Liste mit allen betreffenden Datenpunkt-IDs erstellen und alle Werte in einer Schleife prüfen. Beispiele gibt es reichlich hier im Forum.
        Bei einheitlicher ID-Struktur oder mit Hilfe von Aufzählungen kann man die Liste auch per Selektor erstellen.

        B Offline
        B Offline
        Beowolf
        schrieb am zuletzt editiert von
        #4

        @paul53 sagte in Auswertung vieler "States" auf einmal.:

        Beispiele gibt es reichlich hier im Forum.

        Ein Tipp? Ich habe keine Ahnung nach was ich suchen soll. Wie nennt man so etwas?

        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

        paul53P 1 Antwort Letzte Antwort
        0
        • B Beowolf

          Hallo zusammen,

          ich möchte gerne folgendes.

          Wenn alle Heizungen aus sind mache etwas. Oder wenn alle Fenster zu sind mache etwas.

          Wie stelle ich das an? Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

          Grüße
          Manfred

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #5

          @beowolf sagte in Auswertung vieler "States" auf einmal.:

          Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

          das geht auch mit dem Szenen Adapter.
          Da könnte man sogar für einzelne Geräte einen anderen Status bei true definieren.
          z.B. bei Szene alle Lichter aus: alle Lichter aus, aber zwei Nachtlichter an

          kein Support per PN! - Fragen im Forum stellen -
          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          B 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @beowolf sagte in Auswertung vieler "States" auf einmal.:

            Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

            das geht auch mit dem Szenen Adapter.
            Da könnte man sogar für einzelne Geräte einen anderen Status bei true definieren.
            z.B. bei Szene alle Lichter aus: alle Lichter aus, aber zwei Nachtlichter an

            B Offline
            B Offline
            Beowolf
            schrieb am zuletzt editiert von Beowolf
            #6

            @homoran
            Eine Szene ist doch genau anders herum als das was ich suche, oder? Bei einer Szene habe ich einen Datenpunkt um t.B. zwanzig Lichter einzuschalten.

            Ich suche es aber so, das ich einen Datenpunkt habe, der mir sagt ob alle zwanzig Lichter aus sind.

            Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

            HomoranH 1 Antwort Letzte Antwort
            0
            • B Beowolf

              @homoran
              Eine Szene ist doch genau anders herum als das was ich suche, oder? Bei einer Szene habe ich einen Datenpunkt um t.B. zwanzig Lichter einzuschalten.

              Ich suche es aber so, das ich einen Datenpunkt habe, der mir sagt ob alle zwanzig Lichter aus sind.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #7

              @beowolf sagte in Auswertung vieler "States" auf einmal.:

              , das ich einen Datenpunkt habe, der mir sagt ob alle zwanzig Lichter aus sind.

              macht die Szene doch auch.
              in dem Moment wo alle States der Szene den vorgegebenen Wert haben, schaltet die Szene auf true.

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              B 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @beowolf sagte in Auswertung vieler "States" auf einmal.:

                , das ich einen Datenpunkt habe, der mir sagt ob alle zwanzig Lichter aus sind.

                macht die Szene doch auch.
                in dem Moment wo alle States der Szene den vorgegebenen Wert haben, schaltet die Szene auf true.

                B Offline
                B Offline
                Beowolf
                schrieb am zuletzt editiert von
                #8

                @homoran
                Up´s, das wusste ich nicht. Das ist doch schon mal was.

                Danke für die Hilfe.

                Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                1 Antwort Letzte Antwort
                0
                • B Beowolf

                  @paul53 sagte in Auswertung vieler "States" auf einmal.:

                  Beispiele gibt es reichlich hier im Forum.

                  Ein Tipp? Ich habe keine Ahnung nach was ich suchen soll. Wie nennt man so etwas?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #9

                  @beowolf sagte: Ein Tipp?

                  Beispiel in Blockly mit Selektor.

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                  B 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @beowolf sagte: Ein Tipp?

                    Beispiel in Blockly mit Selektor.

                    B Offline
                    B Offline
                    Beowolf
                    schrieb am zuletzt editiert von
                    #10

                    @paul53
                    Danke

                    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                    1 Antwort Letzte Antwort
                    0
                    • mickymM Offline
                      mickymM Offline
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #11

                      Ich speichere einfach alle Zustände eines Typs oder was auch immer in einem topic oder DP in einen JSON bzw. einem Objekt. Alle Trigger laufen über Wildcards oder direkt in das Objekt, dass dann in Summe ausgewertet wird.

                      Mach das aber nicht mit Blockly.

                      c88ea9c9-3735-4194-867c-13949ac954cb-image.png

                      Der Vorteil alles in einem Objekt zu speichern ist, dass Du den Zustand bei jedem Zustand sofort verfügbar hast und bei jedem Trigger - der Gesamtzustand sofort aktualisiert wird.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      B 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        Ich speichere einfach alle Zustände eines Typs oder was auch immer in einem topic oder DP in einen JSON bzw. einem Objekt. Alle Trigger laufen über Wildcards oder direkt in das Objekt, dass dann in Summe ausgewertet wird.

                        Mach das aber nicht mit Blockly.

                        c88ea9c9-3735-4194-867c-13949ac954cb-image.png

                        Der Vorteil alles in einem Objekt zu speichern ist, dass Du den Zustand bei jedem Zustand sofort verfügbar hast und bei jedem Trigger - der Gesamtzustand sofort aktualisiert wird.

                        B Offline
                        B Offline
                        Beowolf
                        schrieb am zuletzt editiert von Beowolf
                        #12

                        @mickym sagte in Auswertung vieler "States" auf einmal.:

                        Mach das aber nicht mit Blockly.

                        Was meinst Du damit?

                        Ich habe jetzt folgendes versucht.

                        json1.jpg

                        Wenn ich die Leuchte schalte, passiert aber mit dem Datenpunkt nichts. Was mache ich falsch?
                        (Ich habe eine Lampe genommen, weil es schneller geht als mit einem Ventil)

                        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                        HomoranH mickymM 2 Antworten Letzte Antwort
                        0
                        • B Beowolf

                          @mickym sagte in Auswertung vieler "States" auf einmal.:

                          Mach das aber nicht mit Blockly.

                          Was meinst Du damit?

                          Ich habe jetzt folgendes versucht.

                          json1.jpg

                          Wenn ich die Leuchte schalte, passiert aber mit dem Datenpunkt nichts. Was mache ich falsch?
                          (Ich habe eine Lampe genommen, weil es schneller geht als mit einem Ventil)

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #13

                          @beowolf sagte in Auswertung vieler "States" auf einmal.:

                          Ich habe jetzt folgendes versucht.

                          was ist das?

                          kein Support per PN! - Fragen im Forum stellen -
                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          B 1 Antwort Letzte Antwort
                          0
                          • HomoranH Homoran

                            @beowolf sagte in Auswertung vieler "States" auf einmal.:

                            Ich habe jetzt folgendes versucht.

                            was ist das?

                            B Offline
                            B Offline
                            Beowolf
                            schrieb am zuletzt editiert von
                            #14

                            @homoran

                            Ich habe unter 0_userdata.0 einen Ordner "devicesOnline Heizkörper" angelegt.

                            (0_userdata.0.devicesOnline.Heizkörper)

                            Dort habe ich einen Datenpunkt mit Zustandstyp json angelegt. "Ventilstellung"

                            In diesen Datenpunkt habe ich dann das eingefügt:

                            {
                              "Schreibtischleuchte POWER": true
                            }
                            

                            War nicht richtig?

                            Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • B Beowolf

                              Hallo zusammen,

                              ich möchte gerne folgendes.

                              Wenn alle Heizungen aus sind mache etwas. Oder wenn alle Fenster zu sind mache etwas.

                              Wie stelle ich das an? Kann man eine "Liste" erstellen die dann als "eine" Einheit betrachtet wird die dann "einen" Zustand einnimmt?

                              Grüße
                              Manfred

                              B Online
                              B Online
                              badsnoopy667
                              schrieb am zuletzt editiert von
                              #15

                              @beowolf
                              Wenn das nicht unendlich lange Listen sind die da zusammengefasst werden sollen, kann man das mit Blockly mMn so lösen:

                              mache etwas.png

                              Alternativ kann man auch mit dem Szenen-Adapter arbeiten und Szenen anlegen und dann auf den Status einer Szene triggern.

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • B Beowolf

                                @mickym sagte in Auswertung vieler "States" auf einmal.:

                                Mach das aber nicht mit Blockly.

                                Was meinst Du damit?

                                Ich habe jetzt folgendes versucht.

                                json1.jpg

                                Wenn ich die Leuchte schalte, passiert aber mit dem Datenpunkt nichts. Was mache ich falsch?
                                (Ich habe eine Lampe genommen, weil es schneller geht als mit einem Ventil)

                                mickymM Offline
                                mickymM Offline
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von mickym
                                #16

                                @beowolf Na wie gesagt ich mache es mit NodeRed - da ist es einfach solche Objekte dynamisch zu erstellen und auszuwerten. Mit dem Blockly ist mir das fast zu mühselig, aber ich habs mal versucht. Sprich, dass was Du manuell gemacht hast, musst Du halt mit Deinem Blockly bauen.

                                Ich habe mal zur Veranschaulichung 2 meiner Küchengeräte genommen:

                                42842aed-85ee-408e-9b0e-824ca25356eb-image.png

                                Den Status erhälst Du auch in einem Blockly über einen Trigger oder den Namen der ID.
                                Ich machs bei mir mal mit einem Wasserkocher und meiner Kaffeemaschine. ;)

                                {
                                  object-ID: true,
                                  object-ID: false
                                }
                                

                                das Blockly erstellt aus Deinen Trigger (wie beispielsweise @beowolf) gezeigt hat so ein Objekt:

                                fa5665f3-07f9-4664-b5d4-5f7bf6a9567e-image.png

                                In dem Fall muss man wohl immer wieder auf Javascript zurückgreifen. Mit den Puzzleteilchen alleine schaffe ich es nicht. ;)

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <variables>
                                   <variable id="bq5jga7TC-f@LCDhpZh.">object</variable>
                                   <variable id="Mmdyn9mwz@F]Y4#{h/%a">topic</variable>
                                   <variable id="a/crk2UE78?HjQxVhqZb">payload</variable>
                                   <variable id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</variable>
                                 </variables>
                                 <block type="procedures_defcustomreturn" id="s-Qa*`D#SWcHOzxzKfAp" x="63" y="13">
                                   <mutation statements="false">
                                     <arg name="object" varid="bq5jga7TC-f@LCDhpZh."></arg>
                                     <arg name="topic" varid="Mmdyn9mwz@F]Y4#{h/%a"></arg>
                                     <arg name="payload" varid="a/crk2UE78?HjQxVhqZb"></arg>
                                   </mutation>
                                   <field name="NAME">aktualisiere Objekt</field>
                                   <field name="SCRIPT">bGV0IG9iaiA9IG9iamVjdCA/IEpTT04ucGFyc2Uob2JqZWN0KSA6IHt9Ow0Kb2JqW3RvcGljXSA9IHBheWxvYWQ7DQpyZXR1cm4gb2JqOw==</field>
                                   <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                 </block>
                                 <block type="on_ext" id="*r2uUmu-uT%[lG+dMGwP" x="38" y="63">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                   <field name="CONDITION">ne</field>
                                   <field name="ACK_CONDITION"></field>
                                   <value name="OID0">
                                     <shadow type="field_oid" id="sJEm/XPcq~3aM/c(B1cR">
                                       <field name="oid">alias.0.schalter.ku_kaffeemaschine.on</field>
                                     </shadow>
                                   </value>
                                   <value name="OID1">
                                     <shadow type="field_oid" id="VQ]-v7IIs(::8gnGroyE">
                                       <field name="oid">alias.0.schalter.ku_wasserkocher.on</field>
                                     </shadow>
                                   </value>
                                   <statement name="STATEMENT">
                                     <block type="variables_set" id="K9+[YE#FjWxl!^)fd0H6">
                                       <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                       <value name="VALUE">
                                         <block type="get_value" id="B81FcYeMf|T:{BqC/6X7">
                                           <field name="ATTR">val</field>
                                           <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id="YXhrzgFZ0vm.$YkE5+#r">
                                           <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                           <value name="VALUE">
                                             <block type="procedures_callcustomreturn" id="vGKX!G~0V3p//hlLtV+M">
                                               <mutation name="aktualisiere Objekt">
                                                 <arg name="object"></arg>
                                                 <arg name="topic"></arg>
                                                 <arg name="payload"></arg>
                                               </mutation>
                                               <value name="ARG0">
                                                 <block type="variables_get" id="u@t=)X:fPF$TV$yG-eNl">
                                                   <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                 </block>
                                               </value>
                                               <value name="ARG1">
                                                 <block type="on_source" id="(_MJ2|KJIYlQWGM,^F|J">
                                                   <field name="ATTR">id</field>
                                                 </block>
                                               </value>
                                               <value name="ARG2">
                                                 <block type="on_source" id="kTLM3oN:sOZ/lvm3kI@^">
                                                   <field name="ATTR">state.val</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="update" id="]xf!.rB%fic?+#o,hrgh">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                               <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                               <field name="WITH_DELAY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="convert_object2json" id="nv:e+@SGgQa^gI9Dv]%=">
                                                   <field name="PRETTIFY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="variables_get" id="^@o79UI:+,uho]G5OaR;">
                                                       <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                                </xml>
                                

                                Man könnte nun die Objekt-ID in dem Blockly noch verschönern, aber lassen wir das mal. Aus dem oberen Blockly mit diesen beiden Beispielen wird also so ein Objekt erzeugt:

                                d24574ea-8d63-4c18-b60b-85f7b6a05d16-image.png

                                und durch die trigger automatisch aktualisiert.

                                Mit einem 2. Blockly - kann man glaub auch in das selbe machen ermittelst Du nun den Gesamtstatus und kannst dann darauf reagieren.

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                B 1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

                                  @beowolf Na wie gesagt ich mache es mit NodeRed - da ist es einfach solche Objekte dynamisch zu erstellen und auszuwerten. Mit dem Blockly ist mir das fast zu mühselig, aber ich habs mal versucht. Sprich, dass was Du manuell gemacht hast, musst Du halt mit Deinem Blockly bauen.

                                  Ich habe mal zur Veranschaulichung 2 meiner Küchengeräte genommen:

                                  42842aed-85ee-408e-9b0e-824ca25356eb-image.png

                                  Den Status erhälst Du auch in einem Blockly über einen Trigger oder den Namen der ID.
                                  Ich machs bei mir mal mit einem Wasserkocher und meiner Kaffeemaschine. ;)

                                  {
                                    object-ID: true,
                                    object-ID: false
                                  }
                                  

                                  das Blockly erstellt aus Deinen Trigger (wie beispielsweise @beowolf) gezeigt hat so ein Objekt:

                                  fa5665f3-07f9-4664-b5d4-5f7bf6a9567e-image.png

                                  In dem Fall muss man wohl immer wieder auf Javascript zurückgreifen. Mit den Puzzleteilchen alleine schaffe ich es nicht. ;)

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <variables>
                                     <variable id="bq5jga7TC-f@LCDhpZh.">object</variable>
                                     <variable id="Mmdyn9mwz@F]Y4#{h/%a">topic</variable>
                                     <variable id="a/crk2UE78?HjQxVhqZb">payload</variable>
                                     <variable id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</variable>
                                   </variables>
                                   <block type="procedures_defcustomreturn" id="s-Qa*`D#SWcHOzxzKfAp" x="63" y="13">
                                     <mutation statements="false">
                                       <arg name="object" varid="bq5jga7TC-f@LCDhpZh."></arg>
                                       <arg name="topic" varid="Mmdyn9mwz@F]Y4#{h/%a"></arg>
                                       <arg name="payload" varid="a/crk2UE78?HjQxVhqZb"></arg>
                                     </mutation>
                                     <field name="NAME">aktualisiere Objekt</field>
                                     <field name="SCRIPT">bGV0IG9iaiA9IG9iamVjdCA/IEpTT04ucGFyc2Uob2JqZWN0KSA6IHt9Ow0Kb2JqW3RvcGljXSA9IHBheWxvYWQ7DQpyZXR1cm4gb2JqOw==</field>
                                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                   </block>
                                   <block type="on_ext" id="*r2uUmu-uT%[lG+dMGwP" x="38" y="63">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                     <field name="CONDITION">ne</field>
                                     <field name="ACK_CONDITION"></field>
                                     <value name="OID0">
                                       <shadow type="field_oid" id="sJEm/XPcq~3aM/c(B1cR">
                                         <field name="oid">alias.0.schalter.ku_kaffeemaschine.on</field>
                                       </shadow>
                                     </value>
                                     <value name="OID1">
                                       <shadow type="field_oid" id="VQ]-v7IIs(::8gnGroyE">
                                         <field name="oid">alias.0.schalter.ku_wasserkocher.on</field>
                                       </shadow>
                                     </value>
                                     <statement name="STATEMENT">
                                       <block type="variables_set" id="K9+[YE#FjWxl!^)fd0H6">
                                         <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                         <value name="VALUE">
                                           <block type="get_value" id="B81FcYeMf|T:{BqC/6X7">
                                             <field name="ATTR">val</field>
                                             <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="variables_set" id="YXhrzgFZ0vm.$YkE5+#r">
                                             <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                             <value name="VALUE">
                                               <block type="procedures_callcustomreturn" id="vGKX!G~0V3p//hlLtV+M">
                                                 <mutation name="aktualisiere Objekt">
                                                   <arg name="object"></arg>
                                                   <arg name="topic"></arg>
                                                   <arg name="payload"></arg>
                                                 </mutation>
                                                 <value name="ARG0">
                                                   <block type="variables_get" id="u@t=)X:fPF$TV$yG-eNl">
                                                     <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                   </block>
                                                 </value>
                                                 <value name="ARG1">
                                                   <block type="on_source" id="(_MJ2|KJIYlQWGM,^F|J">
                                                     <field name="ATTR">id</field>
                                                   </block>
                                                 </value>
                                                 <value name="ARG2">
                                                   <block type="on_source" id="kTLM3oN:sOZ/lvm3kI@^">
                                                     <field name="ATTR">state.val</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="update" id="]xf!.rB%fic?+#o,hrgh">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="convert_object2json" id="nv:e+@SGgQa^gI9Dv]%=">
                                                     <field name="PRETTIFY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="variables_get" id="^@o79UI:+,uho]G5OaR;">
                                                         <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                   </block>
                                  </xml>
                                  

                                  Man könnte nun die Objekt-ID in dem Blockly noch verschönern, aber lassen wir das mal. Aus dem oberen Blockly mit diesen beiden Beispielen wird also so ein Objekt erzeugt:

                                  d24574ea-8d63-4c18-b60b-85f7b6a05d16-image.png

                                  und durch die trigger automatisch aktualisiert.

                                  Mit einem 2. Blockly - kann man glaub auch in das selbe machen ermittelst Du nun den Gesamtstatus und kannst dann darauf reagieren.

                                  B Offline
                                  B Offline
                                  Beowolf
                                  schrieb am zuletzt editiert von
                                  #17

                                  Oh ha,

                                  ich glaube ich versuche das erst mal mit einer Szene.

                                  Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

                                  mickymM 1 Antwort Letzte Antwort
                                  0
                                  • B Beowolf

                                    Oh ha,

                                    ich glaube ich versuche das erst mal mit einer Szene.

                                    mickymM Offline
                                    mickymM Offline
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von mickym
                                    #18

                                    @beowolf Der Vollständigkeit will ich Dir das vollständige Blockly über das Objekt noch zeigen - ist eigentlich nicht weiter schwierig, da Du Dir nur einen Datenpunkt für den Gesamtstatus aussuchen musst und oben halt die ganzen Trigger.

                                    Ich habe alles in ein Blockly gepackt, aber das funktioniert auch:

                                    fb5a8bfc-ee72-4cc2-9bf6-1aa15669f234-image.png

                                    Sprich den Datenpunkt den Du mit dem Objekt beschreibst, triggert gleichzeitig und wertet aus. ;) In diesem Fall mit einer ODER verknüpfung. Das Schöne an dieser Variante ist, dass Du nicht wissen musst wieviele States Du miteinander verknüpfen musst:

                                    Du siehst als ERGEBNIS hast Du immer, ob ein Geräte eingeschaltet ist oder alle ausgeschaltet sind, egal welches Gerät eingeschaltet ist:

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                     <variables>
                                       <variable id="bq5jga7TC-f@LCDhpZh.">object</variable>
                                       <variable id="Mmdyn9mwz@F]Y4#{h/%a">topic</variable>
                                       <variable id="a/crk2UE78?HjQxVhqZb">payload</variable>
                                       <variable id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</variable>
                                     </variables>
                                     <block type="procedures_defcustomreturn" id="s-Qa*`D#SWcHOzxzKfAp" x="63" y="13">
                                       <mutation statements="false">
                                         <arg name="object" varid="bq5jga7TC-f@LCDhpZh."></arg>
                                         <arg name="topic" varid="Mmdyn9mwz@F]Y4#{h/%a"></arg>
                                         <arg name="payload" varid="a/crk2UE78?HjQxVhqZb"></arg>
                                       </mutation>
                                       <field name="NAME">aktualisiere Objekt</field>
                                       <field name="SCRIPT">bGV0IG9iaiA9IG9iamVjdCA/IEpTT04ucGFyc2Uob2JqZWN0KSA6IHt9Ow0Kb2JqW3RvcGljXSA9IHBheWxvYWQ7DQpyZXR1cm4gb2JqOw==</field>
                                       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                     </block>
                                     <block type="on_ext" id="*r2uUmu-uT%[lG+dMGwP" x="38" y="63">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                                       <field name="CONDITION">ne</field>
                                       <field name="ACK_CONDITION"></field>
                                       <value name="OID0">
                                         <shadow type="field_oid" id="sJEm/XPcq~3aM/c(B1cR">
                                           <field name="oid">alias.0.schalter.ku_kaffeemaschine.on</field>
                                         </shadow>
                                       </value>
                                       <value name="OID1">
                                         <shadow type="field_oid" id="VQ]-v7IIs(::8gnGroyE">
                                           <field name="oid">alias.0.schalter.ku_wasserkocher.on</field>
                                         </shadow>
                                       </value>
                                       <statement name="STATEMENT">
                                         <block type="variables_set" id="K9+[YE#FjWxl!^)fd0H6">
                                           <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                           <value name="VALUE">
                                             <block type="get_value" id="B81FcYeMf|T:{BqC/6X7">
                                               <field name="ATTR">val</field>
                                               <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="variables_set" id="YXhrzgFZ0vm.$YkE5+#r">
                                               <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                               <value name="VALUE">
                                                 <block type="procedures_callcustomreturn" id="vGKX!G~0V3p//hlLtV+M">
                                                   <mutation name="aktualisiere Objekt">
                                                     <arg name="object"></arg>
                                                     <arg name="topic"></arg>
                                                     <arg name="payload"></arg>
                                                   </mutation>
                                                   <value name="ARG0">
                                                     <block type="variables_get" id="u@t=)X:fPF$TV$yG-eNl">
                                                       <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG1">
                                                     <block type="on_source" id="(_MJ2|KJIYlQWGM,^F|J">
                                                       <field name="ATTR">id</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG2">
                                                     <block type="on_source" id="kTLM3oN:sOZ/lvm3kI@^">
                                                       <field name="ATTR">state.val</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="update" id="]xf!.rB%fic?+#o,hrgh">
                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                   <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                                   <field name="WITH_DELAY">FALSE</field>
                                                   <value name="VALUE">
                                                     <block type="convert_object2json" id="nv:e+@SGgQa^gI9Dv]%=">
                                                       <field name="PRETTIFY">FALSE</field>
                                                       <value name="VALUE">
                                                         <block type="variables_get" id="^@o79UI:+,uho]G5OaR;">
                                                           <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                       <next>
                                         <block type="on" id="mnH9,(VeaeJB^jj^9x~y">
                                           <field name="OID">0_userdata.0.test0.test.gesamtstatus</field>
                                           <field name="CONDITION">any</field>
                                           <field name="ACK_CONDITION"></field>
                                           <statement name="STATEMENT">
                                             <block type="variables_set" id="ev+#x)pwG$!u6;ORE+?-">
                                               <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                               <value name="VALUE">
                                                 <block type="convert_jsonata" id="Y!Bd4h25!QC=LtUzmCbH">
                                                   <value name="EXPRESSION">
                                                     <shadow type="text" id="wgjU%hIUFUT31$~7):sP">
                                                       <field name="TEXT">$reduce($.*,function($i, $j){$i or $j})</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="TARGET">
                                                     <block type="convert_json2object" id="`4[U@!1*lz7v9khI:+82">
                                                       <value name="VALUE">
                                                         <block type="on_source" id="E^v7:G/5#20!6h+EJ:!}">
                                                           <field name="ATTR">state.val</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="controls_if" id="q5hu@zX@y_U16$Tz1LOf">
                                                   <mutation else="1"></mutation>
                                                   <value name="IF0">
                                                     <block type="variables_get" id=")upW1TlLrEtPO(2kQygG">
                                                       <field name="VAR" id="n^#Q3xhq{=n.V8K7#VVB">gesamtstatus</field>
                                                     </block>
                                                   </value>
                                                   <statement name="DO0">
                                                     <block type="debug" id="eH#$U3_!%PB.KdiREFv4">
                                                       <field name="Severity">log</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="gLY!pi%chFRXrQ/%07SV">
                                                           <field name="TEXT">Es ist mindestens ein Gerät EINGESCHALTET</field>
                                                         </shadow>
                                                       </value>
                                                     </block>
                                                   </statement>
                                                   <statement name="ELSE">
                                                     <block type="debug" id="{z8agKpnH1Go|JZI`Mv2">
                                                       <field name="Severity">log</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="M)l8VxNjUqb{!-Y)9)^_">
                                                           <field name="TEXT">Alle Geräte sind AUSGESCHALTET</field>
                                                         </shadow>
                                                       </value>
                                                     </block>
                                                   </statement>
                                                 </block>
                                               </next>
                                             </block>
                                           </statement>
                                         </block>
                                       </next>
                                     </block>
                                    </xml>
                                    

                                    Wenn Du dann im Blockly auch mit Wildcards triggern kannst, dann WÄRE es fast so einfach wie in NodeRed. ;)

                                    Funktioniert halt nur mit true und false (also wahr und falsch). Wenn Du wissen willst, musst Du halt den Wert vorher wandeln. Als bei einer Heizung, wenn Ventilöffnung >0 dann true (wahr), wenn =0 dann false (falsch).

                                    In dem Fall ist es ausreichend den Zahlenwert also die Ventilöffnung in einen Logikwert zu konvertieren:

                                    56812e11-61dd-4eec-b655-9722dbd8a692-image.png

                                    da 0 automatisch auf false und jede Zahl ungleich 0 auf true konvertiert wird.

                                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                    1 Antwort Letzte Antwort
                                    0
                                    • B badsnoopy667

                                      @beowolf
                                      Wenn das nicht unendlich lange Listen sind die da zusammengefasst werden sollen, kann man das mit Blockly mMn so lösen:

                                      mache etwas.png

                                      Alternativ kann man auch mit dem Szenen-Adapter arbeiten und Szenen anlegen und dann auf den Status einer Szene triggern.

                                      mickymM Offline
                                      mickymM Offline
                                      mickym
                                      Most Active
                                      schrieb am zuletzt editiert von mickym
                                      #19

                                      @badsnoopy667 sagte in Auswertung vieler "States" auf einmal.:

                                      @beowolf
                                      Wenn das nicht unendlich lange Listen sind die da zusammengefasst werden sollen, kann man das mit Blockly mMn so lösen:

                                      mache etwas.png

                                      Alternativ kann man auch mit dem Szenen-Adapter arbeiten und Szenen anlegen und dann auf den Status einer Szene triggern.

                                      Das ist halt mE nicht das, da Du ja nur auf den EINEN Wert eines der von Dir angegebenen Objekte reagierst. Die Anforderung war aber, dass Du mit EINEM Trigger gleich den Gesamtstatus aller Objekte ermitteln kannst. Also wie in meinem Beispiel ist eines dieser Geräte EIN geschaltet oder sind ALLE ausgeschaltet. Das hätte ich mit der Auswertung VIELER States aufeinmal verstanden.

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      B 1 Antwort Letzte Antwort
                                      0
                                      • mickymM mickym

                                        @badsnoopy667 sagte in Auswertung vieler "States" auf einmal.:

                                        @beowolf
                                        Wenn das nicht unendlich lange Listen sind die da zusammengefasst werden sollen, kann man das mit Blockly mMn so lösen:

                                        mache etwas.png

                                        Alternativ kann man auch mit dem Szenen-Adapter arbeiten und Szenen anlegen und dann auf den Status einer Szene triggern.

                                        Das ist halt mE nicht das, da Du ja nur auf den EINEN Wert eines der von Dir angegebenen Objekte reagierst. Die Anforderung war aber, dass Du mit EINEM Trigger gleich den Gesamtstatus aller Objekte ermitteln kannst. Also wie in meinem Beispiel ist eines dieser Geräte EIN geschaltet oder sind ALLE ausgeschaltet. Das hätte ich mit der Auswertung VIELER States aufeinmal verstanden.

                                        B Online
                                        B Online
                                        badsnoopy667
                                        schrieb am zuletzt editiert von
                                        #20

                                        @mickym
                                        Oh! Danke für den Hinweis. Ich war der Meinung, dass das Blockly erst triggert, wenn ALLE States false sind. Wenn dem nicht so ist, muss man das natürlich noch anpassen! Sorry!

                                        1 Antwort Letzte Antwort
                                        0
                                        • B Beowolf

                                          @homoran

                                          Ich habe unter 0_userdata.0 einen Ordner "devicesOnline Heizkörper" angelegt.

                                          (0_userdata.0.devicesOnline.Heizkörper)

                                          Dort habe ich einen Datenpunkt mit Zustandstyp json angelegt. "Ventilstellung"

                                          In diesen Datenpunkt habe ich dann das eingefügt:

                                          {
                                            "Schreibtischleuchte POWER": true
                                          }
                                          

                                          War nicht richtig?

                                          HomoranH Nicht stören
                                          HomoranH Nicht stören
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von
                                          #21

                                          @beowolf sagte in Auswertung vieler "States" auf einmal.:

                                          War nicht richtig?

                                          keine Ahnung?
                                          Was soll der DP bewirken?
                                          eigene DP "tun" nichts.

                                          kein Support per PN! - Fragen im Forum stellen -
                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          1 Antwort Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          484

                                          Online

                                          32.8k

                                          Benutzer

                                          82.9k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe