Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Zentral Status Licht

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zentral Status Licht

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

      @ft-knorr sagte: kompletten Gedankenfehler?

      Man kann IDs nicht per Oder verknüpfen.
      Ob alle Lichter aus sind, kann man in einer Schleife prüfen. Prinzip:

      Blockly_alleLichter.JPG

      F 1 Reply Last reply Reply Quote 1
      • W
        Wildbill @ft.knorr last edited by

        @ft-knorr Schau Dir mal den Szenen-Adapter an. Der ist genau für sowas gemacht.

        Gruss, Jürgen

        1 Reply Last reply Reply Quote 0
        • Meister Mopper
          Meister Mopper @ft.knorr last edited by

          @ft-knorr sagte in Zentral Status Licht:

          Hallo zusammen, ich habe folgendes Blockly Skript gebaut um Eine zentrale Gruppen Adresse zu steuern. Leider funktioniert es nicht und ich bin nicht dahinter gekommen, was der Fehler sein könnte… Vielleicht die Nullwerte mancher Gruppenadressen? Oder habe ich einen kompletten Gedankenfehler?
          Danke für eure Hilfe
          Bildschirmfoto 2024-06-22 um 16.53.33.png

          Da hast du eine unnötige Fleißarbeit verrichtet. Du kannst es mit einer Wildcard-Abfrage auch einfacher haben.

          z. B. für Zigbee (funktioniert aber auch mit allen anderen Objekten)
          f6317944-8738-43f0-b68a-8f9c623bbccf-grafik.png

          1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active last edited by mickym

            Ich hatte einfach alle Objekte mit einer Funktion in einem Objekt gesammelt (triggern) lassen und das gesamte Objekt mit JSONATA ausgewertet.

            Hier mal ein Beispiel - da ich die function Licht (light nicht konsequent) genutzt habe, hier nur exemplarisch. Ausserdem habe ich das Gesamtobjekt Lichter nicht gespeichert, beim Neustart baut sich das Objekt also auf. Man kann das auch abspeichern.

            Ich habe mal die function Licht genommen und die ID On - man kann halt nun über den Selector ggf. das alles generisch machen.

            dbe5f564-a9a3-41a3-990d-883bc12af4d6-image.png

            Alle Trigger werden in einem Objekt gesammelt:

            050f46e8-a70f-4308-a2ce-551d7ff7c564-image.png

            Und zum Schluss wird das ganze ausgewertet und der Gesamtstatus Licht an/aus ausgegeben. Licht aus, wenn jede Eigenschaft des Objektes false ist, und true wenn auch nur eine Eigenschaft true ist.

            Hier zum Import:

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="le.$Q3Q#I71y}N?_(B0i">Lichter</variable>
               <variable id="5DRh~$,XYUN2fM#QcKmQ">Licht</variable>
             </variables>
             <block type="variables_set" id="re;}MTX8aPmh:::$)srk" x="37" y="37">
               <field name="VAR" id="le.$Q3Q#I71y}N?_(B0i">Lichter</field>
               <value name="VALUE">
                 <block type="object_new" id="D]L_R!A;AtxR;,;BFh0B"></block>
               </value>
               <next>
                 <block type="debug" id="O5WYHaB8axPoLN#U.IaG">
                   <field name="Severity">info</field>
                   <value name="TEXT">
                     <shadow type="text" id="XC.=osWyzH^JP!{K?#D*">
                       <field name="TEXT">test</field>
                     </shadow>
                     <block type="variables_get" id="vkh,58Ef+X(zo`f9k_0=">
                       <field name="VAR" id="le.$Q3Q#I71y}N?_(B0i">Lichter</field>
                     </block>
                   </value>
                   <next>
                     <block type="on_ext" id="ZCN`4[G3JJle6Zz~iwkU">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                       <field name="CONDITION">ne</field>
                       <field name="ACK_CONDITION"></field>
                       <value name="OID0">
                         <shadow type="field_oid" id="5h^ZCd(nRKLjI2=H9!-u">
                           <field name="oid">ID auswählen</field>
                         </shadow>
                         <block type="selector" id="5U]tpIT_v8}q,/a-Ggq;">
                           <field name="TEXT">state[id=*.On](functions=light)</field>
                         </block>
                       </value>
                       <statement name="STATEMENT">
                         <block type="variables_set" id="Z:~Ud-Md0x=h(1bFpLt{">
                           <field name="VAR" id="5DRh~$,XYUN2fM#QcKmQ">Licht</field>
                           <value name="VALUE">
                             <block type="lists_create_with" id="F2HVL,~.FxSEP09m/z]x">
                               <mutation items="2"></mutation>
                               <value name="ADD0">
                                 <block type="on_source" id="JAVN.#btT:}{e3^Zb3qm">
                                   <field name="ATTR">id</field>
                                 </block>
                               </value>
                               <value name="ADD1">
                                 <block type="on_source" id="vQJ~2ovUcTJvy{l5PfVt">
                                   <field name="ATTR">state.val</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <next>
                             <block type="variables_set" id="K[Tcp`4OH3Ix(F;4l9bK">
                               <field name="VAR" id="5DRh~$,XYUN2fM#QcKmQ">Licht</field>
                               <value name="VALUE">
                                 <block type="convert_jsonata" id="$?``Ymj09%,cn%B1UI[p">
                                   <value name="EXPRESSION">
                                     <shadow type="text" id="e,x#HSl1x;~f:QZ;95[X">
                                       <field name="TEXT">{$[0]:$[1]}</field>
                                     </shadow>
                                   </value>
                                   <value name="TARGET">
                                     <block type="variables_get" id="0pbIv|iq5P9nEkJW`T,Y">
                                       <field name="VAR" id="5DRh~$,XYUN2fM#QcKmQ">Licht</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <next>
                                 <block type="variables_set" id="frOg4cSsOS2jrE@:PJ/#">
                                   <field name="VAR" id="le.$Q3Q#I71y}N?_(B0i">Lichter</field>
                                   <value name="VALUE">
                                     <block type="convert_jsonata" id="#?^DB}M7-9H6SNEC3dYs">
                                       <value name="EXPRESSION">
                                         <shadow type="text" id="%#1Zi=a+4RoMe}[6@f1/">
                                           <field name="TEXT">$merge($)</field>
                                         </shadow>
                                       </value>
                                       <value name="TARGET">
                                         <block type="lists_create_with" id="y^mi!dr67o3:3TG$Smn*">
                                           <mutation items="2"></mutation>
                                           <value name="ADD0">
                                             <block type="variables_get" id="m;P?p(CwSf87.YaPi5Zi">
                                               <field name="VAR" id="le.$Q3Q#I71y}N?_(B0i">Lichter</field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="variables_get" id="J:?@M9UW@h64)pg;Op`D">
                                               <field name="VAR" id="5DRh~$,XYUN2fM#QcKmQ">Licht</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="debug" id="bq~AXb_AY1DdC3YoG_Yt">
                                       <field name="Severity">info</field>
                                       <value name="TEXT">
                                         <shadow type="text" id="!vQ|8xVEt@J.q8YzFGTB">
                                           <field name="TEXT">test</field>
                                         </shadow>
                                         <block type="variables_get" id="+XLKAsWCg=FehWTI`pD-">
                                           <field name="VAR" id="le.$Q3Q#I71y}N?_(B0i">Lichter</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="debug" id="uXeYPjw,I9lE[tH^5G*?">
                                           <field name="Severity">info</field>
                                           <value name="TEXT">
                                             <shadow type="text" id="ZxaOPipZw}vH-~oY;#jY">
                                               <field name="TEXT">test</field>
                                             </shadow>
                                             <block type="text_join" id="_R45hi.[bmQAsGT(?X{d">
                                               <mutation items="2"></mutation>
                                               <value name="ADD0">
                                                 <block type="text" id="D!D|3%g@sk^alc;;:73J">
                                                   <field name="TEXT">Licht an: </field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="convert_jsonata" id="!Al!txyf2!a-J6od^Y+W">
                                                   <value name="EXPRESSION">
                                                     <shadow type="text" id="X@pcN{XJT]%8ah)[Sk6l">
                                                       <field name="TEXT"> $reduce(*,function($i, $j){$i or $j})</field>
                                                     </shadow>
                                                   </value>
                                                   <value name="TARGET">
                                                     <block type="variables_get" id="Fd6`GC7j1E2xiFx-{Uq{">
                                                       <field name="VAR" id="le.$Q3Q#I71y}N?_(B0i">Lichter</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
            </xml>
            

            Der Riesenvorteil eines Objektes gegenüber einer Liste ist halt, dass das Objekt einerseits flexibel und variabel ist, zum anderen aber die Eigenschaft nach der ID aktualisiert und nicht dazu genommen wird.

            1 Reply Last reply Reply Quote 0
            • F
              ft.knorr @paul53 last edited by

              @paul53 Habe deine Lösung ausprobiert. Es funktioniert super.. einzig folgende Fehlermeldung

              javascript.0	23:43:10.268	warn	at Object.<anonymous> (script.js.Master_Licht_Status:12:9)
              

              Könnte das von den Nullwerten kommen?

              Homoran paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @ft.knorr last edited by Homoran

                @ft-knorr sagte in Zentral Status Licht:

                Könnte das von den Nullwerten kommen?

                das könnte man vielleicht sagen wenn man dein Blockly und den erzeugten javascript Code kennen würde.

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @ft.knorr last edited by

                  @ft-knorr sagte: folgende Fehlermeldung

                  Im Tab "Protokolle" findet man weitere Informationen. Vermutung: Der Ziel-Datenpunkt ist nicht vom Typ "Logikwert" (boolean).

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    ft.knorr @paul53 last edited by

                    @paul53
                    im Log steht folgendes

                    javascript.0
                    2024-06-24 00:07:58.230	warn	at process.processImmediate (node:internal/timers:476:21)
                    
                    javascript.0
                    2024-06-24 00:07:58.229	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:8489:62)
                    
                    javascript.0
                    2024-06-24 00:07:58.229	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:641:29)
                    
                    javascript.0
                    2024-06-24 00:07:58.229	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1396:38)
                    
                    javascript.0
                    2024-06-24 00:07:58.228	warn	at Object.<anonymous> (script.js.Master_Licht_Status:12:9)
                    
                    javascript.0
                    2024-06-24 00:07:58.227	warn	getState "knx.0.Licht.Rückmeldung_Schalten_(Ein_Aus_1_Bit).EG_-_Wohnzimmer_Kü_-_LED_Arbeitsfläche_-_Rückmeldung_Schalten" not found (3) states[id]=null
                    
                    javascript.0
                    2024-06-24 00:07:58.227	warn	at process.processImmediate (node:internal/timers:476:21)
                    
                    javascript.0
                    2024-06-24 00:07:58.226	warn	at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:8489:62)
                    
                    javascript.0
                    2024-06-24 00:07:58.226	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:641:29)
                    
                    javascript.0
                    2024-06-24 00:07:58.226	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1396:38)
                    
                    javascript.0
                    2024-06-24 00:07:58.225	warn	at Object.<anonymous> (script.js.Master_Licht_Status:12:9)
                    
                    javascript.0
                    2024-06-24 00:07:58.223	warn	getState "knx.0.Licht.Rückmeldung_Schalten_(Ein_Aus_1_Bit).EG_-_Kind_-_Leuchten_Bett_Li_-_Rückmeldung_Schalten" not found (3) states[id]=null
                    

                    DANKE!

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @ft.knorr last edited by

                      @ft-knorr sagte in Zentral Status Licht:

                      2024-06-24 00:07:58.227 warn getState "knx.0.Licht.Rückmeldung_Schalten_(Ein_Aus_1_Bit).EG_-Wohnzimmer_Kü-LED_Arbeitsfläche-_Rückmeldung_Schalten" not found (3) states[id]=null

                      und der eigentliche Fehler ist nicht im verkürzten log zu sehen

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        ft.knorr @Homoran last edited by

                        @homoran said in Zentral Status Licht:

                        Gibt der Fehler nicht an, dass er keinen Wert bei dem Objekt findet? Ich verstehe nur noch nicht, wie ich in dem Skript sagen kann, dass er Nullwerte ignorieren soll.

                        Bildschirmfoto 2024-06-24 um 08.19.47.png

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @ft.knorr last edited by paul53

                          @ft-knorr sagte: sagen kann, dass er Nullwerte ignorieren soll.

                          Das sind keine Nullwerte, sondern der Datenpunkt hat keinen Zustand, da anscheinend "expire" verwendet wurde. Da hilft nur eine JS-Funktion mit Ergebnis:

                          if(existsState(id)) return getState(id).val;
                          

                          Blockly_temp.JPG

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.1k
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          6
                          12
                          471
                          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