NEWS
Rolladensteuerung errechnen des Standes
-
Also das ganze über die Zeit zu bestimmen ist recht simpel und wenn mans schon mit nem Sonoff macht, gibt's von StefanBode eine Fork der Tasmota, da braucht man nicht mal ein Script dazu, weil das schon die Tasmota intern macht. Einziges Problem, der Sonoff Adapter verwendet das MQT Topic der aktuellen Position des Rollladen von Tasmota nicht und legt folglich auch keinen DP für den aktuellen Stand an. Dazu habe ich aber auch schon ein Issues auf Github geschrieben, allerdings hat sich dazu leider noch keiner geäußert. `
über die Zeit fahre ich schon die Position an. Wollte mit den Fenterkontakten eine Bestätigung haben, dass auch wirklich die Rollos unten sind. Kommt schon mal vor, dass ein Rollo nicht auslöst und einfach oben bleibt (z.B. wenn eine Gruppe Down gesetzte wurde). Wenn der Fensterkonakt durch die seitlich angebrachten Magnete auslöst, kann ich mir sicher sein, dass das Rollo wirklich die Position geändert hat.
Gruß,
-
-
Hallo
ich habe etwas gebraucht um nun alles zu programieren.
Man braucht unter Objekten 4 Variablen. Im meinen fall sind dies:
Rollo_Bad (Art:Zahl 0-100)
Rollo_Bad_Richtung (Art: Zeichenkette auf/zu)
Rollo_Bad_Schalter (Art: Logikwert)
Rollo_Bad_Soll (Art:Zahl 0-100)
https://www.bilder-upload.eu/bild-b720ea-1541794454.png.html ~~Die "Schalter" sind:
Rollade Bad zu
Rollade Bad auf
zum Importieren im Skript:
` > <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml"><block type="on" id="-hk[!J4+#8`b#1q/4]@1" x="-37" y="-337"><field name="OID">admin.0.Rollo_Bad_Soll</field>
<field name="CONDITION">ne</field>
<statement name="STATEMENT"><block type="timeouts_clearinterval" id="f]HBYG*K(=-v.dS-g?VD"><field name="NAME">unsereSchleife</field>
<next><block type="comment" id="awGc9FNE!0|4f8r7)jJk"><field name="COMMENT">Falls Schalter ein = ein dann schalte Motor aus und Schalter aus</field>
<next><block type="controls_if" id="MCuL(lHsfnfQDj}DV2hl"><value name="IF0"><block type="get_value" id="-Gl~mJe;TN+k%(Iw^x(2"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad_Schalter</field></block></value>
<statement name="DO0"><block type="update" id="Zm5UmM@kZow{jwL]./^:"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Neues_Objekt</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="V2D}sN!5!T{+UoJzc%PS"><field name="BOOL">TRUE</field></block></value>
<next><block type="controls_if" id="tYCDMgP;ffC`1d6h(;u)"><mutation else="1"></mutation>
<value name="IF0"><block type="logic_compare" id="zTc+?_%f1zN{5?7Txyy;"><field name="OP">EQ</field>
<value name="A"><block type="get_value" id="f/%q~^7}G8Jet6M,oT+~"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad_Richtung</field></block></value>
<value name="B"><block type="text" id="1|b`xNcJE)8E5oc[f5O]"><field name="TEXT">zu</field></block></value></block></value>
<statement name="DO0"><block type="toggle" id="{A:CeIf?#uKBIf{9NhxX"><mutation delay_input="false"></mutation>
<field name="OID">broadlink.0.learnedSignals.Rollade Bad zu</field>
<field name="WITH_DELAY">FALSE</field></block></statement>
<statement name="ELSE"><block type="toggle" id="|9,:zHv*YDCAt~Bsu9mI"><mutation delay_input="false"></mutation>
<field name="OID">broadlink.0.learnedSignals.Rollade Bad auf</field>
<field name="WITH_DELAY">FALSE</field></block></statement>
<next><block type="control" id="]Rd=9XO%jtM8E6.x*yGD"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Schalter</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="[[M#TNHtXz}W6CB}d+N-"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></statement>
<next><block type="variables_set" id="B7o=+#^;E:inQxfXLXx="><field name="VAR">counter</field>
<value name="VALUE"><block type="get_value" id="Yd,v6dy3n+o#NB`g:8~Q"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad</field></block></value>
<next><block type="comment" id="ut(S}7vCe;0gXa;1A86;"><field name="COMMENT">Prüfe Richtung / Schalte Motor / Schalte Schalter / Speicher Richtung</field>
<next><block type="controls_if" id="}Tc[x6-r-We.*]#7;jPP"><mutation elseif="1"></mutation>
<value name="IF0"><block type="logic_compare" id="h(U(pOI6[8Bcr{J_Mldf"><field name="OP">LT</field>
<value name="A"><block type="get_value" id="V6d+wMK88Xr?le}6U#o!"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad_Soll</field></block></value>
<value name="B"><block type="get_value" id="kHzj#w6l2ceAJ1|wBUlv"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad</field></block></value></block></value>
<statement name="DO0"><block type="variables_set" id="!wFi^Iw0}bFVGTf}r?/z"><field name="VAR">richtung</field>
<value name="VALUE"><block type="math_number" id="S:#VTX+#[dIZU:0WG=b{"><field name="NUM">-1</field></block></value>
<next><block type="toggle" id="J(-*+5mgUSiz%!E@ljs7"><mutation delay_input="true"></mutation>
<field name="OID">broadlink.0.learnedSignals.Rollade Bad zu</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">700</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<next><block type="control" id="Z%#8`8Vzxg6{tDeNP[x_"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Schalter</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="MmWqv/n8#k73vUL`BpYr"><field name="BOOL">TRUE</field></block></value>
<next><block type="update" id=";%p[[s2Gwwk+aVAgRwO#"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Richtung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="text" id="Xd-dwd4As,E1C.:p.!Js"><field name="TEXT">zu</field></block></value></block></next></block></next></block></next></block></statement>
<value name="IF1"><block type="logic_compare" id="JBN*igDsyu|e0Am!R8Yn"><field name="OP">GT</field>
<value name="A"><block type="get_value" id="bNZ8{hmyy!w(iS)DjqQ_"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad_Soll</field></block></value>
<value name="B"><block type="get_value" id="2Ye37!J|Sunn8{+g/Kjc"><field name="ATTR">val</field>
<field name="OID">admin.0.Rollo_Bad</field></block></value></block></value>
<statement name="DO1"><block type="variables_set" id="o0nK17BbK[o8j|Jsmc_1"><field name="VAR">richtung</field>
<value name="VALUE"><block type="math_number" id="Ns-Qe5gi1*(/nHScjWkZ"><field name="NUM">1</field></block></value>
<next><block type="toggle" id="lpj{5gS?^hg~4M,fdfk|"><mutation delay_input="true"></mutation>
<field name="OID">broadlink.0.learnedSignals.Rollade Bad auf</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">700</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<next><block type="control" id="TfpbWV?LIl[Df%~^/~rQ"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Schalter</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="[D^-5I=-zE0Qc;wW|xo/"><field name="BOOL">TRUE</field></block></value>
<next><block type="update" id="}b|}p_*@pc(#Xu=0;tW8"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Richtung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="text" id="b
;KFd90|IQEuaN(?R;"><field name="TEXT">auf</field></block></value></block></next></block></next></block></next></block></statement><next><block type="comment" id="b_;Ju]{ELW;i]{59,fG]"><field name="COMMENT">Zustand aktualisieren und Ende wenn Soll erreicht oder max (min fehlt noch)</field>
<next><block type="timeouts_setinterval" id="w]h?In(s!~d]I7QmfTd;"><field name="NAME">unsereSchleife</field>
<field name="INTERVAL">700</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT"><block type="math_change" id="Fqr?I-7F()/dgF}wm:k9"><field name="VAR">counter</field>
<value name="DELTA"><shadow type="math_number" id=":c]qbMuR*(79!fD=t8l*"><field name="NUM">1</field></shadow>
<block type="variables_get" id="GNi4=q!R,!_Y*NJe7mcj"><field name="VAR">richtung</field></block></value>
<next><block type="control_ex" id="+BX6DN?T!Mk~`;W-Gzdf"><field name="TYPE">true</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="OID"><shadow type="field_oid" id="{r/:GqC=J.*~jm;B.EmA"><field name="oid">admin.0.Rollo_Bad</field></shadow></value>
<value name="VALUE"><shadow type="logic_boolean" id="uPjr7F%~]C)m-@x#fCY8"><field name="BOOL">TRUE</field></shadow>
<block type="variables_get" id="4b2yl12okSme#F1|M5`r"><field name="VAR">counter</field></block></value>
<value name="DELAY_MS"><shadow type="math_number" id="K@BUQtiO,0ixd^%~xX|y"><field name="NUM">0</field></shadow></value>
<next><block type="controls_if" id="|PmR)v+f1fTNuF-jwq/t"><value name="IF0"><block type="logic_compare" id=".=a8}2|b=IagAT(IcHvn"><field name="OP">EQ</field>
<value name="A"><block type="variables_get" id="oJ]wUkRi305|L4Eb=R.7"><field name="VAR">counter</field></block></value>
<value name="B"><block type="get_value" id="NJ0i:.g}
8z8nK_iz~~"><field name="ATTR">val</field><field name="OID">admin.0.Rollo_Bad_Soll</field></block></value></block></value>
<statement name="DO0"><block type="controls_if" id="?)00a5]PBzo!.-e@uP8_"><mutation elseif="1"></mutation>
<value name="IF0"><block type="logic_compare" id="bK#T3t10hj|iY/ynh{#*"><field name="OP">EQ</field>
<value name="A"><block type="variables_get" id="}~P#d6He`.2OnQJpIQel"><field name="VAR">richtung</field></block></value>
<value name="B"><block type="math_number" id="j:d_/wiP}M^B^rF)@+~p"><field name="NUM">-1</field></block></value></block></value>
<statement name="DO0"><block type="toggle" id="]eWfOnW!.Vyqlz.RC?ku"><mutation delay_input="false"></mutation>
<field name="OID">broadlink.0.learnedSignals.Rollade Bad zu</field>
<field name="WITH_DELAY">FALSE</field>
<next><block type="control" id="(~oMiIm[VMzq!iJLS.zz"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Schalter</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="/wOr*aMbI~Y#+|`9Nk@k"><field name="BOOL">FALSE</field></block></value></block></next></block></statement>
<value name="IF1"><block type="logic_compare" id="u!^KI*te/sQ)-FCt`WEQ"><field name="OP">EQ</field>
<value name="A"><block type="variables_get" id=".rNO3Y}X4S;?1.5^MTCs"><field name="VAR">richtung</field></block></value>
<value name="B"><block type="math_number" id="MU`jx6Ns=o};Qvl!1o_7"><field name="NUM">1</field></block></value></block></value>
<statement name="DO1"><block type="toggle" id="Mq3c}.%ajCvNiDF-Ao83"><mutation delay_input="false"></mutation>
<field name="OID">broadlink.0.learnedSignals.Rollade Bad auf</field>
<field name="WITH_DELAY">FALSE</field>
<next><block type="control" id="%c|Ve@)S+w!iCqNEE.1N"><mutation delay_input="false"></mutation>
<field name="OID">admin.0.Rollo_Bad_Schalter</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="*jWSJ|l=0XP8-GUNjVCd"><field name="BOOL">FALSE</field></block></value></block></next></block></statement>
<next><block type="timeouts_clearinterval" id="DCt0zTxKV#udTsqNd90x"><field name="NAME">unsereSchleife</field></block></next></block></statement>
<next><block type="controls_if" id="WJDqh;fUDlnlZBuXoLp{"><value name="IF0"><block type="logic_compare" id="XeA0m#q.5UI%J1]jW6"><field name="OP">EQ</field>
<value name="A"><block type="variables_get" id="=h[@TF=f#}NWpW{ugFa["><field name="VAR">counter</field></block></value>
<value name="B"><block type="math_number" id="@|9RCDK(KI,3EB+w!y,+"><field name="NUM">101</field></block></value></block></value>
<statement name="DO0"><block type="timeouts_clearinterval" id="*Y6H)Sz]Vl717wjw7LP#"><field name="NAME">unsereSchleife</field></block></statement></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement>
<next><block type="comment" id="q?Sa)Lu@zN|9etj.9YG}"><field name="COMMENT">rolllade variabel</field></block></next></block></xml> `
Ich hoffe ihr könnt was damit anfangen.
Rollo_Bad_Soll (Art:Zahl 0-100) kann nun in Vis eingefügt werden und schon funktioniert es. :D~~
5992_rolllade.png@snotech mir gefällt deine Programmierung und würde das gerne mal ausprobieren und damit rumspielen. ich kann nur leider das Script nicht importieren. Ich bekomme immer den Fehler Error: textToDom was unable to parse. Ich muss doch nur deinen Code in ein neues Blockly importieren oder?
-
@snotech mir gefällt deine Programmierung und würde das gerne mal ausprobieren und damit rumspielen. ich kann nur leider das Script nicht importieren. Ich bekomme immer den Fehler Error: textToDom was unable to parse. Ich muss doch nur deinen Code in ein neues Blockly importieren oder?
@ambo sagte in Rolladensteuerung errechnen des Standes:
Error: textToDom was unable to parse
Script wurde durch die Forumsumstellung leider komplett vermurkst. Kann es auch nicht mehr reparieren.
Vielleicht stellt es @snotech nochmal rein. -
@ambo sagte in Rolladensteuerung errechnen des Standes:
Error: textToDom was unable to parse
Script wurde durch die Forumsumstellung leider komplett vermurkst. Kann es auch nicht mehr reparieren.
Vielleicht stellt es @snotech nochmal rein.@Negalein vielen Dank
aber @snotech war wohl seit 1 Jahr nicht mehr online :-( schade.
Hat sonst wer zufällig dieses Skript?Ich suche nach einer Lösung, dass ich einen Prozentwert eingebe und die Jalousie fährt dann ungefähr dort hin. - Nice to have wäre eine Neigung der Lamellen am Schluss der Fahrt.
Meine Steuerung kann leider nur hoch und runter - aber immerhin wirft sie einen errechneten Positionswert zum auslesen aus. -
@Negalein vielen Dank
aber @snotech war wohl seit 1 Jahr nicht mehr online :-( schade.
Hat sonst wer zufällig dieses Skript?Ich suche nach einer Lösung, dass ich einen Prozentwert eingebe und die Jalousie fährt dann ungefähr dort hin. - Nice to have wäre eine Neigung der Lamellen am Schluss der Fahrt.
Meine Steuerung kann leider nur hoch und runter - aber immerhin wirft sie einen errechneten Positionswert zum auslesen aus.@ambo sagte in Rolladensteuerung errechnen des Standes:
Hat sonst wer zufällig dieses Skript?
der Fehler liegt in der ersten Zeile, jetzt lässt es sich wieder importieren. Ich kann allerdings keine Gewähr für die Richtigkeit übernehmen, noch irgendwelchen Support, habe das nur wieder importierbar gemacht :-)

-
@ambo sagte in Rolladensteuerung errechnen des Standes:
Hat sonst wer zufällig dieses Skript?
der Fehler liegt in der ersten Zeile, jetzt lässt es sich wieder importieren. Ich kann allerdings keine Gewähr für die Richtigkeit übernehmen, noch irgendwelchen Support, habe das nur wieder importierbar gemacht :-)
