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.
    • F
      ft.knorr last edited by

      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

      paul53 W Meister Mopper 3 Replies Last reply Reply Quote 0
      • 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