Navigation

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

    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

    Szenen in Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      Gerni last edited by

      Hi zusammen, in meiner Umgebung nutze ich zB Szenen um zb die Garten Beleuchtung an und aus zu schalten wenn eine Tür (xiaomi sensor) geöffnet wird.

      Die Szene funktioniert auch wenn ich die Szene manuell aktiviere.

      Setze ich die Lampen manuell in das Blockly funktioniert das Blockly auch. Jedoch möchte ich das etwas komprimiert machen also die Szene ins Blockly gepackt.

      Ergebnis, die Garten Beleuchtung geht bei geöffneter Tür nicht an oder aus.

      Kann ein Blockly Script nicht mit Szenen umgehen?

      Gruß

      Stefan

      1 Reply Last reply Reply Quote 0
      • D
        dYna last edited by

        Poste doch mal dein Blockly Script (exportiert im Code Tag).

        1 Reply Last reply Reply Quote 0
        • G
          Gerni last edited by

          Das bekomme ich hin.

          ! ````
          <xml xmlns="http://www.w3.org/1999/xhtml"><block type="variables_set" id="o3Ii^Z;(^[/Wl[]Tw3L" x="-162" y="63"><field name="VAR">Licht_Küche_war_aus</field> <value name="VALUE"><block type="logic_negate" id="V!5ydH97_wW*XXT1|?s!"><value name="BOOL"><block type="get_value" id=";hv1XkhoOp?%h(GvH?_l"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.NEQ1502825.1.STATE</field></block></value></block></value> <next><block type="variables_set" id="Rg2;En^MI3z3U/jCDi}}"><field name="VAR">Licht_Gartenbeleuchtung_war_aus</field> <value name="VALUE"><block type="logic_negate" id="gZI/sj6.+Ja!z[6iKh=o"><value name="BOOL"><block type="get_value" id="TTno-h6c~hC!bw3|EOc"><field name="ATTR">val</field>
          <field name="OID">javascript.0.Scene.Gartenbeleuchtung</field></block></value></block></value>
          <next><block type="on" id="X;Cp_fbl5.{}9+*MBtnW"><field name="OID">mihome.0.devices.magnet_158d0001d821d1.state</field>
          <field name="CONDITION">true</field>

                  <statement name="STATEMENT"><block type="controls_if" id="r4;C-s:gJHryisv4KGb`"><value name="IF0"><block type="logic_compare" id="UDQ/e84{v6!/G`]9t7QB"><field name="OP">LT</field>
                          <value name="A"><block type="get_value" id="U2EWT0XNsJOW]@]Yk=~f"><field name="ATTR">val</field>
                              <field name="OID">hm-rpc.0.OEQ0271572.1.BRIGHTNESS</field></block></value> 
                          <value name="B"><block type="math_number" id="p?TJR~lG*ACFgAtTx8Q6"><field name="NUM">100</field></block></value></block></value> 
                      <statement name="DO0"><block type="controls_if" id="mc-/457kBLeVlnE*0U5U"><mutation else="1"></mutation>
                          <value name="IF0"><block type="get_value" id="HJ*WB)WwDP/-Zr4?+oaN"><field name="ATTR">val</field>
                              <field name="OID">hm-rpc.0.NEQ1502825.1.STATE</field></block></value> 
                          <statement name="DO0"><block type="variables_set" id="qNoIPrg/8j}w@iXh;u{G"><field name="VAR">Licht_Küche_war_aus</field>
                              <value name="VALUE"><block type="logic_boolean" id="%r=#Xdt{2cPQouQ]JIn-"><field name="BOOL">FALSE</field></block></value></block></statement> 
                          <statement name="ELSE"><block type="control" id="Zvj.L!dIA2R1COxH|?;H"><mutation delay_input="false"></mutation>
                              <field name="OID">hm-rpc.0.NEQ1502825.1.STATE</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE"><block type="logic_boolean" id="Y-C2(|qU(jar*9o~.nR0"><field name="BOOL">TRUE</field></block></value> 
                              <next><block type="variables_set" id="v^35z/4wSF6)P:OGjilj"><field name="VAR">Licht_Küche_war_aus</field>
                                  <value name="VALUE"><block type="logic_boolean" id="fJ.jCeh`SBtx0@%G/f#="><field name="BOOL">TRUE</field></block></value></block></next></block></statement> 
                          <next><block type="controls_if" id="n*v5Mey4,E={?7uOA|;+"><mutation else="1"></mutation>
                              <value name="IF0"><block type="get_value" id="ua[[e5-V,3|Cd8cb+-Ys"><field name="ATTR">val</field>
                                  <field name="OID">javascript.0.Scene.Gartenbeleuchtung</field></block></value> 
                              <statement name="DO0"><block type="variables_set" id="@,3h9HvhwwahNpW[-n*B"><field name="VAR">Licht_Gartenbeleuchtung_war_aus</field>
                                  <value name="VALUE"><block type="logic_boolean" id="GDBd@}JCq{64Ps1;NwSb"><field name="BOOL">FALSE</field></block></value></block></statement> 
                              <statement name="ELSE"><block type="control" id="Eyw1aZS{T`@j,As{:f.:"><mutation delay_input="false"></mutation>
                                  <field name="OID">javascript.0.Scene.Gartenbeleuchtung</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE"><block type="logic_boolean" id="kq~bv(+7[x-s%e%=03wa"><field name="BOOL">TRUE</field></block></value> 
                                  <next><block type="variables_set" id="ja)eLeTb|%f@E6DN4xTp"><field name="VAR">Licht_Gartenbeleuchtung_war_aus</field>
                                      <value name="VALUE"><block type="logic_boolean" id="b:LKwM9;zQQLCG#,~UoI"><field name="BOOL">TRUE</field></block></value></block></next></block></statement> 
                              <next><block type="timeouts_cleartimeout" id="^9kndE@5R7DmO.Pb3ZWr"><field name="NAME">timeout</field>
                                  <next><block type="timeouts_settimeout" id="1m)Q_r6s:]S6[6JqKIcH"><field name="NAME">timeout</field>
                                      <field name="DELAY">3</field>
                                      <field name="UNIT">min</field>
                                      <statement name="STATEMENT"><block type="controls_if" id="q}VKP`-H5aXwG#1=6+qW"><value name="IF0"><block type="variables_get" id="6H_4wR[~ocbT/Bz18Rdl"><field name="VAR">Licht_Küche_war_aus</field></block></value> 
                                          <statement name="DO0"><block type="control" id="ftP!r*}f{K0X.R)Uax?:"><mutation delay_input="true"></mutation>
                                              <field name="OID">hm-rpc.0.NEQ1502825.1.STATE</field>
                                              <field name="WITH_DELAY">TRUE</field>
                                              <field name="DELAY_MS">2</field>
                                              <field name="UNIT">min</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="VALUE"><block type="logic_boolean" id="Z7hs,k@|2R:*~^FsIB~#"><field name="BOOL">FALSE</field></block></value></block></statement> 
                                          <next><block type="controls_if" id="y_.48SkPAFfw-s{!;CVH"><value name="IF0"><block type="variables_get" id="-Wpbof*~W^0+_qSMUU`e"><field name="VAR">Licht_Gartenbeleuchtung_war_aus</field></block></value> 
                                              <statement name="DO0"><block type="control" id="X/(^=/hR[cU*!1p,tN+c"><mutation delay_input="true"></mutation>
                                                  <field name="OID">javascript.0.Scene.Gartenbeleuchtung</field>
                                                  <field name="WITH_DELAY">TRUE</field>
                                                  <field name="DELAY_MS">4</field>
                                                  <field name="UNIT">min</field>
                                                  <field name="CLEAR_RUNNING">FALSE</field>
                                                  <value name="VALUE"><block type="logic_boolean" id="Q78@%r/U+%Y)Z^cEi]FG"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement></block></next></block></next></block></next></block></statement></block></statement></block></next></block></next></block></xml> 
          
          1 Reply Last reply Reply Quote 0
          • D
            dYna last edited by

            Die Abfrage macht irgendwie keinen Sinn:

              if (getState("hm-rpc.0.OEQ0271572.1.BRIGHTNESS").val < 100) {
                if (getState("hm-rpc.0.NEQ1502825.1.STATE").val) {
                  Licht_K_C3_BCche_war_aus = false;
                } else {
                  setState("hm-rpc.0.NEQ1502825.1.STATE", true);
                  Licht_K_C3_BCche_war_aus = true;
                }
            
            if (getState("hm-rpc.0.NEQ1502825.1.STATE").val)
            ````ist doch immer wahr, insofern ist Licht_K_C3_BCche_war_aus auch immer falsch, egal was in deinem Script passiert.
            1 Reply Last reply Reply Quote 0
            • G
              Gerni last edited by

              Erstmal Danke für die Antwort - auch wenn ich damit nichts anfange kann.

              1. Mir fällt auf, dass die Bezeichnung im Export komisch sind, eigentlich heißt das Objekt "Licht_Küche".

              2. Wenn ich die Szene raus nehme und anstelle die einzelnen Geräte innerhalb der Szene dort einfüge funktioniert alles.

              Warum macht das keinen Sinn? Im Prinzip: Wenn die Tür geöffnet wird und Licht in der Küche ist an soll der Timer nicht greifen und das Licht weiterhin an bleiben. ist das Licht aus bei Öffnen der Tür wird Licht eingeschaltet (und eben die Lampen innerhalb der Szene - was ja nicht geht) und nacht Timer wieder ausgeschaltet. Das funktioniert auch wie gewünscht.

              Gruß

              Stefan

              1 Reply Last reply Reply Quote 0
              • D
                dYna last edited by

                Mit der von mir zitierten Abfrage wird nur gefragt, ob das Objekt vorhanden ist und das ist eben immer wahr.

                Du musst den Zustand des Objekts abfragen und nicht das Objekt selbst.

                Also if Objekt == irgendwas und nicht if Objekt.

                1 Reply Last reply Reply Quote 0
                • T
                  tempestas last edited by

                  das ist doch nur ne Kurzschreibform? Wenn der Val true/false ist, ist das kurz für if (getState("hm-rpc.0.NEQ1502825.1.STATE").val === true)

                  1 Reply Last reply Reply Quote 0
                  • D
                    dYna last edited by

                    Ich entschuldige mich für meine Unwissenheit, nehme alles zurück und behaupte das Gegenteil.

                    Dann würde ich mal die Umlaute aus allen Objekten usw. entfernen.

                    1 Reply Last reply Reply Quote 0
                    • G
                      Gerni last edited by

                      Umlaute entfernen kann es ja auch nicht sein, Küche ist nun mal Küche und nicht Kueche oder Fluege 😉

                      Und; die Szene "Gartenbeleuchtung" greift ja zB auch nicht. Wie gesagt, füge ich die Geräte einzeln ein geht alles.

                      Und; Du nimmst alles zurück und behauptest das Gegenteil?! Wie meinen??? Hilft jetzt nicht oder verstehe ich Dich jetzt nicht?

                      Gruß

                      1 Reply Last reply Reply Quote 0
                      • rantanplan
                        rantanplan last edited by

                        @Gerni:

                        Umlaute entfernen kann es ja auch nicht sein, Küche ist nun mal Küche und nicht Kueche oder Fluege 😉

                        Und; die Szene "Gartenbeleuchtung" greift ja zB auch nicht. Wie gesagt, füge ich die Geräte einzeln ein geht alles. `
                        Hallo

                        Auf Umlaute sollte man beim Programmieren möglichst verzichten.

                        JavaScript kennt keine Umlaute. Deshalb siehst Du beim Export diese kryptischen Übersetzungen.

                        Es ist also immer zusätzliche Programmierung notwendig, nur weil jemand unbedingt Küche und nicht Kueche schreiben will. :roll:

                        Ich würde mich nicht darauf verlassen, dass sich, bei irgend einem Update, ein Bug in diese "Übersetzung" schleicht.

                        Hast Du schon mal den Debug-Baustein gesehen?

                        Damit kann man sehr schön den Ablauf eines Programms überprüfen.

                        Grüße

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        442
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        1228
                        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