Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. HILFE: Alle Fenster geschlossen ? Datenpunkte auf true

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    HILFE: Alle Fenster geschlossen ? Datenpunkte auf true

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Dellishelly @mickym last edited by Dellishelly

      @mickym

      tut mir leid ich kann dir leider nicht ganz folgen

      Was meinst du mit anderem Pfad ?

      6f53c23d-5873-45c0-b553-396dc110c8cc-image.png

      Das ist der Datenpunkt einer Lampe. Die anderen sehen alle gleich aus.

      Was konkret muss ich im Skript noch anpassen ?
      Den Pfad zur LampenJSON habe ich ja hinterlegt.

      Danke nochmal für deine Hilfe

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

        @dellishelly

        Also erstes musst Du mal den Namen extrahieren.

        Setz mal den Namen ein für die Ermittlung des topics und der JSONATA-Ausdruck:
        e1e54248-f35e-4a56-8de1-ecd68018d59e-image.png
        ist

        $match($,/(.*)\.(.*)/).groups[0]
        

        <block xmlns="https://developers.google.com/blockly/xml" type="variables_set" id="g^ezE{937LstW(ZUEydf" x="63" y="-471">
         <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field>
         <value name="VALUE">
           <block type="convert_jsonata" id="VZSXzKA0(o~O8Z|VUv|k">
             <value name="EXPRESSION">
               <shadow type="text" id="?HMex^nHv0Re,E7osI,t">
                 <field name="TEXT">$match($,/(.*)\.(.*)/).groups[0]</field>
               </shadow>
             </value>
             <value name="TARGET">
               <block type="on_source" id="m@|lT|L7Zt[/H,1xEzL/">
                 <field name="ATTR">common.name</field>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="variables_set" id="FOrMgkW57jj@G6{=YVmo">
             <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field>
             <value name="VALUE">
               <block type="lists_create_with" id="}3Pu2NVfy`*~L*A.Uk(s">
                 <mutation items="2"></mutation>
                 <value name="ADD0">
                   <block type="convert_json2object" id="%Y[TZ2`PQ_$?|57$wY_[">
                     <value name="VALUE">
                       <block type="get_value" id="^St9z9H8%ItA9C_vXAO{">
                         <field name="ATTR">val</field>
                         <field name="OID">0_userdata.0.Test.JSON</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <value name="ADD1">
                   <block type="convert_jsonata" id="`pxk8qoF*:@/_PH_8^.Z">
                     <value name="EXPRESSION">
                       <shadow type="text" id="BG^WMHe-q@wGRNa4O#{5">
                         <field name="TEXT">{$[0]:$[1]}</field>
                       </shadow>
                     </value>
                     <value name="TARGET">
                       <block type="lists_create_with" id="l?wk:~pb$uIfcN6@.%M6">
                         <mutation items="2"></mutation>
                         <value name="ADD0">
                           <block type="variables_get" id="v(JDqPD7Pfzl3ar}[U?I">
                             <field name="VAR" id="+%%%So3UD{{[Gk^OhpLZ">topic</field>
                           </block>
                         </value>
                         <value name="ADD1">
                           <block type="logic_negate" id="X1C#Z]zmw0e6IB@B0IHN">
                             <value name="BOOL">
                               <block type="on_source" id=";d-Ch$rON[Q^dstG2J,J">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </value>
             <next>
               <block type="update" id="p^{l*YUMc,}okFib%^V9">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">0_userdata.0.Test.JSON</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="convert_object2json" id="fIBSCL[;SP5Vx,B;dmOY">
                     <field name="PRETTIFY">FALSE</field>
                     <value name="VALUE">
                       <block type="convert_jsonata" id="y1yJD0IPpTHA[;_AVYDi">
                         <value name="EXPRESSION">
                           <shadow type="text" id="FPDz#qB5jn$E*aUcyXku">
                             <field name="TEXT">$merge($)</field>
                           </shadow>
                         </value>
                         <value name="TARGET">
                           <block type="variables_get" id="N)[-x}gD*RfBEk2.hY:z">
                             <field name="VAR" id="1BU(([$^W;WIow$X5_ol">licht</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </next>
           </block>
         </next>
        </block>
        

        D 1 Reply Last reply Reply Quote 0
        • D
          Dellishelly @mickym last edited by

          @mickym said in HILFE: Alle Fenster geschlossen ? Datenpunkte auf true:

          $match($,/(.).(.)/).groups[0]

          Okay also die Geschichte mit Topic=Namen setzen aus dem Objekt habe ich jetzt verstanden.
          Was ist dieser Pfad ?

          $match($,/(.).(.)/).groups[0]

          So hab Ichs jetzt aktuell im Skript

          04002921-2d44-4788-9521-0881f9d972b0-image.png

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

            @dellishelly Dieser Ausdruck extrahiert aus Deinem Namen des Datenpunktes

            a86a1097-aece-43f4-98cc-d83cd7f5034c-image.png

            da steht ja als Name Couchbeleuchtung.STATE das Wort Couchbeleuchtung. So dass im Objekt dann stehen muss:

            {
                     "Couchbeleuchtung" : false
             }
            

            Du musst ggf. halt ein Debug reinmachen und prüfen, ob alles richtig extrahiert wird.
            Und wie gesagt, solange die Liste noch nicht aufgebaut ist, mach ein leeres Objekt in Deinen Datenpunkt liste_lampen rein.

            D mickym 2 Replies Last reply Reply Quote 0
            • D
              Dellishelly @mickym last edited by

              @mickym

              Den Ausdruck habe ich ja verstanden. Leider klappt's noch immer nicht.
              hier ist der Dubug - kannst du mir dazu was sagen ?

              vascript.0
              2023-09-19 13:27:26.337	error	at Object.<anonymous> (script.js.Lichterprüfen:9:83)
              
              javascript.0
              2023-09-19 13:27:26.337	error	at Object.evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:5558:26)
              
              javascript.0
              2023-09-19 13:27:26.337	error	at evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:3525:26)
              
              javascript.0
              2023-09-19 13:27:26.337	error	at evaluateFunction (/opt/iobroker/node_modules/jsonata/jsonata.js:4871:28)
              
              javascript.0
              2023-09-19 13:27:26.337	error	at apply (/opt/iobroker/node_modules/jsonata/jsonata.js:4896:24)
              
              javascript.0
              2023-09-19 13:27:26.336	error	at applyInner (/opt/iobroker/node_modules/jsonata/jsonata.js:4929:33)
              
              javascript.0
              2023-09-19 13:27:26.336	error	at validateArguments (/opt/iobroker/node_modules/jsonata/jsonata.js:5062:39)
              
              javascript.0
              2023-09-19 13:27:26.336	error	at Object.validate (/opt/iobroker/node_modules/jsonata/jsonata.js:7215:28)
              
              javascript.0
              2023-09-19 13:27:26.336	error	at Array.forEach (<anonymous>)
              
              javascript.0
              2023-09-19 13:27:26.336	error	at /opt/iobroker/node_modules/jsonata/jsonata.js:7242:45
              
              javascript.0
              2023-09-19 13:27:26.336	error	at Array.forEach (<anonymous>)
              
              javascript.0
              2023-09-19 13:27:26.335	error	at /opt/iobroker/node_modules/jsonata/jsonata.js:7272:57
              
              javascript.0
              2023-09-19 13:27:26.335	error	script.js.Lichterprüfen: Error:
              
              javascript.0
              2023-09-19 13:27:26.330	warn	at Object.<anonymous> (script.js.Lichterprüfen:8:131)
              
              javascript.0
              2023-09-19 13:27:26.330	warn	at script.js.Lichterprüfen:8:52
              
              javascript.0
              2023-09-19 13:27:26.329	warn	getState "0_userdata.0.Status.Liste_lampen" not found (3) states[id]=null```
              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @mickym last edited by

                @mickym Na der sagt, dass der Datenpunkt 0_userdata.0.Status.Liste_lampen nicht existiert. Hast Du den angelegt?

                D 1 Reply Last reply Reply Quote 0
                • D
                  Dellishelly @mickym last edited by

                  @mickym

                  ja das ist ja das was ich nicht verstehe.

                  Ich habs aber jetzt nochmal so gemacht wie du gesagt hast und die "Liste Lampe" aus dem Skript entfernt.
                  funktioniert aber genauso wenig.

                  d664bbcd-dd8d-443e-90d1-7b8708bc2590-image.png

                  das ist jetzt der debug

                  
                  javascript.0
                  2023-09-19 13:37:09.279	error	at Object.<anonymous> (script.js.Lichterprüfen:9:41)
                  
                  javascript.0
                  2023-09-19 13:37:09.279	error	at Object.evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:5558:26)
                  
                  javascript.0
                  2023-09-19 13:37:09.279	error	at evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:3525:26)
                  
                  javascript.0
                  2023-09-19 13:37:09.279	error	at evaluateFunction (/opt/iobroker/node_modules/jsonata/jsonata.js:4871:28)
                  
                  javascript.0
                  2023-09-19 13:37:09.278	error	at apply (/opt/iobroker/node_modules/jsonata/jsonata.js:4896:24)
                  
                  javascript.0
                  2023-09-19 13:37:09.278	error	at applyInner (/opt/iobroker/node_modules/jsonata/jsonata.js:4929:33)
                  
                  javascript.0
                  2023-09-19 13:37:09.278	error	at validateArguments (/opt/iobroker/node_modules/jsonata/jsonata.js:5062:39)
                  
                  javascript.0
                  2023-09-19 13:37:09.277	error	at Object.validate (/opt/iobroker/node_modules/jsonata/jsonata.js:7215:28)
                  
                  javascript.0
                  2023-09-19 13:37:09.277	error	at Array.forEach (<anonymous>)
                  
                  javascript.0
                  2023-09-19 13:37:09.275	error	at /opt/iobroker/node_modules/jsonata/jsonata.js:7242:45
                  
                  javascript.0
                  2023-09-19 13:37:09.275	error	at Array.forEach (<anonymous>)
                  
                  javascript.0
                  2023-09-19 13:37:09.275	error	at /opt/iobroker/node_modules/jsonata/jsonata.js:7272:57
                  
                  javascript.0
                  2023-09-19 13:37:09.274	error	script.js.Lichterprüfen: Error:
                  
                  javascript.0
                  2023-09-19 13:37:09.266	warn	at Object.<anonymous> (script.js.Lichterprüfen:8:108)
                  
                  javascript.0
                  2023-09-19 13:37:09.263	warn	at script.js.Lichterprüfen:8:52
                  
                  javascript.0
                  2023-09-19 13:37:09.256	warn	getState "Object ID" not found (3)
                  
                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Dellishelly last edited by mickym

                    @dellishelly Nochmal hast Du denn den Datenpunkt unter userdata_0.0 angelegt?

                    Du kannst ja prüfen was in diesen Datenpunkt geschrieben werden soll:

                    af2854c7-af7c-42d4-a7a9-32adb6ac16bc-image.png

                    Lass Dir mit Debug ausgeben, so wie im Screenshot gezeigt was in den Datenpunkt geschrieben wird.

                    Wenn das so ähnlich aussieht - dann ist der Input korrekt, aber Dein Datenpunkt existiert nicht.

                    Der Datenpunkt sollte halt ein leeres Objekt {} zu Beginn enthalten. Wenn das nicht der Fall ist, dann mach ich noch eine Abprüfung rein.

                    146a2f52-ed46-41e3-9df3-02f7dacfd49a-image.png

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

                      @dellishelly sagte: sobald der Status eines geändert wird, ALLE Fenster überprüft und eine Variable "Alle Fenster" auf true setzt wenn alle Fenster geschlossen sind.

                      Blockly_temp.JPG

                      1 Reply Last reply Reply Quote 0
                      • D
                        Dellishelly @mickym last edited by

                        @mickym

                        ich komm mir schon maximal dämlich vor......

                        ja den Datenpunkte Liste_Lampen habe ich selbst angelegt
                        2f196f85-218b-48b3-9cc1-8c8a8b57307c-image.png

                        69314a83-0bef-4e1b-997f-dc102a379faa-image.png

                        javascript.0
                        2023-09-19 13:54:01.168	error	at Object.<anonymous> (script.js.Lichterprüfen:8:147)
                        
                        javascript.0
                        2023-09-19 13:54:01.168	error	at Object.evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:5558:26)
                        
                        javascript.0
                        2023-09-19 13:54:01.167	error	at evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:3493:26)
                        
                        javascript.0
                        2023-09-19 13:54:01.167	error	at evaluateUnary (/opt/iobroker/node_modules/jsonata/jsonata.js:3985:26)
                        
                        javascript.0
                        2023-09-19 13:54:01.166	error	at evaluateGroupExpression (/opt/iobroker/node_modules/jsonata/jsonata.js:4349:33)
                        
                        javascript.0
                        2023-09-19 13:54:01.166	error	script.js.Lichterprüfen: Error:
                        
                        javascript.0
                        2023-09-19 13:54:01.163	warn	at Object.<anonymous> (script.js.Lichterprüfen:8:142)
                        
                        javascript.0
                        2023-09-19 13:54:01.163	warn	at script.js.Lichterprüfen:8:52
                        
                        javascript.0
                        2023-09-19 13:54:01.161	warn	getState "[object Object]" not found (3)
                        
                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Dellishelly last edited by mickym

                          @dellishelly OK wie ich vermutete, da steht null drin. Hier ich hab mal für die Initialisierung wie folgt geändert - damit müsste es gehen:

                          59a547e6-f352-4ddb-a307-edf01f94febe-image.png

                          also gib mal folgenden Code ein:

                          $type($[0]) = "object" ? $merge($) : $[1]
                          

                          Wie gesagt damit sollte es gehen!!

                          Der Fehler ist dass am Anfang ein leeres Objekt erwartet wurde.

                          6a7a552b-e35b-4942-9a78-db868d53ca69-image.png

                          Wenn da am Anfang nicht null sondern {} drin stehen würde - wäre es gegangen - nun sollte es aber auch gehen.

                          cbb39065-6386-4838-8fbd-59b3839083dc-image.png

                          Es gibt beim allerersten Mal eine Warnung - aber es sollte durchlaufen.

                          D 1 Reply Last reply Reply Quote 0
                          • D
                            Dellishelly @mickym last edited by

                            @mickym

                            Hab ich erledigt. Leider noch immer kein erfolg 😞

                            ae89a640-8c48-4fd4-b3c2-2f38262cb865-image.png

                            javascript.0
                            2023-09-19 14:16:34.253	error	at Object.<anonymous> (script.js.Lichterprüfen:8:147)
                            
                            javascript.0
                            2023-09-19 14:16:34.253	error	at Object.evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:5558:26)
                            
                            javascript.0
                            2023-09-19 14:16:34.252	error	at evaluate (/opt/iobroker/node_modules/jsonata/jsonata.js:3493:26)
                            
                            javascript.0
                            2023-09-19 14:16:34.252	error	at evaluateUnary (/opt/iobroker/node_modules/jsonata/jsonata.js:3985:26)
                            
                            javascript.0
                            2023-09-19 14:16:34.252	error	at evaluateGroupExpression (/opt/iobroker/node_modules/jsonata/jsonata.js:4349:33)
                            
                            javascript.0
                            2023-09-19 14:16:34.252	error	script.js.Lichterprüfen: Error:
                            
                            javascript.0
                            2023-09-19 14:16:34.249	warn	at Object.<anonymous> (script.js.Lichterprüfen:8:142)
                            
                            javascript.0
                            2023-09-19 14:16:34.248	warn	at script.js.Lichterprüfen:8:52
                            
                            javascript.0
                            2023-09-19 14:16:34.245	warn	getState "[object Object]" not found (3)
                            
                            D 1 Reply Last reply Reply Quote 0
                            • D
                              Dellishelly @Dellishelly last edited by Dellishelly

                              @mickym

                              Bist du sicher dass der hier stimmt ?

                              $match($,/(.).(.)/).groups[0]

                              Woher kommt der Pfad ?
                              Kann ich ihn mir selbst irgendwoher kopieren ?

                              mickym 2 Replies Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Dellishelly last edited by mickym

                                @dellishelly Schau doch mal in dem Du mit debug das topic ausgibst was da steht. Dann lass Dir auch mal den Namen des Datenpunktes ausgeben. Name ist die 2. Spalte in der Objektansicht.

                                Du kannst das leicht prüfen in dem Du halt mal den Text direkt eingibst.

                                ebff9b03-186b-4a16-b9dc-24957ae1bd45-image.png

                                Im Grund wird also nur der vordere Teil abgeschnitten

                                fa38105c-a84e-446f-9928-9d39f0e1f4ca-image.png

                                Also aus Couchbeleuchtung.STATE wird Couchbeleuchtung.

                                Deaktiviere mal alle weiteren Bausteine dann gehen wir Schritt für Schritt vor.

                                c066590d-004e-415e-a3c2-4001be5e747b-image.png

                                Wenn der Name bei den Datenpunkten nicht gesetzt ist dann nehmen wir die ID - aber wir wollen ja die Couchbeleuchtung als Eigenschaft aus den Infos herauslösen.

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

                                  @dellishelly sagte in HILFE: Alle Fenster geschlossen ? Datenpunkte auf true:

                                  @mickym

                                  Bist du sicher dass der hier stimmt ?

                                  $match($,/(.).(.)/).groups[0]

                                  Woher kommt der Pfad ?
                                  Kann ich ihn mir selbst irgendwoher kopieren ?

                                  Zitieren die * fehlen bei dem Befehl - das liegt aber daran weil Du es nicht in CodeTags geschrieben hast.

                                  Du kannst auch wie gesagt die ID nehmen - wir müssen ja nur ermitteln was für eine Lampe es ist. Sonst poste den String, woher er ist (ID oder Name) und dann basteln wir den regulären Ausdruck

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    Dellishelly @mickym last edited by

                                    @mickym

                                    6d1b5dcb-474c-46de-a5fa-a943a24083be-image.png ```

                                    soweit so gut. das gibt er mir nun unten aus

                                    Aber ich komme nicht in die Liste
                                    beim starten des Skripts gibt er mir den debug

                                    
                                    javascript.0
                                    2023-09-19 15:01:31.776	info	script.js.Lichterprüfen: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                    
                                    javascript.0
                                    2023-09-19 15:01:31.776	error	script.js.Lichterprüfen Error by subscription (trigger): empty ID defined. All states matched.
                                    
                                    javascript.0
                                    2023-09-19 15:01:31.775	warn	at script.js.Lichterprüfen:23:3
                                    
                                    javascript.0
                                    2023-09-19 15:01:31.775	warn	at script.js.Lichterprüfen:10:20
                                    
                                    javascript.0
                                    2023-09-19 15:01:31.773	warn	getState "[object Object]" not found (3)
                                    
                                    javascript.0
                                    2023-09-19 15:01:31.747	info	Start javascript script.js.Lichterprüfen
                                    
                                    javascript.0
                                    2023-09-19 15:01:29.256	info	Stop script script.js.Lichterprüfen
                                    
                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Dellishelly last edited by mickym

                                      @dellishelly Das getState kommt vom unteren Teil - deaktiviere den auch.

                                      Dann ersetze mal

                                      70dae4f0-74ff-4656-80cc-296baa5ef21f-image.png

                                      den Text durch Name und schau ob dann Couchbeleuchtung ohne weitere Fehler rauskommt. Oder Couchlicht

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        Dellishelly @mickym last edited by

                                        @mickym

                                        das klappt nun auch

                                        2df8156b-065a-4edf-82bb-84480a5b81d1-image.png

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

                                          @dellishelly So dann aktiviere die nächsten beiden Blöcke und schau dass der Datenpunkt Liste_lampen existiert.

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            Dellishelly @mickym last edited by

                                            @mickym
                                            Ich bekomme zum einen nenne Warnung und hier der Debug. Warum auch immer scheint er die Liste nicht zu finden, obwohl der Datenpunkt existiert.

                                            9ee00a68-dcc0-4a05-8abc-65842c4c0c69-image.png

                                            javascript.0
                                            2023-09-19 15:30:09.150	info	script.js.Lichterprüfen: {"Couchbeleuchtung":true}
                                            
                                            javascript.0
                                            2023-09-19 15:30:09.148	warn	at Object.<anonymous> (script.js.Lichterprüfen:9:142)
                                            
                                            javascript.0
                                            2023-09-19 15:30:09.147	warn	at script.js.Lichterprüfen:9:52
                                            
                                            javascript.0
                                            2023-09-19 15:30:09.146	warn	getState "[object Object]" not found (3)
                                            
                                            javascript.0
                                            2023-09-19 15:30:09.145	info	script.js.Lichterprüfen: Couchbeleuchtung
                                            
                                            mickym 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            934
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            46
                                            2073
                                            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