NEWS
Tasterschaltung ein/aus
-
@paul53 Ich habe mich falsch ausgedrückt.
Drücken z.B.
press_1 geht dann auf true
release_1 geht dann auf true beim loslassen
über msg_from_zigbee werden bei jedem drücken die Zeitwerte abgebildet
-
@robbi12 sagte: Drücken z.B. press_1 geht dann auf true
release_1 geht dann auf true beim loslassenDann benötigt man für jeden Datenpunkt einen Trigger auf "ist wahr". Mit "press_1" wird das Intervall für heller / dunkler gestartet und mit "release_1" gestoppt.
Soll mit der gleichen Taste ein- / ausgeschaltet (kurzer Tastendruck) und gedimmt werden (langer Tastendruck)? Dann wandle das gezeigte Skript so ab, dass im Trigger "press_1" nur der mache-Zweig und im Trigger "release_1" nur der sonst-Zweig ausgeführt wird.
EDIT: Etwa so:
-
@paul53 Hallo. Danke, habe ich nachgebaut. Funktioniert meistens.
Manchmal regelt er dann längere Zeit das Dimmen hoch und runter selbständig nachdem ich länger gedrückt hatte. Hängt sich irgendwie auf.
Werde ich beobachten.
-
@paul53 Hi. Kann ich das auch für ne Rolladenschaltung einsetzen und wenn ja, wie?
Hier wäre mein Wunsch mit der Taste 3 den Rollo zu schließen und mit der Taste 4 den Rollo zu öffnen.
Beim Festhalten soll er in die jeweilige Richtung laufen bis ich loslasse.
Wenn die Taste 3 oder 4 gedrückt wird, während der Rollo läuft soll der Stop Befehl an den Rollo gehen
Der Rollo hat die Punkte Up, down, Stop und eine Prozentwert für die jeweilige Stellung.
-
gelöscht
-
@robbi12 sagte: längere Zeit das Dimmen hoch und runter selbständig nachdem ich länger gedrückt hatte.
Dann ist vermutlich die Zykluszeit von 250 ms zu kurz.
-
@robbi12 sagte in Tasterschaltung ein/aus:
Beim Festhalten soll er in die jeweilige Richtung laufen bis ich loslasse.
Wenn die Taste 3 oder 4 gedrückt wird, während der Rollo läuft soll der Stop Befehl an den Rollo gehen
Der Rollo hat die Punkte Up, down, Stop und eine Prozentwert für die jeweilige Stellung.Versuche es mal so:
-
@paul53 Hi. Dein Blockly wie immer perfekt.
Jedoch habe ich ein Problem mit meinen Schaltern gerade festgestellt.
Ich nutze EnOcean Systeme.
Hier ist der Punkt release beim loslassen vorhanden. Dachte ich mir zumindest.
Nun habe ich festgestellt, dass er dies nur kurz (vielleicht ein paar Sekunden) kann.
Beim längeren Druck und dann loslassen setzt er keinen Datenpunkt mehr ab. Ich denke, dass ihm hier der "Saft" ausgeht.
-
@robbi12 sagte: Ich nutze EnOcean Systeme.
Dann Duty cycle beachten! Wenn zu oft innerhalb einer Stunde gesendet wurde, wird das weitere Senden unterbrochen.
Sind die Dimmer etwa auch Enocean? Dann wirst du dort sehr schnell ein Problem mit dem Duty cycle bekommen.
EDIT: Wie kommt ein DP "Message from Zigbee" in ein Enocean-System?
-
@paul53 Vielleicht habe ich mit Enocean falsch geschrieben. Denke aber schon.
Batterielose Schalter von buschjäger friends of hue. Da kommt aber beim drücken eine information
-
@robbi12 sagte: Vielleicht habe ich mit Enocean falsch geschrieben.
Hue ist Zigbee (2,4 GHz).
Piezo-Elemente erzeugen eine Spannung bei Druck(anstieg). Falls zu lange gedrückt wird, kann der Kondensator zur Speicherung schon so weit entladen sein, dass das Loslassen nicht mehr gesendet werden kann.
-
@paul53 Hallo, ich stehe gerade total auf dem Schlauch.
Irgendwie verschluckt der Batterietaster manchmal die Klickwerte.
Nun würde ich es ohne longpress lösen wollen.
Ich würde mit Taster oben den Rollo nach oben fahren lassen und mit Taster unten den Rollo runter. Bei nochmaliger Betätigung einer der beiden Tasten stoppen.
Rollo hat up/down/stop und Werte für closing und opening
-
@robbi12 sagte: Nun würde ich es ohne longpress lösen wollen.
Dann lasse die Trigger auf "release" und die Timer weg.
-
@robbi12 sagte: Werte für closing und opening
Keine Position?
Boolesche Werte bei Bewegung? -
@paul53 Doch. Ich bekomme vom Rollo auch den Prozentöffnungswert.
Dann noch einen Datenpunkt welcher wechselt und closing oder opening anzeigt
-
@robbi12 sagte: vom Rollo auch den Prozentöffnungswert.
Dann kannst du es so versuchen:
-
@paul53 Danke funktioniert fast.
Wenn der Rollo ganz auf oder ganz zu ist, also 100 oder 0 dann reagiert es nicht auf den Tastendruck. Hier muss ich dann zweimal drücken.
-
@robbi12 sagte: 100 oder 0 dann reagiert es nicht auf den Tastendruck. Hier muss ich dann zweimal drücken.
Das soll dieser Teil verhindern:
-
@paul53 Danke, da hatte ich einen Fehler drin.
Für den Außenrollo funktioniert es. Der Schalter macht mich aber fertig.
Ich möchte das Ganze für einen Innenrollo machen. Hier soll er die Werte 85 und 40 anfahren.
Funktionier auch so weit. Jedoch muss ich, wenn er die jeweiligen Endpunkte hat, zweimal drücken um die andere Richtung zu bedienen.
Hier sind die Werte des Rollo.
Und so habe ich es versucht:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="SHO,ryL9MR,*s?(6a!38">position</variable> <variable id="4RbBNv@FA5j8;a0+:K]%">move</variable> </variables> <block type="on" id="HOBP##j@TE=XvYkQ)DQq" x="-837" y="138"> <field name="OID">zigbee.0.00000000017717b5.press_1</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="Y8m]O?y0.`kuH{K1HqW$"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="variables_get" id="o25]WH{3wSU2pbJ!5fK7"> <field name="VAR" id="4RbBNv@FA5j8;a0+:K]%">move</field> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="b:BAz=cN^vPcmMk8659E"> <mutation name="stoppen"></mutation> </block> </statement> <value name="IF1"> <block type="logic_compare" id="G|g+1S)lkP9BDOL7{3o~"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="EXQM$v?^zk`7*gt$pZ7t"> <field name="VAR" id="SHO,ryL9MR,*s?(6a!38">position</field> </block> </value> <value name="B"> <block type="math_number" id="FE-(N`6XYgDoYs(7U6l="> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="!h*,o~vz|hA%cKWc6LUg"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.842e14fffe746425.position</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="X0tC1m:?6Wm]k8Gx8m1)"> <field name="NUM">85</field> </block> </value> <next> <block type="variables_set" id="enQ8UM`*-ko,/]bDVFSs"> <field name="VAR" id="4RbBNv@FA5j8;a0+:K]%">move</field> <value name="VALUE"> <block type="logic_boolean" id="Sd,5$1V$5QEK#%1U0,wr"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="variables_set" id="+r![2LG=#3}^vAlCqN5s"> <field name="VAR" id="SHO,ryL9MR,*s?(6a!38">position</field> <value name="VALUE"> <block type="get_value" id="CX9B~}R2|4qEZ76?y?:^"> <field name="ATTR">val</field> <field name="OID">zigbee.0.842e14fffe746425.position</field> </block> </value> <next> <block type="on" id="x,(r@:kyzKq=|b.Ddx)*"> <field name="OID">zigbee.0.842e14fffe746425.position</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="??*~1(iL:,Lug.6#H~Z^"> <field name="VAR" id="SHO,ryL9MR,*s?(6a!38">position</field> <value name="VALUE"> <block type="on_source" id="1*Rz6w@Ug{q:5![S8xsC"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="/VG-KyP?-K}^r[r+n{$p"> <value name="IF0"> <block type="logic_multi_or" id=")I[?|n+}cSR.Un#df}e,"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <value name="OR0"> <block type="logic_compare" id="89$2Vs$2{-yz8ymh@#%l"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="^[[=OXcR2:3E4Cw0J=u{"> <field name="VAR" id="SHO,ryL9MR,*s?(6a!38">position</field> </block> </value> <value name="B"> <block type="math_number" id="Tn(p_o0FO$92J1Ug?G}r"> <field name="NUM">0</field> </block> </value> </block> </value> <value name="OR1"> <block type="logic_compare" id="cNiOS9UUI9?E=?d#(+:b"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~h]+{8.jX!VmJC3dDP2k"> <field name="VAR" id="SHO,ryL9MR,*s?(6a!38">position</field> </block> </value> <value name="B"> <block type="math_number" id="Q^2!=!z6L.uxKC7ZlxM/"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="~isy2wKHS)7=tdLk3PZ%"> <field name="VAR" id="4RbBNv@FA5j8;a0+:K]%">move</field> <value name="VALUE"> <block type="logic_boolean" id="KRUKEux?WgRCb%e7Pa:*"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="on" id="~lW%Ffeb7/kg-bec[P9t"> <field name="OID">zigbee.0.00000000017717b5.press_2</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="@lN7(G6kZ{0fy^rTOxm@"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="variables_get" id="$SR14L#V9.+5[7k*ud]8"> <field name="VAR" id="4RbBNv@FA5j8;a0+:K]%">move</field> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id="96Z7l+~]i2Kdd#zyLi69"> <mutation name="stoppen"></mutation> </block> </statement> <value name="IF1"> <block type="logic_compare" id="*AYAqA/9*]A~QX(P:b;q"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="B^=oo=X1OOX)[D7(;42}"> <field name="VAR" id="SHO,ryL9MR,*s?(6a!38">position</field> </block> </value> <value name="B"> <block type="math_number" id="Fp5_%{Bk!7I7IPUL7~a0"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="xfMX7`$W{ISTHig854iE"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.842e14fffe746425.position</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Y)/kh0=21t8!5nG34%tM"> <field name="NUM">40</field> </block> </value> <next> <block type="variables_set" id="1[$`RM{[0,L6[`JM)2(Z"> <field name="VAR" id="4RbBNv@FA5j8;a0+:K]%">move</field> <value name="VALUE"> <block type="logic_boolean" id="RZRpQRXBXotV=R4}Hg8q"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="RV[R$^uMkC^_2hQc[d=b" x="-587" y="138"> <field name="NAME">stoppen</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="control" id="YnA4Vlae_8GRGbY|)nlF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">zigbee.0.842e14fffe746425.stop</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=",sj{10dc0dB.KEHYkfTe"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="@Mz}fmRpjZ=|ed5Ls]A("> <field name="VAR" id="4RbBNv@FA5j8;a0+:K]%">move</field> <value name="VALUE"> <block type="logic_boolean" id="k@_Oi|O.Mf}k(HNobmu^"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </xml>
-
@robbi12 sagte: wenn er die jeweiligen Endpunkte hat, zweimal drücken um die andere Richtung zu bedienen.
Die Endpunkte sind 85 und 40?
Wenn ja, dann logge mal die Position und Bestätigung, da der gleiche Datenpunkt auch gesteuert wird: