NEWS
Bier maischen Script mit Blockly
-
@hanzwurzt
Ja ok, dann Trickkiste.
Im Programm hast du drei mal " Wert von Objekt ID Sensor 1".
Ändere das in " 40 " oder " 20"
Dann sollte das Programm reagieren.
Hier gibst du dann einen festen Wert vor.
Nur als Test ob es am Komma Wert liegt.Das neue Board, ist doch schön Kreis bunt.
Mehr als schlecht.
Findest nix mehr direkt.
Soll se machen, wird alles nur schwerer.
Progger mit langeweile die einen Beginner nicht verstehen. -
Hi Ralla,
danke für den Tipp. Leider ist es auch mit dem Setzen einer Zahl als Temperatur nicht viel besser.
Es läuft jetzt zwar bis hierhin durch:
Also schon etwas weiter, aber es bleibt dann dort hängen und heizt auch hier wieder in einem weiter durch. Ich frage mich auch, wo im Script das Auslesen der Temperatur durch den Sensor (also das im Topf hängende Thermometer) überhaupt erfolgt.
Oder verstehe ich mal wieder Bahnhof?
Ich bin und bleibe halt ein Noob. Irgendwelche anderen Ideen?[edit]: Nicht wundern. Sensor 1 ist momentan ausgeschaltet. Habe mir ein paar Steckklemmen für das Breadboard gekauft. Da hat nur noch ein DS18b20 Platz...
[edit²]: Ich habe jetzt mal folgendes getauscht:
Also die Temperatur von Hand angepasst. Bingt aber auch nix.
Ich habe mal so lange gewartet, bis der Runterzähler auf 0 war.
Allerdings tut sich da auch nix. Die Temperatur heizt weiter auf...
Mann o Mann, ich will doch nur Bier brauen... -
@hanzwurzt said in Bier maischen Script mit Blockly:
Mann o Mann, ich will doch nur Bier brauen...
Will auch nur ein Pils
Ändere mal nix am Program.
Das rennt ja bei mir.
Schick mal dein Blocky.
Die Temperatur hier 19.25 ist zu tief.
Dann muß Heizung Ein.Was ein Dreck, Forum 2 ist Note 6, sehr schlecht gemacht.
Alles schön Bunt hier, User freundlich nix.
Helfe dir noch dann bin ich Weg.
So einen Scheiß brauche ich nicht.Ralla
-
Schick mal dein Blockly
Hmm, ich kann das Script höchstens exportieren. Ich habe es wieder auf den Stand des letzten Bildes zurückgesetzt. Ich hoffe, du kannst damit was anfangen:<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="on" id="r9pY(cc55lc)4_xp2W%" x="-1362" y="-387">
<field name="OID">javascript.0.Bierbrauen</field>
<field name="CONDITION">any</field>
<field name="ACK_CONDITION"></field>
<statement name="STATEMENT">
<block type="variables_set" id="C8FvFWQDmf2)+zkAJYOk">
<field name="VAR">Temperatur Kessel</field>
<value name="VALUE">
<block type="get_value" id="/X-p,0|kdBt9G@{jPq"> <field name="ATTR">val</field> <field name="OID">parser.0.Sensor2</field> </block> </value> <next> <block type="controls_if" id="Q.l^xa)Eb#Xj%:=:TBu["> <value name="IF0"> <block type="logic_compare" id="-=~9{9[^hNLk=jPMKPaD"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="VS
SPSj.;l0)%R;2#8+@">
<field name="ATTR">val</field>
<field name="OID">javascript.0.Bierbrauen</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="jf7Cu(9dXj.cD0GS2Qz[">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="update" id="#(U40yVvKI,Q#v~8A-g7">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Runterzähler</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="fnCPCcTB6_8IICbY(M*.">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="update" id="LRnPgEv{~qHKOm7fD~0M">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Runterzähler2</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="[0/28G/3OF)rIgx:{O*">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="update" id="-{|76eaG7/8Npy#cEKX"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Heizung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="ac;lS!7~-f-jw0cbwRB0"> <field name="TEXT">Brauen ein</field> </block> </value> <next> <block type="update" id="?LrXrLJ=T^F!mM[P}lK7"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Test</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="NO%8xOI^uk^EkIdL=_Hv"> <field name="TEXT">prg läuft</field> </block> </value> <next> <block type="variables_set" id="mRO@Wb..-9BEK9XfL;Rr"> <field name="VAR">Lager</field> <value name="VALUE"> <block type="math_number" id="m;msh3:nK@3R[5|;u.FM"> <field name="NUM">1</field> </block> </value> <next> <block type="controls_if" id="#a@v*b7WXIr==p!sn=^_"> <value name="IF0"> <block type="logic_compare" id="F-.P|a7)K,%L/wbW)}B*"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="aT?^va~n/3e(xh}27+04"> <field name="VAR">Lager</field> </block> </value> <value name="B"> <block type="math_number" id="~sQZL~aJ,j(2m6Y#knAK"> <field name="NUM">1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="c1}(L:*?(_:PFBqzUa(
">
<field name="VAR">Einmaischen Zeit</field>
<value name="VALUE">
<block type="math_number" id="Ug5Pi@ihtY){]RBhT#wm">
<field name="NUM">5</field>
</block>
</value>
<next>
<block type="variables_set" id="[Tr(b:Q7+X)Dt7ph%LMP">
<field name="VAR">Einmaischen Grad</field>
<value name="VALUE">
<block type="math_number" id="xqg/8L@y/hf!2F@}p(E"> <field name="NUM">40</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="^:I-h]Au~vQ7IDp,4x:p"> <field name="COMMENT">aufheizen</field> <next> <block type="controls_if" id="Ao.g{4(8lVO*W3~AM?yc"> <value name="IF0"> <block type="logic_compare" id="t:z.2y0@}qk{hXdZWZ!C"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="4|UndFTrI[Y_
hGj^bJ=">
<field name="VAR">Temperatur Kessel</field>
</block>
</value>
<value name="B">
<block type="math_number" id="DJWBX^nzD)}.GX{0XG6">
<field name="NUM">40</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="JTatYkX=?iR|U-0bBHi"> <mutation delay_input="false"></mutation> <field name="OID">hs100.0.192_168_100_20.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="Gh5edp.^YNf9CHO%{XA7"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="update" id="M(m^#Z3[LQ{O5[k}/nHe"> <mutation delay_input="true"></mutation> <field name="OID">javascript.0.Heizung</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="dEu~qT%8id[ohT7[_c.p"> <field name="TEXT">Heizung ein</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="2C;66bak]yTb=X[hyQ@@"> <field name="COMMENT">runterzählen</field> <next> <block type="variables_set" id="DOjLCNB0k.z)O(ZmjLKu"> <field name="VAR">Runterzähler</field> <value name="VALUE"> <block type="math_number" id=".R_r3[.8KICd/8;H
2F.">
<field name="NUM">10</field>
</block>
</value>
<next>
<block type="update" id="/,D9DXSoOAcU/,U_J!3y">
<mutation delay_input="true"></mutation>
<field name="OID">javascript.0.Runterzähler</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">10</field>
<field name="UNIT">sec</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE">
<block type="variables_get" id="#^!9fQtX{^*Bpr]gy+"> <field name="VAR">Runterzähler</field> </block> </value> <next> <block type="timeouts_setinterval" id="GwLlG[^)T,EQ]8_?BzZl"> <field name="NAME">Intervall</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="variables_set" id=".ii@v%#HE
,Qll7(zLP?">
<field name="VAR">Runterzähler</field>
<value name="VALUE">
<block type="math_arithmetic" id="z?;JXaSqn)!xHx#I2nsj">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="[;x:XV![=Ae4TawgC2c"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="tJ1j4)d#VzXeE7h,){q9"> <field name="VAR">Runterzähler</field> </block> </value> <value name="B"> <shadow type="math_number" id=")}]u^VDegFTJzh4dI?ei"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="update" id="Kh/w.MSe@GFXIukQ#rm)"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Runterzähler</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="5je94{dAZtuTLLlRG38m"> <field name="VAR">Runterzähler</field> </block> </value> <next> <block type="variables_set" id="oR7cNcksH}Iwd[{5}PIk"> <field name="VAR">Runterzähler2</field> <value name="VALUE"> <block type="variables_get" id="B(a2Gpo6eY
Cv.JyO(YW">
<field name="VAR">Einmaischen Zeit</field>
</block>
</value>
<next>
<block type="update" id="+q=-/)RndL(?JBh,E~+M">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Runterzähler2</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="variables_get" id="/,MC2?@}RGUx+)z1P873">
<field name="VAR">Runterzähler2</field>
</block>
</value>
<next>
<block type="variables_set" id="~iqnEBF66chlD-,[Icyx">
<field name="VAR">Temperatur Kessel</field>
<value name="VALUE">
<block type="get_value" id="e{LC~vWNd^9ZwGSLbUyy">
<field name="ATTR">val</field>
<field name="OID">parser.0.Sensor1</field>
</block>
</value>
<next>
<block type="controls_if" id="52#+hW15j[#{Uh,A(@/">
<value name="IF0">
<block type="logic_compare" id="6Z:,yEnY1x2peDVdsrR"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id=")#GOMiC2|j
j~;@92=i8">
<field name="VAR">Temperatur Kessel</field>
</block>
</value>
<value name="B">
<block type="math_number" id="xz[u;iTs^.M9@V3pYe%c">
<field name="NUM">40</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="comment" id="g6[+di[w|sk[2_B20]D"> <field name="COMMENT">Regelung</field> <next> <block type="timeouts_setinterval" id="!aS7@|MEtOeYWcK2M8#4"> <field name="NAME">Intervall2</field> <field name="INTERVAL">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="timeouts_clearinterval" id="}*?aKnQkGX]Pf4Hj4Jn*"> <field name="NAME">Intervall</field> </block> </statement> <next> <block type="variables_set" id="Tx;yt
M;-SsYMlqPCYLd">
<field name="VAR">Runterzähler2</field>
<value name="VALUE">
<block type="math_arithmetic" id=")g7^=W8t*J^CFN6Dum.H">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="[;x:XV![=Ae4TawgC2c"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="9Q?^q@0DT}UOAM[|;z9D"> <field name="VAR">Runterzähler2</field> </block> </value> <value name="B"> <shadow type="math_number" id="}9::pZ4nQSEFeR6z#QUh"> <field name="NUM">1</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="3tMF]P9~HcDO53Jw2kaF"> <field name="VAR">Temperatur Kessel</field> <value name="VALUE"> <block type="get_value" id="~-dDli!yFBR,t!p!Xtzg"> <field name="ATTR">val</field> <field name="OID">parser.0.Sensor1</field> </block> </value> <next> <block type="update" id="j^y7)GWjHLx%a
?vJF7@">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Runterzähler</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="stb=7Js~J)he,Hs_!XK;">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="update" id="Nc1}w7N{+@h@7xBvOoJW">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Runterzähler2</field>
<field -
name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="variables_get" id="2!T2U42hirm~:!PQ4^jn">
<field name="VAR">Runterzähler2</field>
</block>
</value>
<next>
<block type="controls_if" id="8#P5(ult.b?:T+rV_]^T">
<value name="IF0">
<block type="logic_compare" id="r;hNaSew_UQnQ;b=P@/!">
<field name="OP">LTE</field>
<value name="A">
<block type="variables_get" id="};79{JSOghPeK;fB=aF#">
<field name="VAR">Temperatur Kessel</field>
</block>
</value>
<value name="B">
<block type="math_number" id="fHUPL?95d^UyP-,.oJs6">
<field name="NUM">40</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="9x!=6F3g%neZ-6EmQ%=Q">
<mutation delay_input="false"></mutation>
<field name="OID">hs100.0.192_168_100_20.state</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="sRdZ+6gzxFmIa!]Iy.yU">
<field name="BOOL">TRUE</field>
</block>
</value>
<next>
<block type="update" id="D~GUC^tqMq?kYY7mnyKp">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Heizung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="CmD}Fgw|2ZV%icsJ@0e"> <field name="TEXT">Heizung lööft</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="4nYO8Y/9o3buCt]Mx,5|"> <value name="IF0"> <block type="logic_compare" id="faV-E:
C)5-^X%+,d1b;">
<field name="OP">GT</field>
<value name="A">
<block type="variables_get" id="7}BL+f;p*#h|+Q2xI^P3">
<field name="VAR">Temperatur Kessel</field>
</block>
</value>
<value name="B">
<block type="math_number" id="jU~o|!5z0?uy9F0h9pA">
<field name="NUM">40</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="h.7[/A%|zIgKnt)yDh#3">
<mutation delay_input="false"></mutation>
<field name="OID">hs100.0.192_168_100_20.state</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="o/^t965N/!|X5*XK:v-"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="update" id="sdf!c=eM5
c#:ppDGsu"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Heizung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="~AOsCSEr)I^%8qm/Qbc3"> <field name="TEXT">Heizung lööft nicht</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="!@6BJ!)L(s6tg~PN+gS3"> <value name="IF0"> <block type="logic_compare" id="aE/HSx?9:{IOEiN/d,lO"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="ASl!O4]L_I#
U8Xjqzdu">
<field name="VAR">Runterzähler2</field>
</block>
</value>
<value name="B">
<block type="math_number" id="b?o}NO6]N!i!MHV!I.g">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="timeouts_clearinterval" id="v;fa^3z^7[4(@ig{3]EA">
<field name="NAME">Intervall</field>
<next>
<block type="update" id="V9zUp4wp+}AQ)7^;vr0j">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Test</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="i!?oHkwpA=m=]{ReT-Y"> <field name="TEXT">Programm Ende</field> </block> </value> <next> <block type="update" id="sCG:HZqsrbwWj8uja;w,"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Bierbrauen</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="|oErz(Py02En.Gk(TP;E"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="controls_if" id="jXmnuFlmuJQghM/d4*{8"> <value name="IF0"> <block type="logic_compare" id=";w%b9@/Ib(l,?T8gHUUZ"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="j/bvd8DZvjxHNpDscM/#"> <field name="VAR">Runterzähler</field> </block> </value> <value name="B"> <block type="math_number" id="w45xc1AGmUH3
f_30U*"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="k|@WkF0%rOUfUY/A+%7["> <field name="NAME">Intervall</field> <next> <block type="update" id="2dD?)m|Ap045[gho)=)F"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Runterzähler</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="I
6@yZ.4+{]pzVA{hjz[">
<field name="NUM">0</field>
</block>
</value>
</block>
</next>
</block>
</statement>
<next>
<block type="controls_if" id="j~%Yk1P5,#jBd1A7;cel">
<value name="IF0">
<block type="logic_compare" id="Vw+PHdtjqWL+ZOjMI)j;">
<field name="OP">EQ</field>
<value name="A">
<block type="variables_get" id=";zj)K?u7:JYghgOPA-6m">
<field name="VAR">Runterzähler</field>
</block>
</value>
<value name="B">
<block type="math_number" id=".p.qE~6{bb].mUHHriv"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="*nBz:vnj^fw%,_{SEgn@"> <field name="NAME">Intervall</field> <next> <block type="update" id="%7OJm08=
-Scg?e@^htQ">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Test</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="text" id="R(mYz%nN14UMrz[6)%`b">
<field name="TEXT">Schicht hier</field>
</block>
</value>
<next>
<block type="update" id="M,VBaO.HmFUlnmVY=8b{">
<mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Bierbrauen</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="@Q1OHsPMIYN?^mOG+3Fj">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</next>
</block>
</statement>
</block>
<block type="math_number" id="~S7uT?fFFsOF^[v4Grl" disabled="true" x="-462" y="-288">
<field name="NUM">20</field>
</block>
<block type="variables_get" id="02;#P#VXIU%t(0J78w}^" disabled="true" x="-488" y="87">
<field name="VAR">Einmaischen Grad</field>
</block>
<block type="math_number" id="}Y?qM-z=N(yTp~n|DKql" disabled="true" x="-412" y="462">
<field name="NUM">20</field>
</block>
<block type="variables_get" id="cHVl5m5n[?K-kR@iy?x|" disabled="true" x="-438" y="487">
<field name="VAR">Einmaischen Grad</field>
</block>
<block type="math_number" id="Ep(F-.;0{SA/,n]%.aMy" disabled="true" x="-338" y="663">
<field name="NUM">20</field>
</block>
<block type="variables_get" id="qB/,*ED7bBE#bH7}X" disabled="true" x="-413" y="762">
<field name="VAR">Einmaischen Grad</field>
</block>
<block type="variables_get" id="]{z{jjF=3qsQh.d-Tvuy" disabled="true" x="-464" y="873">
<field name="VAR">Einmaischen Grad</field>
</block>
</xml> -
Einfach ein Bild vom Blockly, wie bisher.
-
Mein Script sieht immernoch wie folgt aus:
genau so wie vor 4 Tagen... -
@hanzwurzt
wo ist der Wert vom Sensor DS18b20 verknüpt ?
Dir fehlt immer noch die Kesseltemperatur ist. -
Naja, in den Instanzen, Ich habe die Sensoren nach folgender Beschreibung an den Raspi angeklemmt:
https://st-page.de/2018/01/20/tutorial-raspberry-pi-temperaturmessung-mit-ds18b20/
Unter Adapter habe ich mir dann den Parser geholt und den DS18b20 als Objekt angelegt.Wo kriege ich denn die Temperatur ist her, wenn nicht von Sensor2???
Viele liebe Grüße, ein noch verwirrterer Hanzwurzt...
[edit]: Temperatur ist = Temperatur Kessel
Allerdings bleibt meine Frage bestehen. Woher nimmt das Script die Werte von Temperatur Kessel, wenn nicht von Sensor 2???
Oder muss ich Temperatur Kessel mit Sensor 2 verknüpfen???
Ich begreif die ganze Logik dahinter nicht wirklich habe ich das Gefühl... -
Hallo Zusammen,
da ich auch gerne in meiner Freizeit das Bier brauen tätige wollte ich auch die Möglichkeiten über den ioBroker steuern und anzeigen.
Gibt es zwischenzeitlich einen Skript zum Bier brauen das ich nutzen kann?
Danke und Grüße,
Claus -
@claus1993
Habe hier einen Post erstellt, in dem ein funktionierendes Blockly zum Maischen enthalten ist.
https://forum.iobroker.net/topic/51871/blockly-zum-maischen?_=1643352038169Grüße,
Marc