NEWS
Zeitgesteuerte Aktionen per iCal
-
@dirkhe Danke erst mal ...
Aber ich möchte schon bei iCal bleiben da ich viele Sachen über diesen Adapter schalte.
-
Nur mal so gedacht, wenn du aus dem Event alle Leerzeichen löschst und dann den String nach der Zeichenkette durchsuchst, sollte es funktionieren.
-
@tt-tom Ich denke das das meine Fähigkeiten übersteigt.
-
-
probiere mal das hier, musst nur in Zeile 3 und 4 deine ical-Datenpunkte anpassen und in Zeile 10 den Suchstring
var Termin_Liste, i, Datum, Event2; if (getState("ical.0.data.count").val > 0) { Termin_Liste = getState("ical.0.data.table").val; for (var i_index in Termin_Liste) { i = Termin_Liste[i_index]; Datum = formatDate(getDateObject(getAttr(i, '_date')), "DD.MM."); Event2 = getAttr(i, 'event').replace(/ /g, ''); console.log(Event2) if (Event2.search('8-19') >= 0) { console.log( 'etwas gefunden') } } };
-
@tt-tom Danke für deine Mühe ... aber was muss ich damit machen ?
-
Als JS-Script im JavaScript Adapter anlegen. Und die beiden Datenpunkte ggf. anpassen.
Wenn der String „8-19“ in dem Event vorkommt, sollte eine Meldung im log stehen.
-
@tt-tom Das scheint zu funktionieren.
-
@dr-pie Werden da keine Satzzeichen erkannt ???
Im Kalender steht 8-18.30
Im Event steht 8-18.30
Aber in dem Objekt steht 8-1830 false drin ...
Ja ist klar weil er 8-1830 nichts finden kann ... aber er soll danach gar nicht suchen.
Muss ich das verstehen ???
-
Ok ... Fehler gefunden
-
Hi all...
ich kämpfe auch mit den Datenpunkten im ICAL und auch im Webcal....ist eigentlich egal, bei beiden komm ich nicht weiter....
Im webcal steht im Feld "Next" ein Datum mit Uhrzeit im Format "2023-07-08T12:00:00.000Z" drin
Ich möchte nun an genau dieser Uhrzeit per Script eine Aktion ausführen wo eine bestimmte Aktion ausgeführt wird....am besten mit Blockly....
Mir fehlt komplett der Ansatz das Datum und die Uhrzeit aus diesem Wert zu "extrahieren" und hiermit eine Aktion auszuführen....
Vielleicht bringt mich jemand auf die richtige Spur oder hat sogar ein BeispielVielen Dank
Grüße
Sunny -
-
in webcal kannst du auch au now reagieren, das wird gefüllt, solange das/ein event aktiv ist
-
ja, ich weiß. In iCal auch über Event.
Ich wollte damals mit mein Script / Blockly auf den Startpunkt noch ein Offset setzen und habe mit Cron, ein eigenen Startzeitpunkt erstellt.
Sollte für Sunny9999 nur eine Alternative sein. -
Top Danke für den Hinweis Leute...funktioniert soweit fast alles.....
wo ich grad noch hänge ist das er den Auslöse Begriff nicht unscharf sucht im Json.....Also im Kalender steht zum Beispiel "Maier Test Termin" und ich will das er auf den Begriff "Test" reagiert......
Der Search-String im Blockly kann man aber nicht auf "unscharf" stellen....<block xmlns="https://developers.google.com/blockly/xml" type="schedule" id="z{@OLN{13fmdNB+9k=9-" x="-1230" y="-4254"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="s{O@u(vCegojhk;KP6}7"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="Uhh+7,e+?rb8.x$8HuI("> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="gSnJPI78Miutzs9-ov7["> <field name="ATTR">val</field> <field name="OID">ical.1.data.count</field> </block> </value> <value name="B"> <block type="math_number" id="uhvnvX(a[zRBU%1w%IN="> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="^Aq!k:!_9H%{)mO4ne2V"> <field name="VAR" id="KCN$MPYJlxuGzS.7Ja@P">heute</field> <value name="VALUE"> <block type="time_get" id="*@:Q;0%qf!_p?d(u6A$O"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.</field> </block> </value> <next> <block type="variables_set" id="FzA:230`qG@2iYh+6TH7"> <field name="VAR" id="^0s1Y6_rW~Pl4?!U2Kbw">Termin_Liste</field> <value name="VALUE"> <block type="get_value" id="~y+OcjCb?V]jD@^ZEBKW"> <field name="ATTR">val</field> <field name="OID">ical.1.data.table</field> </block> </value> <next> <block type="controls_forEach" id="xqz]ozAta~Xa~5`6xx2X"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> <value name="LIST"> <block type="variables_get" id="0;H~|sB0%R?AV@iV$67A"> <field name="VAR" id="^0s1Y6_rW~Pl4?!U2Kbw">Termin_Liste</field> </block> </value> <statement name="DO"> <block type="variables_set" id="-Jtv=loBvf3CQrB.Q[fh"> <field name="VAR" id="r)R7ElzIwsQzAExJ39Rc">Datum</field> <value name="VALUE"> <block type="convert_from_date" id="ED_v@5F3Q8Ve-I6N}ob0"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">DD.MM.</field> <value name="VALUE"> <block type="get_attr" id="vld`BPPVn..A3v$SV+hp"> <value name="PATH"> <shadow type="text" id="%?=Sw9pgmfK0;QVm~Mh."> <field name="TEXT">_date</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="_T*/6*329jDb8C?b(ed:"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="JSdagWWUyCyk^9G|:]QR"> <field name="VAR" id="FuP#9*ar8|#y(EmLw1O@">Terminstart</field> <value name="VALUE"> <block type="convert_from_date" id="87Z@y1/4C[=chVUU7bqR"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="get_attr" id="b7eAY2a6tx,$;n+{UG~/"> <value name="PATH"> <shadow type="text" id="[n/c[h=L~|FOSY6(rgjg"> <field name="TEXT">_date</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="^f*h8zCXV8,6m-U.sh2e"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="*U,#Xunt$8,MGt7:+eA?"> <field name="VAR" id="Ee7TIwjEBbpYnCeIo)-}">Terminende</field> <value name="VALUE"> <block type="convert_from_date" id="YFi!O.Y)r.S0L:}kv[_4"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">hh:mm</field> <value name="VALUE"> <block type="get_attr" id="AGvr6STc~?$kZ+;3ZbT0"> <value name="PATH"> <shadow type="text" id="2gvmC(Yg+`yR%bOkN!1W"> <field name="TEXT">_end</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="+5uEAGI4.[pCk#gSu#lV"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="Yfhyp/0ddmwC^5Kt;?nE"> <field name="VAR" id="?38yQpVW(CZ^t1Av97-l">Ereignis</field> <value name="VALUE"> <block type="get_attr" id="sPf/)sh/AZNM#KH6Mo+3"> <value name="PATH"> <shadow type="text" id="+;MnA/7B#67es7j@gkZn"> <field name="TEXT">event</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="NWE(l1dNGM~v6l2E+ReO"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> <next> <block type="controls_if" id="0:jb$NU?HQ]vtg3lXBS,"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="-~3n2j4yd)*lThuDrCPB" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="8bEkJEo845(.2K(P`]V#"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="xU;;9]IecsDbqHS-MOo_"> <field name="VAR" id="r)R7ElzIwsQzAExJ39Rc">Datum</field> </block> </value> <value name="B"> <block type="variables_get" id="o/,l`vE?woFP[sd|{TIv"> <field name="VAR" id="KCN$MPYJlxuGzS.7Ja@P">heute</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="y)77o,eInzp#G361V$mO"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="Io=S1oo0mXt@JU%+[$`;"> <field name="END">FIRST</field> <value name="VALUE"> <block type="get_attr" id="uZBo-QxFxd+Hm3s*Me0P"> <value name="PATH"> <shadow type="text" id="Nk4GM3;AbjLM9`Q$$i]h"> <field name="TEXT">_object.summary</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="Q1Lsje4KC224pE(+Zh+}"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> <value name="FIND"> <shadow type="text"> <field name="TEXT">abc</field> </shadow> <block type="text" id=")][?l|q[1$`;OvjvX0mc"> <field name="TEXT">Maier Besichtigung Test</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="sdiF$d$i57bESg(jthF`"> <field name="VAR" id="bz1yhW/i%Z%CCG8gWCj/">Ereignis1</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="11?7nZ1hIrmZ.TBo}M2["> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> <value name="VALUE"> <block type="convert_from_date" id="Pt(,(dCw}qO;G+So`UNe"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="true"></mutation> <field name="OPTION">wdt</field> <field name="LANGUAGE">de</field> <value name="VALUE"> <block type="get_attr" id="uu*x^$C+max`bDq11zcE"> <value name="PATH"> <shadow type="text" id="@EBoaV{$5ti/JUJwM]|v"> <field name="TEXT">_date</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="hJhmnzAIA{Ism?r+4LVV"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> </block> </value> <next> <block type="math_change" id="gV8wq{Nun_+a,vG`awTm" disabled="true"> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> <value name="DELTA"> <shadow type="math_number" id="B{d/G3o1B@f4*x-K,??2"> <field name="NUM">1</field> </shadow> <block type="math_number" id="(LooCkJ.dC,=JG$3G{g-"> <field name="NUM">1</field> </block> </value> <next> <block type="debug" id="p`qGxXiKqYxanOIZ`}=Z"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="(G?%BD=ZZfx^:vN=p9Be"> <mutation items="7"></mutation> <value name="ADD0"> <block type="variables_get" id="MH+gi^$fs)zkjNi,z$@y"> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> </block> </value> <value name="ADD1"> <block type="text" id="rj}4`+$cX0[e7~5at%FN"> <field name="TEXT"> </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="2Wq;t5.OsYo4N`2jZa8W"> <field name="VAR" id="r)R7ElzIwsQzAExJ39Rc">Datum</field> </block> </value> <value name="ADD3"> <block type="text" id=":12mVI3WXnIbN,ogO=%,"> <field name="TEXT"> </field> </block> </value> <value name="ADD4"> <block type="variables_get" id="JH[wFntXN:!),p`i8$d-"> <field name="VAR" id="?38yQpVW(CZ^t1Av97-l">Ereignis</field> </block> </value> <value name="ADD5"> <block type="variables_get" id="p6RTYe}*q%s2UHt2Tv1s"> <field name="VAR" id="FuP#9*ar8|#y(EmLw1O@">Terminstart</field> </block> </value> <value name="ADD6"> <block type="variables_get" id="!.tc3nD]Fg]qrRlpt:2Z"> <field name="VAR" id="Ee7TIwjEBbpYnCeIo)-}">Terminende</field> </block> </value> </block> </value> <next> <block type="telegram" id="r[q8++tZJi!JbvVh./Sq"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="7s)8U~ZI,MzR{6k[N3bm"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="J/h*d#YU@ppahr_l^cBe"> <mutation items="9"></mutation> <value name="ADD0"> <block type="variables_get" id="#NZbFqj2xHaWqoraMjMa"> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> </block> </value> <value name="ADD1"> <block type="text" id=":xZRJ7o+[_ZKaTqswN*{"> <field name="TEXT"> </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="@Ri~@*z7i/z{7zeVfh!r"> <field name="VAR" id="r)R7ElzIwsQzAExJ39Rc">Datum</field> </block> </value> <value name="ADD3"> <block type="text" id="}]]nrr$(gL0^ll8VBr.-"> <field name="TEXT"> </field> </block> </value> <value name="ADD4"> <block type="variables_get" id="i]AAlj$ml56~*n{[g-(#"> <field name="VAR" id="bz1yhW/i%Z%CCG8gWCj/">Ereignis1</field> </block> </value> <value name="ADD5"> <block type="text" id="|=7*}?H$35WmN{z%4IZ_"> <field name="TEXT"> </field> </block> </value> <value name="ADD6"> <block type="variables_get" id="3o6Bo_^a_EPPP[!~;utU"> <field name="VAR" id="FuP#9*ar8|#y(EmLw1O@">Terminstart</field> </block> </value> <value name="ADD7"> <block type="text" id="fECM%gkBKktET-^kN%,;"> <field name="TEXT"> </field> </block> </value> <value name="ADD8"> <block type="variables_get" id="+/$9L8Uf}[vH!qZ.@$Tc"> <field name="VAR" id="Ee7TIwjEBbpYnCeIo)-}">Terminende</field> </block> </value> </block> </value> <next> <block type="schedule_create" id="Qq-y?eCTs3aorlCqrX?+"> <field name="NAME">schedule2</field> <value name="SCHEDULE"> <shadow type="field_cron"> <field name="CRON">* * * * *</field> </shadow> <block type="cron_builder" id="y*)NQ_!Evl`~@AU{e767"> <mutation xmlns="http://www.w3.org/1999/xhtml" seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text" id="%rM_*g2TNG8HHEPqY|8$"> <field name="TEXT">*</field> </shadow> </value> <value name="MONTHS"> <shadow type="text" id="`S4iEzF}ZF!(D3J#|SYw"> <field name="TEXT">*</field> </shadow> </value> <value name="DAYS"> <shadow type="text" id="|f?o5#Z+21T-Wp9FQLR5"> <field name="TEXT">*</field> </shadow> </value> <value name="HOURS"> <shadow type="text"> <field name="TEXT">*</field> </shadow> <block type="math_round" id="O:j*_`rAJf7I15r1I(n+"> <field name="OP">ROUNDDOWN</field> <value name="NUM"> <shadow type="math_number"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="eu#^:rA#+yT/gP5V2o]q"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="4M~.9+kdUC5/,ybqePEd"> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> </block> </value> <value name="B"> <shadow type="math_number" id="VM38kMWAh/u*/|`D=6|$"> <field name="NUM">60</field> </shadow> </value> </block> </value> </block> </value> <value name="MINUTES"> <shadow type="text"> <field name="TEXT">*</field> </shadow> <block type="math_modulo" id="UZLQG{60~~UNQRVc$Y}i"> <value name="DIVIDEND"> <shadow type="math_number"> <field name="NUM">64</field> </shadow> <block type="variables_get" id="TXW._`B{Kh%JEH0f^;Gv"> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> </block> </value> <value name="DIVISOR"> <shadow type="math_number" id="9MDZl1puug5yl+]nnsVM"> <field name="NUM">60</field> </shadow> </value> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="control" id="J?hLldD{vFC8rpsWHtuZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Veranstaltung.Zeitsteuerung.Besichtigung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="X=WDR_}/!(S5|a(Ec?lH"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id=":qf[,L9jD+Us1D2@YtO."> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Veranstaltung.Zeitsteuerung.Veranstaltungsbeginn</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="8V{lwhi_`;{_Gu.8Y9o$"> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_flow_statements" id="t8#ggOwFK1/#_]gFz)!a"> <field name="FLOW">BREAK</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="T,X{s|Xvg.mv^3CWFGl`"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="SWq/+1W]`MkMAy.OCFUD"> <field name="TEXT">Heute keine Besichtigungen</field> </shadow> </value> <next> <block type="control" id="-I)eG9!]Fzh4zMI5CRZo"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Veranstaltung.Zeitsteuerung.Besichtigung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="fAqrns67,V#lKtAMLNt^"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="%rdV8Q1ecK=I[b3Yn*J;"> <field name="INSTANCE">.1</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="+Mza!exkhaie[2(N!x]d"> <mutation items="10"></mutation> <value name="ADD0"> <block type="variables_get" id="CZa;HskX?7OooUgu2uE["> <field name="VAR" id="2BQZ5yirmbeTJ+f|Mc+{">Startzeit</field> </block> </value> <value name="ADD1"> <block type="text" id="=AuN0tE~X;Zi.hu}!~AT"> <field name="TEXT">Keine </field> </block> </value> <value name="ADD2"> <block type="variables_get" id="{H.v4E`jH~WxdR^rlAPV"> <field name="VAR" id="r)R7ElzIwsQzAExJ39Rc">Datum</field> </block> </value> <value name="ADD3"> <block type="text" id="%Zz!PC9#oo~jm?wHKPh|"> <field name="TEXT"> </field> </block> </value> <value name="ADD4"> <block type="variables_get" id="d]~#08xtqp/uz9/@vu4m"> <field name="VAR" id="?38yQpVW(CZ^t1Av97-l">Ereignis</field> </block> </value> <value name="ADD5"> <block type="text" id="vhqFv8_F!Yty~pQxF`Xd"> <field name="TEXT"> </field> </block> </value> <value name="ADD6"> <block type="variables_get" id="`$A`yBygdqkC$6#trxd:"> <field name="VAR" id="FuP#9*ar8|#y(EmLw1O@">Terminstart</field> </block> </value> <value name="ADD7"> <block type="text" id="a[9YjJ$dF6fuPPvB=z3|"> <field name="TEXT"> </field> </block> </value> <value name="ADD8"> <block type="variables_get" id="tIi+x9J5RC8%PQh3)@bw"> <field name="VAR" id="Ee7TIwjEBbpYnCeIo)-}">Terminende</field> </block> </value> <value name="ADD9"> <block type="get_attr" id="EG+4%HbgP],3wD5FFA~e"> <value name="PATH"> <shadow type="text" id="_*/zR5u3DJfcs*.NKA{0"> <field name="TEXT">_object.summary</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="vb2lJZvtu)h@1~;kwfIe"> <field name="VAR" id="1RiW^|D=/gzaQIH4QWoI">i</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="~w3==77x~ORuaBm`Jke|"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="6yes,ivbnzUhFkxLG5#V"> <field name="TEXT">Heute keine Besichtigungen</field> </shadow> </value> <next> <block type="schedule_clear" id="8Ccq@ce=k2LL}Sy~,JzP"> <field name="NAME">heute</field> <next> <block type="control" id="ec.S;u]E^7P8^45EDaGd"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Veranstaltung.Zeitsteuerung.Besichtigung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="*=glkq#N5KuV1enitV.*"> <field name="NUM">9</field> </block> </value> <next> <block type="schedule_clear" id="o[4)HkjK?($#K$pa*/Wd"> <field name="NAME">schedule2</field> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block>
Die Telegramblöcke hab ich nur mal zum Testen drin....Habt ihr dan ne Idee wie das mit Blockly "unscharf" geht ?
Danke
Sunny -