Navigation

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

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Blockly lesen und verstehen

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

      Hallo Forum,

      ich bin ganz neu und völlig überfordert mit Blockly.

      Ich hoffe, ich kann hier als neugieriger Anfänger viele Fragen stellen, auch wenn es für den ein oder anderen eventuell etwas nervig sein könnte, da bestimmt vieles schon 1000mal gefragt wurde. Ich habe mir einige Youtube Videos angesehen aber das ist mir dann schon etwas zu viel.

      Ich habe mir eine RPI 4 gekauft und installiert, ioBrocker und meine Adapter installiert. Das läuft auch alles und nun möchte ich auch einen kleinen ersten Erfolg erleben, da kommt ihr nun mit ins Spiel.

      Mit vis habe ich schon erste Texausgaben hinbekommen und nun möchte ich auch Werte berechnen lassen.

      Wie ist nun aber Blockly zu lesen. Wie ist der Datenfluss und was bedeutet diese ganzen Einstellungen wie z.B. im Falss Objekt, egal Befehl Update usw.

      Gibt es irgendwo eine gut zu lesende Erklärung auf deutsch?

      Praktisches Beispiel.

      Ich habe über eine Luftsensor einen Wert. Wenn ein bestimmter Wert für z.B. 5 Minuten überschritten wird, soll meine Lüftungsanlage die Lüftung auf 0 stellen.

      In vis soll eine Anzeige erscheinen wie z.B. Lüftung aus durch zu hohen Schadstoffbelastung.

      Ist der Wert wieder unter einem festen Wert, soll die Lüftung auf 2 gehen.

      Wie würde man das in Blockly umsetzen?

      Danke

      Thorsten

      Homoran F BBTown OliverIO 5 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @TH G last edited by

        @TH-G sagte in Blockly lesen und verstehen:

        einen kleinen ersten Erfolg

        klingt vernünftig, nur

        @TH-G sagte in Blockly lesen und verstehen:

        Wenn ein bestimmter Wert für z.B. 5 Minuten überschritten wird, soll meine Lüftungsanlage die Lüftung auf 0 stellen.
        In vis soll eine Anzeige erscheinen wie z.B. Lüftung aus durch zu hohen Schadstoffbelastung.
        Ist der Wert wieder unter einem festen Wert, soll die Lüftung auf 2 gehen.

        das ist nichts kleines!

        Fang Schritt für Schritt an, damit lernt man am besten.
        Also erstmal: Wenn wert überschritten mach etwas

        Dann den Versuch posten und danach erweitern

        1 Reply Last reply Reply Quote 0
        • F
          frankyboy73 @TH G last edited by

          @TH-G
          Hi, vielleicht helfen dir die Youtube Videos, Blockly Grundfunktionen, von Elzershark für den Anfang weiter.

          1 Reply Last reply Reply Quote 0
          • BBTown
            BBTown @TH G last edited by

            @TH-G Du schreibst leider nicth welche Videos Du dir angeschaut hast.
            Ich würde dir diese Einführung empfehlen.

            Zudem findest Du auch hier gute Einsteiger-Informationen

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

              @TH-G
              Das meiste lernt man wirklich durch Ausprobieren in kleinen Schritten.
              komplexere Aufgabenstellungen wie deine gepostete ist etwas für später.

              Hier habe ich mal versucht eine Doku für Einsteiger zu beginnen:
              https://github.com/Homoran/Blockly_beginners_tutorial

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

                Hallo und danke für die Antworten.

                Ich habe mal etwas gespielt und für meinen Luftsensor was zusammengebaut. Es läuft und ist das so ok oder sind da noch Fehler enthalten.

                Sollte man immer den Wert in eine Zahl konvertieren?

                Danke

                Thorsten

                <block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="O8iu3lg)QM8s;y{6_ICk" x="213" y="-387">
                  <mutation items="1"></mutation>
                  <field name="CONDITION">any</field>
                  <field name="ACK_CONDITION"></field>
                  <value name="OID0">
                    <shadow type="field_oid" id="5GB80o^E2@#R)5]ORaTz">
                      <field name="oid">luftdaten.0.192_168_178_102.SDS_P1</field>
                    </shadow>
                  </value>
                  <statement name="STATEMENT">
                    <block type="variables_set" id="?(Wl%|/^B%suUSm;Mc6E">
                      <field name="VAR" id="LHJRauu_=w1@jF_d]lI(" variabletype="">Wert_P1</field>
                      <value name="VALUE">
                        <block type="convert_tonumber" id="mO80{AyEEhoz=[C;fsc%">
                          <value name="VALUE">
                            <block type="get_value" id="j%{yt;pX{Jk!Rx:=c(4V">
                              <field name="ATTR">val</field>
                              <field name="OID">luftdaten.0.192_168_178_102.SDS_P1</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <next>
                        <block type="controls_if" id=")#r#seEU~|D=U)i$UKPL">
                          <value name="IF0">
                            <block type="logic_compare" id="));)#qFZ;~;J_fJH)):R">
                              <field name="OP">GT</field>
                              <value name="A">
                                <block type="variables_get" id="sf_*[Yug?PqD|E[t3XU4">
                                  <field name="VAR" id="LHJRauu_=w1@jF_d]lI(" variabletype="">Wert_P1</field>
                                </block>
                              </value>
                              <value name="B">
                                <block type="math_number" id="v]-[41z)bG-YTAVqRU0%">
                                  <field name="NUM">2</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="g(2/#ex3eDe9{EB+OvHm">
                              <mutation delay_input="false"></mutation>
                              <field name="OID">stiebel-isg.0.Einstellungen.LUEFTEN.LUEFTUNGSSTUFEN.val82</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="math_number" id="u|]Y-hlZ,ln@3`D}_}js">
                                  <field name="NUM">0</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="28:uU`@aWFofmT3^{I`j">
                                  <mutation delay_input="false"></mutation>
                                  <field name="OID">stiebel-isg.0.Einstellungen.LUEFTEN.LUEFTUNGSSTUFEN.val83</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="~!]wmvb1,.=NXO]zTXnn">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
                
                F 1 Reply Last reply Reply Quote 0
                • F
                  frankyboy73 @TH G last edited by

                  @TH-G
                  Hi, die Steuere Bausteine müssten in das Mache und nicht darunter.
                  Luft1.JPG
                  Und noch zu Info, den Code vom Blockly bitte in nen Code hier im Post einfügen. Oben in der Leiste 5. Symbol und dann da wo Code_text steht, anstatt Code Text den Code einfügen.

                  <xml xmlns="http://www.w3.org/1999/xhtml">
                    <variables>
                      <variable type="" id="LHJRauu_=w1@jF_d]lI(">Wert_P1</variable>
                    </variables>
                    <block type="on_ext" id="O8iu3lg)QM8s;y{6_ICk" x="-137" y="-212">
                      <mutation items="1"></mutation>
                      <field name="CONDITION">any</field>
                      <field name="ACK_CONDITION"></field>
                      <value name="OID0">
                        <shadow type="field_oid" id="5GB80o^E2@#R)5]ORaTz">
                          <field name="oid">luftdaten.0.192_168_178_102.SDS_P1</field>
                        </shadow>
                      </value>
                      <statement name="STATEMENT">
                        <block type="variables_set" id="?(Wl%|/^B%suUSm;Mc6E">
                          <field name="VAR" id="LHJRauu_=w1@jF_d]lI(" variabletype="">Wert_P1</field>
                          <value name="VALUE">
                            <block type="convert_tonumber" id="mO80{AyEEhoz=[C;fsc%">
                              <value name="VALUE">
                                <block type="get_value" id="j%{yt;pX{Jk!Rx:=c(4V">
                                  <field name="ATTR">val</field>
                                  <field name="OID">luftdaten.0.192_168_178_102.SDS_P1</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="controls_if" id=")#r#seEU~|D=U)i$UKPL">
                              <value name="IF0">
                                <block type="logic_compare" id="));)#qFZ;~;J_fJH)):R">
                                  <field name="OP">GT</field>
                                  <value name="A">
                                    <block type="variables_get" id="sf_*[Yug?PqD|E[t3XU4">
                                      <field name="VAR" id="LHJRauu_=w1@jF_d]lI(" variabletype="">Wert_P1</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="v]-[41z)bG-YTAVqRU0%">
                                      <field name="NUM">2</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="control" id="g(2/#ex3eDe9{EB+OvHm">
                                  <mutation delay_input="false"></mutation>
                                  <field name="OID">stiebel-isg.0.Einstellungen.LUEFTEN.LUEFTUNGSSTUFEN.val82</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="math_number" id="u|]Y-hlZ,ln@3D}_}js">
                                      <field name="NUM">0</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="28:uU@aWFofmT3^{I`j">
                                      <mutation delay_input="false"></mutation>
                                      <field name="OID">stiebel-isg.0.Einstellungen.LUEFTEN.LUEFTUNGSSTUFEN.val83</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="math_number" id="~!]wmvb1,.=NXO]zTXnn">
                                          <field name="NUM">0</field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                  </xml>
                  
                  1 Reply Last reply Reply Quote 0
                  • TH G
                    TH G last edited by

                    Danke und so sieht es nun aus.

                    2020-04-13-101846_1900x1014_scrot.png

                    Wie kann ich eigentlich nur das Blockbild kopieren?

                    F 1 Reply Last reply Reply Quote 0
                    • F
                      frankyboy73 @TH G last edited by

                      @TH-G
                      Hi, ich würde das alles unter einen Trigger packen und bei Falls mache noch ein Sonst einfügen. (Geht übers Zahnrad am Falls Baustein) Sonst fragst du unnötig doppelt auf Änderung ab und setzt deine Wert P1 auch unnötig 2 mal.
                      Falls Wert über 35, mache das, sonst(also wenn nicht über 35) das (Grob erklärt)
                      So in etwa.
                      Luft2.JPG

                      Wegen dem Bildauschnitt gibt es Snipping Tool. Da kann man dann mit der Maus den Bildauschnitt wählen den man will.
                      Windows 10 hat das aber auch direkt mit an Board. Schau mal hier.
                      https://www.focus.de/digital/computer/pc-tipps/computer-windows-10-bei-screenshot-ausschnitt-selbst-festlegen_id_7162065.html

                      TH G 1 Reply Last reply Reply Quote 0
                      • TH G
                        TH G @frankyboy73 last edited by TH G

                        @frankyboy73

                        Danke werde ich nochmals ändern.

                        Ich nutze den RPI nur über VNC, da das Gerät im Keller steht und da gehen dann leider die Tools nicht, die ich sonst auf meinem Mac nutze

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          frankyboy73 @TH G last edited by

                          @TH-G sagte in Blockly lesen und verstehen:

                          Ich nutze den RPI nur über VNC, da das Gerät im Keller steht und da gehen dann leider die Tools nicht, die ich sonst auf meinem Mac nutze

                          Hi, das verstehe ich jetzt nicht ganz. Du gehst per VNC auf deinen Pi und mit dem Pi dann auf die Iobroker Oberfäche?
                          Du kannst doch am Mac oder PC direkt über die IP und den Port per Browser auf den Iobroker, ohne den Umweg über VNC. Falls sich die Geräte im gleichen Netzwerk befinden. In deinem Fall
                          192.168.178.166:8081 (wenn ich das richtig gesehen habe)

                          TH G 1 Reply Last reply Reply Quote 0
                          • TH G
                            TH G @frankyboy73 last edited by

                            @frankyboy73

                            Lach stimmt ja 🙂

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

                              So nun möchte ich folgendes machen.

                              Bildschirmfoto 2020-04-14 um 10.16.19.png

                              In den drei Objekt IDs steht wenn aktiv ein "true"

                              Nun soll der jeweilige Text wenn true in das Feld Status EMI gesetzt werden.

                              Wie mache ich diese falls Abfrage?

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

                                @TH-G wenn ich dich richtig verstanden habe musst du eine falls mit 2 sonst falls (über das Zahrad) erzeugen,
                                dann unter falls schreiben: wert von EMI-OK = true, dann unter mache den ersten aktualisiere Block

                                mit den zwei sonstfalls die weiteren Trigger und Antworten

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

                                  Hallo Homoran,

                                  ich sehe gerade nicht, wo ich die Bedingung z.B. EMI-OK = true finde bzw. wie ich die Objekt-ID dort reinbekomme

                                  Bildschirmfoto 2020-04-14 um 11.19.11.png

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

                                    @TH-G sagte in Blockly lesen und verstehen:

                                    wie ich die Objekt-ID dort reinbekomme

                                    sieht schon gut aus.
                                    du brauchst jetzt noch den Block "Wert von ID" aus dem Bereich System (wenn ich das richtig im Kopf habe)

                                    TH G 1 Reply Last reply Reply Quote 0
                                    • TH G
                                      TH G @Homoran last edited by

                                      @Homoran

                                      Ja gerade selbst gefunden und scheint auch so zu gehen

                                      Bildschirmfoto 2020-04-14 um 11.30.22.png

                                      Danke für deine Hilfe

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

                                        @TH-G sagte in Blockly lesen und verstehen:

                                        scheint auch so zu gehen

                                        will ich doch hoffen 😉

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

                                          Leider funktioniert es doch nicht. Es steht immer der Wert EMI OK im Feld Statuts EMI.

                                          Woran kann es liegen?

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

                                            @TH-G sagte in Blockly lesen und verstehen:

                                            Woran kann es liegen?

                                            ist der Wert EMI-OK immer wahr?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            749
                                            Online

                                            32.1k
                                            Users

                                            80.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            47
                                            3032
                                            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