Navigation

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

    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

    Frage wegen Warnings in Blockly Prg

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

      @hg6806 sagte: Im rechten Block ersetze ich oben durch "Wert von Freigabe = Wahr" oder?

      Nein. Wert (unter "Trigger") ist effektiver und entspricht "Wert von Freigabe = Wahr".

      @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

      Wo finde ich "setze Sollwert auf"?

      Unter "Variablen" nachdem die Variable sollwert erstellt wurde.

      @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

      Wann benutze ich Setze, wann steure, wann aktualisiere?

      "setze" ändert Variablen, "steuere" ändert Adapter-Datenpunkte und "aktualisiere" ändert eigene Datenpunkte (unter "0_userdata.0").

      hg6806 1 Reply Last reply Reply Quote 0
      • hg6806
        hg6806 Most Active @paul53 last edited by

        @paul53

        Wert unter "Trigger" finde ich nicht.

        Davon verstehe ich den Sinn nicht.
        9ebe1c02-33ea-4b2b-9bd9-c7c1c12be09e-image.png

        @paul53 sagte in Frage wegen Warnings in Blockly Prg:

        "setze" ändert Variablen, "steuere" ändert Adapter-Datenpunkte und "aktualisiere" ändert eigene Datenpunkte (unter "0_userdata.0").

        Eigene Datenpunkte sind für mich Variablen. Ich erzeuge die immer in javascript.o.xxxx
        Wieso dann extra Variablen hier in Blockly?
        Deswegen ist wohl auch in Variablen nur ein Block mit "Element" womit ich nichts anfangen kann.

        Homoran dslraser 2 Replies Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @hg6806 last edited by Homoran

          @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

          Eigene Datenpunkte sind für mich Variablen.

          das sind aber keine Variablen sondern States

          @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

          Wieso dann extra Variablen hier in Blockly?

          Wie gesagt nicht extra, sondern tatsächlich Variablen.
          Diese werden nicht extern geschrieben (was Zeit dauert und bei zu frühem Zugriffsversuch noch nicht geschrieben sein könnten = siehe auch Asynchronität) sondern ausschließlich im js/Blockly verwendet.
          Dadurch ist der Inhalt auch zur Laufzeit immer korrekt.
          Zum Schluss eines Skriptes kannst du deine Variable in deine Datenpunkte schreiben, um sie zu Visualisieren oder woanders zu verwenden.


          @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

          Wert unter "Trigger" finde ich nicht.

          Das ist unter der Kategorie "Trigger" der kleine Baustein mit dem Pulldownmenü hinter dem sich viele nütliche Funktionen, u.a. eben "Wert", befinden

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

            10772b6f-9ab7-4ee9-88f9-527899d14916-image.png
            Ist das der Baustein aus Logik?
            Wenn ja, wie geht der übereinander statt nebeneinander?

            J dslraser 2 Replies Last reply Reply Quote 0
            • J
              Jan1 @hg6806 last edited by

              @hg6806
              auf externe Eingänge umschalten 😉

              1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @hg6806 last edited by

                @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

                Wenn ja, wie geht der übereinander statt nebeneinander?

                rechte Maustaste auf den Baustein und dann umschalten externe/interne Eingänge

                1 Reply Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @hg6806 last edited by

                  @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

                  Wert unter "Trigger" finde ich nicht.

                  der hier...(wie @Homoran schreibt---Kategorie Trigger)

                  Bildschirmfoto 2021-11-05 um 15.33.49.png

                  Bildschirmfoto 2021-11-05 um 15.34.14.png

                  Das hat @paul53 in seinem Beispiel auch gezeigt.

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

                    901bad47-18dd-4aab-a130-601e8bf2c6f0-image.png

                    Ein "und" bekomme ich hier nicht

                    J 1 Reply Last reply Reply Quote 0
                    • J
                      Jan1 @hg6806 last edited by Jan1

                      @hg6806
                      Es ist doch nicht so schwer sich die richtigen Blöcke selber zu suchen.
                      UND ist Logik
                      e66e9a15-7e74-4dde-a235-d46ba574540f-grafik.png

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

                        So, habe es umgesetzt, tut leider nicht.
                        Der aktuelle Wert wird abgespeichert, aber es wird wenn die Bedingung erfüllt ist, nicht hochgezählt.
                        Wie kann man die Variable abfragen?

                        ed474326-fbe7-47bc-a43e-ffca876ed6b5-image.png

                        "timeout" hatte ich als Variable ebenfalls angelegt, war das richtig?

                        dslraser 1 Reply Last reply Reply Quote 0
                        • dslraser
                          dslraser Forum Testing Most Active @hg6806 last edited by dslraser

                          @hg6806
                          Im unteren Blockly hast Du Wert von Objekt ID….als Trigger, das geht schon mal nicht. (nur Objekt ID nehmen)

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

                            Stimmt!
                            Ist gefixt.

                            Ich bekomme allerdings noch immer ein Warning:

                            c74bf71a-58f4-49fe-8e92-ccb687c34b93-image.png

                            Ist Zeile 17?

                            9035f9f5-2dfa-480f-814b-bb509acb159c-image.png

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @hg6806 last edited by

                              @hg6806 Kein Screenshot!
                              ich kann da nichts zitieren!

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

                                OK, hier das Javascript:

                                var Boost_Soll_T_Raum, timeout, timeout;
                                
                                
                                on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: "ne"}, async function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  if (getState("javascript.0.PV.Heizung-Boost").val && !timeout) {
                                    if ((obj.state ? obj.state.val : "") < -500) {
                                      if (Boost_Soll_T_Raum < 30) {
                                        Boost_Soll_T_Raum = (typeof Boost_Soll_T_Raum == 'number' ? Boost_Soll_T_Raum : 0) + 0.5;
                                      }
                                    }
                                  } else if ((obj.state ? obj.state.val : "") < -50 && Boost_Soll_T_Raum > getState("javascript.0.PV.Raumtemp-Soll_alt").val) {
                                    Boost_Soll_T_Raum = (typeof Boost_Soll_T_Raum == 'number' ? Boost_Soll_T_Raum : 0) + -0.5;
                                  }
                                  if (getState("smartmeter.0.1-0:16_7_0__255.value").val != Boost_Soll_T_Raum) {
                                    setState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1"/*myHPSU HPSU.Soll_T_Raum_1*/, Boost_Soll_T_Raum);
                                    timeout = setTimeout(async function () {
                                      timeout = null;
                                    }, 60000);
                                  }
                                });
                                
                                setState("javascript.0.PV.Heizung-Boost"/*Heizung-Boost*/, false);
                                on({id: 'javascript.0.PV.Heizung-Boost', change: "ne"}, async function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  if ((obj.state ? obj.state.val : "")) {
                                    Boost_Soll_T_Raum = getState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1").val;
                                    setState("javascript.0.PV.Raumtemp-Soll_alt"/*Raumtemp-Soll_alt*/, Boost_Soll_T_Raum, true);
                                  } else {
                                    setState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1"/*myHPSU HPSU.Soll_T_Raum_1*/, getState("javascript.0.PV.Raumtemp-Soll_alt").val);
                                  }
                                });
                                
                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @hg6806 last edited by Homoran

                                  @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

                                  setState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1"/myHPSU HPSU.Soll_T_Raum_1/, Boost_Soll_T_Raum)

                                  was macht die Tilde da?
                                  Heisst deine ID wirklich so?

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

                                    Ja, die wilde Tilde ist leider Bestandteil des Datenpunktes.
                                    Der kommt von FHEM.

                                    dslraser 1 Reply Last reply Reply Quote 0
                                    • dslraser
                                      dslraser Forum Testing Most Active @hg6806 last edited by

                                      @hg6806
                                      hast Du mal probiert dafür einen Alias zu erstellen und dann den im Blockly zu verwenden ?
                                      Da kannst Du dann wenigstens „vernünftige“ Namen und ID vergeben (ohne wilde Tilde)

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

                                        Habe ein Alias für den Wert erstellt.
                                        Alias-Namen ohne Tilde. Steht auch so im Alias-Manager drin.

                                        Wenn ich den Alias dann auswähle steht wieder eine Tilde drin?????

                                        Nach dem Fix von Wert des Objekt ID in nur Objekt ID geht es, zählt jedoch alle 5-10 Sek hoch und nicht jede Minute.

                                        Ich schätze da stimmt was mit Timeout nicht.
                                        Ist auch komisch dass es in der Variablendeklaration 2x auftaucht.

                                        Wie schon geschrieben hatte ich "timeout" als Variable neu angelegt, da ich es sonst im Blockly nicht hätte auswählen können

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

                                          @hg6806 sagte: Wie schon geschrieben hatte ich "timeout" als Variable neu angelegt, da ich es sonst im Blockly nicht hätte auswählen können

                                          Dann wähle die andere (echte) Variable timeout aus und kontrolliere in der Javascript-Ansicht, dass nur noch eine Variable timeout existiert.

                                          @hg6806 sagte in Frage wegen Warnings in Blockly Prg:

                                          hier das Javascript:

                                          Falsch nachgebaut. Hier ein Export, bei dem nur noch sämtliche Datenpunkt-IDs zugewiesen werden müssen:

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                           <variables>
                                             <variable id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</variable>
                                             <variable type="timeout" id="timeout">timeout</variable>
                                           </variables>
                                           <block type="on_ext" id="WS2pki!+Wa]B9pOoH1EE" x="37" y="212">
                                             <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="Y^gX`@%S7?]9pdzDbqEn">
                                                 <field name="oid">0_userdata.0.Blockly.Power</field>
                                               </shadow>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="controls_if" id="-o8O7GRQ_+OWlJ(^s1h%">
                                                 <value name="IF0">
                                                   <block type="logic_operation" id="eT!,1v1_jt8)-5XX@;?2" inline="false">
                                                     <field name="OP">AND</field>
                                                     <value name="A">
                                                       <block type="get_value" id="v/tyE{%;^.:%%orWc8:=">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">0_userdata.0.Blockly.Freigabe_Ventil</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="logic_negate" id="MXXJdcO#s]zQ-JxKx[Bh">
                                                         <value name="BOOL">
                                                           <block type="variables_get" id="x9+r_-8A*dc4*7wR}1KX">
                                                             <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="controls_if" id="$+Tz0_$:o%:gB#ZPeD:C">
                                                     <mutation elseif="1"></mutation>
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="pZ-=;Pw4Q#KOu7F|A6r%">
                                                         <field name="OP">LT</field>
                                                         <value name="A">
                                                           <block type="on_source" id="7r5wceo=h`FgR(eUAPjg">
                                                             <field name="ATTR">state.val</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="math_number" id="n|s4N_SYXa:14gT]--M8">
                                                             <field name="NUM">-500</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="controls_if" id="-vmvsiA04M-QQ{q+;2=S">
                                                         <value name="IF0">
                                                           <block type="logic_compare" id="r!}hW3Jx;};jGqVq7(,*">
                                                             <field name="OP">LT</field>
                                                             <value name="A">
                                                               <block type="variables_get" id=";)|KKMwc}q?9GgFXDRJB">
                                                                 <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <block type="math_number" id="cF!GbW/0|^ptc@N7QwxT">
                                                                 <field name="NUM">30</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="math_change" id=",tB,NxYBtB.os9gwcwKF">
                                                             <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                             <value name="DELTA">
                                                               <shadow type="math_number" id="6.SMWS.JZ7n.%iWwSIYY">
                                                                 <field name="NUM">0.5</field>
                                                               </shadow>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </statement>
                                                     <value name="IF1">
                                                       <block type="logic_operation" id="?S~%I*Xg2:{~A+]VD?P`" inline="false">
                                                         <field name="OP">AND</field>
                                                         <value name="A">
                                                           <block type="logic_compare" id="!|lzv#rfsRB[uRR-?8$y">
                                                             <field name="OP">GT</field>
                                                             <value name="A">
                                                               <block type="on_source" id="k1M{WSL7Jhz.(NG+OzPq">
                                                                 <field name="ATTR">state.val</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <block type="math_number" id="-d#_*f;t]C(]]/Ai.1%f">
                                                                 <field name="NUM">-50</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="logic_compare" id="cz6_7CvYs=$+Sm6EE:gb">
                                                             <field name="OP">GT</field>
                                                             <value name="A">
                                                               <block type="variables_get" id="9`#BZ6DDn/2xOix%G}4D">
                                                                 <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <block type="get_value" id=";)%YZm}v`Zgyl_5nzjoc">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">ID auswählen</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO1">
                                                       <block type="math_change" id="cD[rF.$wvhyc9A~lPgHD">
                                                         <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                         <value name="DELTA">
                                                           <shadow type="math_number" id="tgK{*FKsZ*.aVs|?/9kR">
                                                             <field name="NUM">-0.5</field>
                                                           </shadow>
                                                         </value>
                                                       </block>
                                                     </statement>
                                                     <next>
                                                       <block type="controls_if" id="(L0@;g9L{HUsVe)wksD9">
                                                         <value name="IF0">
                                                           <block type="logic_compare" id="qp1YjeoR-#T`*b)T-s/2">
                                                             <field name="OP">NEQ</field>
                                                             <value name="A">
                                                               <block type="variables_get" id="Y`5.KpcfrW`AxI:SDz#(">
                                                                 <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <block type="get_value" id="ZX_bR1a[SnhgVmw|Q*9n">
                                                                 <field name="ATTR">val</field>
                                                                 <field name="OID">0_userdata.0.Blockly.Soll_Temperatur</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="control" id="X]wVtN]L1~B?Hf+3=o5V">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                             <field name="OID">0_userdata.0.Blockly.Soll_Temperatur</field>
                                                             <field name="WITH_DELAY">FALSE</field>
                                                             <value name="VALUE">
                                                               <block type="variables_get" id="E=D1Jm-$N-SVHnI7!YsQ">
                                                                 <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </statement>
                                                         <next>
                                                           <block type="timeouts_settimeout" id="!Mx#av5+R*@g#]jARsK.">
                                                             <field name="NAME">timeout</field>
                                                             <field name="DELAY">1</field>
                                                             <field name="UNIT">min</field>
                                                             <statement name="STATEMENT">
                                                               <block type="variables_set" id="4ym+oZsroTg8TRrd$*lv">
                                                                 <field name="VAR" id="timeout" variabletype="timeout">timeout</field>
                                                                 <value name="VALUE">
                                                                   <block type="logic_null" id="M6m?`rO-O1Ip)vX*cLw5"></block>
                                                                 </value>
                                                               </block>
                                                             </statement>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </statement>
                                           </block>
                                           <block type="on_ext" id="V!I|JBF1eXs(=1C?2MrO" x="512" y="213">
                                             <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="=f[=Yy}F]CQ@$O/r1k{V">
                                                 <field name="oid">0_userdata.0.Blockly.Freigabe_Ventil</field>
                                               </shadow>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="controls_if" id="S_.jdk|=zJG7scL4a!C@">
                                                 <mutation else="1"></mutation>
                                                 <value name="IF0">
                                                   <block type="on_source" id=")mc%Hr$aEpk.r2gF#`Zw">
                                                     <field name="ATTR">state.val</field>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="variables_set" id="j!fW@36IZ4+v~%`cE}.?">
                                                     <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                     <value name="VALUE">
                                                       <block type="get_value" id="6L4QjxCw`a/4,tc%*MYr">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">0_userdata.0.Blockly.Soll_Temperatur</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="update" id="M=0-F6W4M+$c3p(9Br11">
                                                         <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                         <field name="OID">Object ID</field>
                                                         <field name="WITH_DELAY">FALSE</field>
                                                         <value name="VALUE">
                                                           <block type="variables_get" id="M*ss*L*Amq{|pG|K0_^F">
                                                             <field name="VAR" id="Z$dQ(fbDb]yEVd;|nC}-">sollwert</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                                 <statement name="ELSE">
                                                   <block type="control" id="11t{niAfqS9bH9?UXEf{">
                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                     <field name="OID">0_userdata.0.Blockly.Soll_Temperatur</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="get_value" id="-6|)NTE*4+N[YhQF;%;,">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">ID auswählen</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </statement>
                                           </block>
                                          </xml>
                                          

                                          hg6806 1 Reply Last reply Reply Quote 0
                                          • hg6806
                                            hg6806 Most Active @paul53 last edited by

                                            @paul53
                                            Danke, aber Ziel ist es, dass ich es alleine auf die Beine stelle.
                                            Das Blockly hatte ich nur zur Hälfte verstanden, bei deinem Javascript verstehe ich gar nichts. Das bringt mir nichts.

                                            Ich muss erst einmal schauen, warum mir Alias wieder eine Tilde ausspuckt, obwohl ich ohne Tilde erstelle.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            692
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            63
                                            2033
                                            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