NEWS
Blockly lesen und verstehen
-
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
-
@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 etwasDann den Versuch posten und danach erweitern
-
@TH-G
Hi, vielleicht helfen dir die Youtube Videos, Blockly Grundfunktionen, von Elzershark für den Anfang weiter. -
@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
-
@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 -
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>
-
@TH-G
Hi, die Steuere Bausteine müssten in das Mache und nicht darunter.
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>
-
Danke und so sieht es nun aus.
Wie kann ich eigentlich nur das Blockbild kopieren?
-
@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.
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 -
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
-
@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) -
Lach stimmt ja
-
So nun möchte ich folgendes machen.
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?
-
@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 Blockmit den zwei sonstfalls die weiteren Trigger und Antworten
-
Hallo Homoran,
ich sehe gerade nicht, wo ich die Bedingung z.B. EMI-OK = true finde bzw. wie ich die Objekt-ID dort reinbekomme
-
@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) -
-
-
Leider funktioniert es doch nicht. Es steht immer der Wert EMI OK im Feld Statuts EMI.
Woran kann es liegen?
-