NEWS
Rollladen steuern mit HM-Wired 12/7-Modulen und Blockly
-
Hallo Forum,
ich ziehe mir hier sehr viele Infos zum Umsetzen in meinem System heraus und möchte hier mal meine Steuerung der Rollladen mit Wired 12/14-Modulen weitergeben.
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block id="e9}yC,gRGz%yh3+D(@Qh" type="astro" x="38" y="-187"><field name="TYPE">dawn</field>
<field name="OFFSET">4</field>
<statement name="STATEMENT"><block id="3PHvM;}5ExNNaYyAlmkO" type="variables_set"><field name="VAR">morgens_Hoch</field>
<value name="VALUE"><block id="d_#OZr@~/i{Vx~R.=Fo(" type="math_number"><field name="NUM">1</field></block></value>
<next><block id="Vg?TEFnQf+F7|k?zcVO" type="procedures_callnoreturn"><mutation name="Trigger"></mutation> <next><block id="OCH3.k43Gr(b].{:#drS" type="timeouts_settimeout"><field name="NAME">Reset_Hoch</field> <field name="DELAY">2000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block id="(S(39
BS/``R9S?)3^.b" type="variables_set"><field name="VAR">morgens_Hoch</field>
<value name="VALUE"><block id="W[7C9y.4cp1p|ZFl1IfA" type="math_number"><field name="NUM">0</field></block></value></block></statement></block></next></block></next></block></statement></block>
<block id="+4W.LgO9lhLI[#DznPbK" type="astro" x="413" y="-187"><field name="TYPE">dusk</field>
<field name="OFFSET">4</field>
<statement name="STATEMENT"><block id="bMJb@WnCxsn7rSfe0%8h" type="variables_set"><field name="VAR">abends_Runter</field>
<value name="VALUE"><block id="F?,pxCmHuA*.#,cOF{[n" type="math_number"><field name="NUM">1</field></block></value>
<next><block id="QlpCFv35}AeXumFT_@Q|" type="procedures_callnoreturn"><mutation name="Trigger"></mutation>
<next><block id="DL|JSTp.Hd3v-qC!JR}" type="timeouts_settimeout"><field name="NAME">Reset_Runter</field>
<field name="DELAY">2000</field>
<field name="UNIT">ms</field>
<statement name="STATEMENT"><block id="EzFm@J@OYUfWG!;N}~^" type="variables_set"><field name="VAR">abends_Runter</field>
<value name="VALUE"><block id="3RS_w~V)GM@j-vkZi}+`" type="math_number"><field name="NUM">0</field></block></value></block></statement></block></next></block></next></block></statement></block>
<block id="o.Sy;o2hZBi#d~v]vcdR" type="on" x="38" y="13"><field name="OID">hm-rpc.1.MEQ1534364.4.PRESS_LONG</field>
<field name="CONDITION">any</field><statement name="STATEMENT"><block id="xLk?;3`HtGtVR5A9|ZY3" type="procedures_callnoreturn"><mutation name="Trigger"></mutation></block></statement></block>
<block id=":-0}C6cWZz1.9MWJD*c:" type="on" x="388" y="13"><field name="OID">hm-rpc.1.MEQ1534370.5.PRESS_LONG</field>
<field name="CONDITION">any</field><statement name="STATEMENT"><block id="iON+2g.c!IfNgUwHX,Oi" type="procedures_callnoreturn"><mutation name="Trigger"></mutation></block></statement></block>
<block id="BUov~oeL%f}mD@
!+dyy" type="procedures_defnoreturn" x="38" y="188"><field name="NAME">Trigger</field> <comment w="160" pinned="false" h="80">Beschreibe diese Funktion …</comment> <statement name="STACK"><block id="sHX9yIxLK6/c2Ut,Vcar" type="controls_if"><mutation else="1" elseif="1"></mutation> <value name="IF0"><block id="U9=b|Z6{=Q^Kq]]*;t~!" type="logic_operation"><field name="OP">OR</field> <value name="A"><block id="t*nwU)6PW4fX5;n^keU_" type="logic_operation"><field name="OP">AND</field> <value name="A"><block id="m#S+Sn3xvjvuS4A
9;z4" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="-I(=s}e!ooF)@hvLX,!" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Status</field></block></value> <value name="B"><block id="uRLA;}NrNT5aEfZc^pOK" type="math_number"><field name="NUM">0</field></block></value></block></value> <value name="B"><block id="2co]B=E/dGRWk^6D}OAj" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id=":6t;g0g(ZhHRBTf@2RKG" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field></block></value> <value name="B"><block id="T8IJfjM6|L*ZH1X-s@mg" type="math_number"><field name="NUM">0</field></block></value></block></value></block></value> <value name="B"><block id="e{1ql*TfSVR]0Y+jn/R:" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id="hX?+C
4DO+/IK(a^5uKq" type="variables_get"><field name="VAR">abends_Runter</field></block></value>
<value name="B"><block id="+kX!{?{?/e|IKO}{g8P" type="math_number"><field name="NUM">1</field></block></value></block></value></block></value> <statement name="DO0"><block id="GKJJi}/Iq
LyNP#]0ogd" type="control"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="=[yFxvcBQ9~mko6z0X8N" type="math_number"><field name="NUM">2</field></block></value>
<next><block id="-~vD0Xl^DlV^{Lrg:Y=" type="control"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="4raLJ~md3*58)[D(m%jb" type="math_number"><field name="NUM">1</field></block></value>
<next><block id=".lo9u!jVfI]{xjb?0+v" type="control"><mutation delay_input="false"></mutation>
<field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="gD,4HEYW-XR=ziDOsNBX" type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
<next><block id="~H|+nS.HI-idm=MW!]g?" type="control"><mutation delay_input="true"></mutation>
<field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field>
<field name="WITH_DELAY">TRUE</field>
<field name="DELAY_MS">250</field>
<field name="UNIT">ms</field>
<field name="CLEAR_RUNNING">FALSE</field>
<value name="VALUE"><block id="DKJ2r)jgd}5jXkn4Bny!" type="logic_boolean"><field name="BOOL">TRUE</field></block></value>
<next><block id="(:0LsdzaVQA0/A?YpD" type="timeouts_setinterval"><field name="NAME">Runter</field> <field name="INTERVAL">900</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block id="8G1~73^h{5G%T:DUmLx7" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="m:ShdOroe)re~4mv~)P8" type="math_arithmetic"><field name="OP">MINUS</field> <value name="A"><shadow id="Hlkn.1CqRba,AuT]jvQQ" type="math_number"><field name="NUM">1</field></shadow> <block id="{S|U@BtiL-nGO|I
-/;p" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value>
<value name="B"><shadow id="l-d=qe9;fitL9O|i~BC" type="math_number"><field name="NUM">1</field></shadow>
<block id="_kyf{~;LI-vXc58P):ZT" type="math_number"><field name="NUM">5</field></block></value></block></value>
<next><block id="4(CV{,zydV%Ogf0]M)aq" type="controls_if"><value name="IF0"><block id="@qh|)EcIVVZoRnEZJ_P." type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="k!a3h[(f6y=U+eYt7b:C" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value>
<value name="B"><block id="F4~Usn0E2_n|btT8Y6-?" type="math_number"><field name="NUM">0</field></block></value></block></value>
<statement name="DO0"><block id="R;y(DhcUE!_vOt8_BY~" type="control"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="aIm%Lysox~P_CMl/:NF(" type="math_number"><field name="NUM">0</field></block></value>
<next><block id="PP@W/{V9W@khG9@nlLux" type="control"><mutation delay_input="false"></mutation>
<field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="zY8Ua+.HWaD]ws{?=473" type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
<next><block id="e7H1@peb5eFWzX!Q7nT" type="timeouts_clearinterval"><field name="NAME">Runter</field></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement>
<value name="IF1"><block id="hF5V4t10b)j[w.YRMI=1" type="logic_operation"><field name="OP">OR</field>
<value name="A"><block id="NWL{dzob3/Lmhib7~R.{" type="logic_operation"><field name="OP">AND</field>
<value name="A"><block id="]xEdaWBpYk+E-72pIiy*" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="aoLD5I6g9=[K.N%juk1a" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Ankleide_Rollladen_Status</field></block></value>
<value name="B"><block id="))cz{kRX(q|3mIJ#b?-a" type="math_number"><field name="NUM">0</field></block></value></block></value>
<value name="B"><block id=")}Y%{WyriWaBAYH_V6v+" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="%-neE!%)##=xVo#rh1VB" type="get_value"><field name="ATTR">val</field>
<field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field></block></value>
<value name="B"><block id="l:NJ~OR^d^art27cb6S(" type="math_number"><field name="NUM">1</field></block></value></block></value></block></value>
<value name="B"><block id="8w]_2:lF:9622Xl5sp-" type="logic_compare"><field name="OP">EQ</field>
<value name="A"><block id="AvNfE@2d0)3Dd{7OvIxx" type="variables_get"><field name="VAR">morgens_Hoch</field></block></value>
<value name="B"><block id="3PI8N^Jb2],83(x12DaI" type="math_number"><field name="NUM">1</field></block></value></block></value></block></value>
<statement name="DO1"><block id="_1vK9,?s5.:GyLMi3el" type="control"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="HpVnu@a#eDf|/xw_yB." type="math_number"><field name="NUM">1</field></block></value> <next><block id="p}__~L%i8{wJg5(Z2e,0" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Ankleide_Rollladen_Richtung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="!nSucKjI+E;j9dsH8c5Q" type="math_number"><field name="NUM">0</field></block></value> <next><block id="svM!=FE5)+R87AM0X{[V" type="control"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="2RHLSve3Q0z_MJk}b9gT" type="logic_boolean"><field name="BOOL">FALSE</field></block></value> <next><block id="?m!(-C0=!eyu|||7+]~h" type="control"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">250</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block id="aCi:.;YdI~.R85xTQ3QB" type="logic_boolean"><field name="BOOL">TRUE</field></block></value> <next><block id="P#QMN;Drd@8cDY7s|dHk" type="timeouts_setinterval"><field name="NAME">Hoch</field> <field name="INTERVAL">950</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block id="g(AB@tgd#mv1oAMfIDkC" type="control"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block id="cojL4a;yllsiMY~lJCl1" type="math_arithmetic"><field name="OP">ADD</field> <value name="A"><shadow id="Hlkn.1CqRba,AuT]jvQQ" type="math_number"><field name="NUM">1</field></shadow> <block id="cVf?27sl+}=Y)Ytt;U:2" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value> <value name="B"><shadow id="l-d=q*e9;fitL9O|i~BC" type="math_number"><field name="NUM">1</field></shadow> <block id="G=):.J*xxpg;KPCb5NJi" type="math_number"><field name="NUM">5</field></block></value></block></value> <next><block id="8bAB}2,x3%KsJx]C(GK[" type="controls_if"><value name="IF0"><block id="T,7,MWS_QXTlr060m,Qy" type="logic_compare"><field name="OP">EQ</field> <value name="A"><block id="~gR2cg/J#RLxu6~___-]" type="get_value"><field name="ATTR">val</field> <field name="OID">javascript.0.Ankleide_Rollladen_Position</field></block></value> <value name="B"><block id=")?7pRI=(]aL(4[uFzU}n" type="math_number"><field name="NUM">100</field></block></value></block></value> <statement name="DO0"><block id="/x/*zg7Q
Y,3:u*/7Wrn" type="control"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="?!jU=SjrRdYD-[+cKfy4" type="math_number"><field name="NUM">0</field></block></value>
<next><block id="q9fr[F[^_NYc~_8xlwW" type="control"><mutation delay_input="false"></mutation>
<field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="REC88dnSG8xyitm?3.v." type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
<next><block id="P`3TfHTSorj{qb(b5D4" type="timeouts_clearinterval"><field name="NAME">Hoch</field></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></next></block></next></block></statement>
<statement name="ELSE"><block id="VxBrbT9[{[jx8Ud7prQ^" type="control"><mutation delay_input="false"></mutation>
<field name="OID">javascript.0.Ankleide_Rollladen_Status</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="MUlff.-(de,3iS:bVs@?" type="math_number"><field name="NUM">0</field></block></value>
<next><block id="IFxvl4ge1UoH)ui^_5jq" type="control"><mutation delay_input="false"></mutation>
<field name="OID">hm-rpc.1.MEQ0229887.13.STATE</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="OF)Ps:fiR*]-eyS{WvZ" type="logic_boolean"><field name="BOOL">TRUE</field></block></value>
<next><block id=".#^GrOvv%H}t@kY[:GA" type="control"><mutation delay_input="false"></mutation>
<field name="OID">hm-rpc.1.MEQ0229887.14.STATE</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block id="yYVPPy!,ltB8!=ZbGFci" type="logic_boolean"><field name="BOOL">FALSE</field></block></value>
<next><block id="tR#0!P[j?CJDN%{+:Ny[" type="timeouts_clearinterval"><field name="NAME">Runter</field>
<next><block id="lfnLt8H|umGtPYUKv+q~" type="timeouts_clearinterval"><field name="NAME">Hoch</field></block></next></block></next></block></next></block></next></block></statement></block></statement></block></xml>Hier wird die aktuelle Position über die Zeit berechnet, es sind für Hoch und Runter zwei verschiedene Zeiten "einstellbar". Habe dazu noch folgende Variablen angelegt. ![1455_einstellung_der_variablen1.png](/assets/uploads/files/1455_einstellung_der_variablen1.png) ![1455_einstellung_der_variablen2.png](/assets/uploads/files/1455_einstellung_der_variablen2.png) ![1455_einstellung_der_variablen3.png](/assets/uploads/files/1455_einstellung_der_variablen3.png) Hatte das Blockly Skript anfangs mit 1%-Schritten verwendet hier wurde es meinem NUC dann aber immer zuviel wenn er die Rollladen gemeinsam verfahren musste. Dies mache ich jetzt zusätzlich noch im Abstand von 1 MInute von Rollladen zu Rollladen. Eventuell kann dieses Skript jemand im Forum gebrauchen Gruß mhimc
-
danke fuers teilen :), koenntest du auch einen screenshot des block reinstellen das hielt (vor allem auf tapatalk) zum verstaendnis.
-
Hallo Dutchman,
hier die Blocklys.
Gruß
mhimc
-
Hallo my_home_is_my_castle
Wenn das wireless wäre gäbe es eine Katastrophe.
So kostet das nur Rechenleistung.
Aber funktioniert das auch?
Fährst Du nur rauf und runter?
Oder fährst Du auch mal 100% -> 20% -> 50% -> 20% -> 100%?
Hier war schon mal eine Diskussion. http://forum.iobroker.net/viewtopic.php … llo#p92152
Grüße
-
Hallo Rantanplan,
kannst du mir sagen warum es bei wireless eine Katastrophe wäre?
Hast du mir einen Tipp oder sogar ein Bsp., wie ich diese Funktion mit weniger Rechenleistung umsetze?
Funktioniert eigentlich ganz gut, ja. Zu Beginn hatte ich wie in deinem Link auch diskutiert, die gleiche Zeit für Runter und Hoch genommen, dies ist aber nach ein paar Tagen nicht mehr schön anzusehen . Anfangs hatte ich mit 1%-Schritten gearbeitet, jedoch kam nach einer Weile im Log die Meldung "….you are sending to fast". Dann habe ich es auf 5%-Schritte geändert und gleichzeizitg Bei der Astrosteuerung einen Verstz von je 1 Minute von Rollladen gemacht. Die manuelle Steuerung funktioniert "Runter-Stop-Hoch-Stop" usw..
Aktuell fahre ich automatisiert nur Hoch und Runter, dies möchte ich in nächster Zeit aber noch mit Szenen für z.B. Fernsehen erweitern. Hier kann ich dann ja den aktuellen Wert abfragen und dementsprechend Runter oder Hoch fahren.
Gruß
mhimc
-
kannst du mir sagen warum es bei wireless eine Katastrophe wäre? `
Der entstehende Funkverkehr wäre enorm. Und bei Funksystemen gibt es den DutyCycle.Bei wired gibt es wohl auch eine Begrenzung "…you are sending to fast..."
Hast du mir einen Tipp oder sogar ein Bsp., wie ich diese Funktion mit weniger Rechenleistung umsetze? `
Leider nein.Wie ich das in dem anderen Thread schon gesagt habe, halte ich das für nicht machbar.
Grüße
-
Hallo Rantanplan,
aber die Ausgänge werden doch nur einmal zum Starten und Stoppen angsteuert (dazu noch jeweils der entgegengesetzte Ausgang um sicherzustellen das nicht beide Ausgänge für Hoch und Runter gleichzeitig gesetzt sind). Da dürfte doch nicht zuviel "Verkehr" zustande kommen, oder?
Gruß
mhimc