NEWS
Rolladensteuerung errechnen des Standes
-
Die Darstellung der Rolldadenposition habe ich über ein an der Rollade befestigten Fensterkontakt und seitlich an der Führungsschiene angebrachte Magnete realisiert. Fährt das Rollo runter, startet ein Skript und zählt die abgefahrenen Magnete. Anschließend wird die Position in VIS über das hqwidget Window and Shutter dargestellt. Das funktioniert soweit auch ganz gut… `
Du Fuchs!! Das finde ich super genial,
du hast den Kontakt aussen am Rolladen angebracht? Welche hast du genutzt und wie siehts mit der Batterie Laufzeit aus, mit Hinblick auf Minustemperaturen im Winter
-
Inerreasnnter Ansatz mit den Fensterkontakt aber is dies nicht zu kostenintensiev?
Wie viele Kontakte hast du den an einer Rollade verbaut?
Mit den Variabelen wäre es doch einfacher die zu trennen.
Gruß
SNO `
ein Fensterkontakt (Xiaomi) und an der Seite 4 Magnete geklebt die beim vobeifahren des Rollos den Fensterkontakt auslösen.
Zum trennen der Variablen, wüsste ich im Moment nicht wie. Über das Rolladen-Widget habe ich momentan die Ausgabe und möchte in Zukunft darüber auch das Rollo steuern… sprich ich hätte eine zweite Variable. Wie soll das gehen?
Gruß
-
Die Darstellung der Rolldadenposition habe ich über ein an der Rollade befestigten Fensterkontakt und seitlich an der Führungsschiene angebrachte Magnete realisiert. Fährt das Rollo runter, startet ein Skript und zählt die abgefahrenen Magnete. Anschließend wird die Position in VIS über das hqwidget Window and Shutter dargestellt. Das funktioniert soweit auch ganz gut… `
Du Fuchs!! Das finde ich super genial,
du hast den Kontakt aussen am Rolladen angebracht? Welche hast du genutzt und wie siehts mit der Batterie Laufzeit aus, mit Hinblick auf Minustemperaturen im Winter `
Den Kontakt habe ich von der Innenseite angebracht, was die Batterielaufzeit angeht, kann ich dir noch nichts sagen. Habe das ganze System erst vor zwei Monaten Stück für Stück aufgebaut und die Batterien der Fensterkontakte sind noch recht frisch. Frag mich im Frühjahr noch mal ;)
-
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 :-)
