NEWS
Welcher Zigbee Taster für Shelly 2.5 Rolladen
-
@lemonbiter sagte in Welcher Zigbee Taster für Shelly 2.5 Rolladen:
Ich hatte die Hoffnung, jemand hat einen 3fach Zigbee Taster, den er empfehlen kann. Natürlich kann ich auch einfach einen einbutton Taster nehmen und dann auf einfach-, doppelclick oder halten auswerten.
Hast du auf Zigbee2mqtt mal geschaut ? Da gibt es 2fach und 3fach Taster.
Ich persönlich würde im Übrigen wie @mickym vorgeschlagen hat einen 2fach Taster nutzen, mit einer von 2 möglichen Logiken:
- rechts hoch, links runter, beide zusammen stop
- rechts hoch, links runter, wenn rechts oder links gedrückt wird wenn der Rolladen in Bewegung ist, stop.
A.
-
Wie wäre es mit einem AQUARA OPPLE Taster, gibt es in mehreren Ausführungen.
Habe hier mehrere im Einsatz, durch die Mehrfachbelegung der Tasten steuere ich mit einem 3er zwei Rolladen mit auf /zu/stop und über zweifach klick kann ich auf definierte Positionen fahren die im Blockly hinterlegt sind, dreifach Klick steuert die Terrassenbeleuchtung und hold dimmt diese. -
@lemonbiter
Warum lassen sich die 4 Tasten der hue dimmer nicht nutzen?
Der von mir genutzte Taster sieht zwar aus wie ein 2er Taster hat aber effektiv 4 Tasten weil die Wippe je Seite immer „in der Mitte“ steht, also oben und unten getrennte Taster darstellen, die man nur nicht gleichzeitig drücken kann.
Dazu kann man gleichzeitiges Drücken beider Taster oben oder unten auch noch extra belegen. -
Ich benutze dafür den Ikea Styrbar in Verbindung mit dem Shelly 2.5 (Original-Firmware).
Gesteuert über ein Blockly, kurz oben drücken: Rolladen auf, unten: Rolladen zu.
Gedrückt halten oben: Rolladen auf, loslassen: stop; gedrückt halten unten: Rolladen zu, loslassen: stop.
Funktioniert super.Gruß Rakete01
-
@rakete01
Das ist ein wunderbarer Tipp. Danke Dir. Würdest Du mir Dein Blockly netterweise als "Text" zum kopieren senden? Das wäre wunderbar. Lieben Dank
LEM -
@lemonbiter
Hi,
mach ich gerne:<block xmlns="https://developers.google.com/blockly/xml" type="on" id="l^^ja0|%!PW1U(K-z_PN" x="-312" y="138"> <field name="OID">deconz.0.Sensors.20.buttonevent</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="jmQd9P.L{7?w;=8fGXgF"> <value name="IF0"> <block type="logic_compare" id="X]j+]zZqdT|h;S`S9k:G"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="5N1!3YFk/b8XAeAP.00Y"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="vc.`LJyhQ(B}s4vvq#[v"> <field name="NUM">1002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id=")H=3Y;zNxLub_E42lZFU"> <field name="COMMENT">WoZi</field> <next> <block type="control" id="#Q($,ET4F+S%lri}By8l"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">shelly.0.SHSW-25#98CDAC2B1FD7#1.Shutter.Position</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">10</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="_@BIA!:V%yP-O(!O~A[Z"> <field name="NUM">100</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="nmkM:}jmgAA[;6s?FYlD"> <value name="IF0"> <block type="logic_compare" id="3VG/.5te(P-#:K0x8J^P"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="b~6@R2D#q-,9ebtOb,v0"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="s=hY0eHmv32r7vCm%^_K"> <field name="NUM">2002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="Yxp,GKWceWk!vuoTng+#"> <field name="COMMENT">WoZi</field> <next> <block type="control" id="NEc@(RDG}z=4S8Bs{8EZ"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">shelly.0.SHSW-25#98CDAC2B1FD7#1.Shutter.Position</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">20</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="V=iBM9_0-d6%+5CUlOHl"> <field name="NUM">10</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="]^8;-kv[aW^[8Qp[ef-j"> <value name="IF0"> <block type="logic_compare" id="HuO45KD$S|4vKb+#c2e|"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="c4(=E:x3[_m*_iH`+yu."> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="?RXDM8]-g%}woAj|ORV1"> <field name="NUM">1001</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="IXy{XAAy:k60_nR)xM1,"> <field name="COMMENT">WoZi</field> <next> <block type="request" id="*g+}(SxeON%PshXYfrQP"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="[${|Ty,i;MSF.h6twqXg"> <field name="TEXT">http://192.168.78.217/roller/0?go=open</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="6*3?Cx4{AWx)Ss0?K]vL"> <value name="IF0"> <block type="logic_compare" id="U([B*2Dbrr!BnFxU5AWZ"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="x]a4.y48`Y`Tdz`bd-+["> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="yHnH`yAu~E-72%j{W]r8"> <field name="NUM">2001</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="}1%P;}aiV-1G6Wlib_yL"> <field name="COMMENT">WoZi</field> <next> <block type="request" id="wSp]2Coq9}V|%N(@hh?u"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="c4M7y)bwBmU9sKVp5cYP"> <field name="TEXT">http://192.168.78.217/roller/0?go=close</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="c3Sr^6snFNN[H99|BCaF"> <value name="IF0"> <block type="logic_compare" id="~d[eIEu+-]pvQbo09oPa"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="R?n*NK^l.^R9*c}?aPmG"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="(xxpw^6OT/6c%26Xm;%/"> <field name="NUM">3002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="gX0BEd4Yr4:$LZ?1rgVE"> <field name="COMMENT">WoZi</field> <next> <block type="request" id="[.%rWR}G]Toa_.-`2KqT"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="Oah{aK]9I8!,f94lho-i"> <field name="TEXT">http://192.168.78.217/roller/0?go=stop</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="Qup;C@`(+gcr1$+x@HLL"> <value name="IF0"> <block type="logic_compare" id="4=J?aSZj_#hh~{)1+5n$"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="k+Mp_C:}Lw#MNq@ws.UL"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="s3eX*7z-.=6}/4cWf9q6"> <field name="NUM">4002</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="4f6C:YQmLqz7]=PX9l-3"> <field name="COMMENT">WoZi</field> <next> <block type="request" id="c[x@{fe%]t{^AK|DJw%m"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="XY6T$%L%R)L@0N#8,ElG"> <field name="TEXT">http://192.168.78.217/roller/0?go=stop</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="Knk$_xKX$x_Yh^!Oex6J"> <value name="IF0"> <block type="logic_compare" id="R%pW6J!I_uPftX:-vxzd"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="NEJ9O7x6:VxD9URwdb-`"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="wcn=Aj:r0?kM6/)Dq}=,"> <field name="NUM">1003</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="@eJTt(SYSDlxH7rK[B$7"> <field name="COMMENT">WoZi</field> <next> <block type="request" id="Rf*B#HDYF12_+@/U(o1;"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="mBbA]tgCE~q}Dvwy@1n3"> <field name="TEXT">http://192.168.78.217/roller/0?go=stop</field> </shadow> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="Ym{gR8.QyBA0T`*?it1H"> <value name="IF0"> <block type="logic_compare" id="Q.5fX%%y=c[#k0UsY{jY"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="/|8,SXH=%,JUSU4)d@;1"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.20.buttonevent</field> </block> </value> <value name="B"> <block type="math_number" id="Z|]jN-U5FTE~*xRI}+Qn"> <field name="NUM">2003</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="9werc2.{A(mF0c[caXt:"> <field name="COMMENT">WoZi</field> <next> <block type="request" id="_pRhc)C16AJ3Vi6GagD/"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="/aL|R-s;4_0I_(Mfp%X="> <field name="TEXT">http://192.168.78.217/roller/0?go=stop</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block>
Die IP-Adressen musst Du natürlich anpassen...
Gruß
Rakete01 -
@rakete01
Liebe Rakete, ich war eine Woche verreist, deshalb komme ich erst heute dazu, Dir zu antworten. Ganz herzlichen Dank!!!! Bitte erlaube folgende Fragen:Du nutzt teilweise normale Blockly Befehle, teilweise rufst Du die Urls des Shelly auf. Das bedeutet, du hast vermutlich im Shelly die "I/O URL actions" eingebunden. Das habe ich noch nie gemacht.
-
Muss der Shelly dazu in der Cloud sein?
-
Wenn ich die "I/O URL actions" aufrufe, dann kann ich die einzelnen "ROLLER OPEN URL", "ROLLER CLOSE URL" und "ROLLER STOP URL" zwar anhaken, aber es wird nicht, so wie ich "erwarten" würde, die Url wie bei Dir eingepflegt. Muss ich die manuell eintragen, also "http://adresse meines Shelly + dann diesen Text "/roller/0?go=open" ? Oder mache ich etwas verkehrt? Knoten im Schlauch usw...
- Bei mir gibt es im Zigbee Adapter leider scheinbar keinen "Buttonevent", auf den Du im Script triggerst... Was tun sprach Zeuss?
(ich weiss, ich muss noch vieles lernen )
Wenn ich einen Button drücke, bspw. den linken Pfeil, dann bleibt de Status in den allemeisten Fällen "false", lediglich der Zeitstempel von "arrow_left_click" wird dann aktualisiert. Darauf kann ich dann triggern, aber es wird halt wesentlich umständlicher im Script, weil es kein Buttonevent gibt.
Ich nutze nicht Conbee sondern das TexasInstruments Board... vielleicht kommt der Unterschied daher??
Nochmal ganz lieben Dank
LEM -
-
@lemonbiter
Hi lemonbiter,zu 1: nein.
zu 2: in meinen Shellys ist unter den I/O URL action nichts eingetragen
Ich gebe im Blockly einfach die IP-Adresse an, sieht dann für den Stop-Befehl so aus:
Ich habe mich für die URL-Variante entschieden, da ich mit der Taster-Funktion in Blockly nicht klar gekommen bin...zu 3: da bin ich leider raus, da ich Conbee nutze, andere Zigbee-Adapter habe ich noch nicht benutzt.
Gruß
Rakete01 -
@lemonbiter Ein Buttonevent - hat auch keinen State Change zur Folge - ein Button ist ein Taster. Der Wert ist also völlig unwichtig - man triggert nur auf Aktualisierung.
-
@lemonbiter sagte in Welcher Zigbee Taster für Shelly 2.5 Rolladen:
- Bei mir gibt es im Zigbee Adapter leider scheinbar keinen "Buttonevent", auf den Du im Script triggerst... Was tun sprach Zeuss?
(ich weiss, ich muss noch vieles lernen )
Wenn ich einen Button drücke, bspw. den linken Pfeil, dann bleibt de Status in den allemeisten Fällen "false", lediglich der Zeitstempel von "arrow_left_click" wird dann aktualisiert. Darauf kann ich dann triggern, aber es wird halt wesentlich umständlicher im Script, weil es kein Buttonevent gibt.
Ich nutze nicht Conbee sondern das TexasInstruments Board... vielleicht kommt der Unterschied daher??
Nochmal ganz lieben Dank
LEMBeim Deconz gibt es einen Datenpunkt "button event" an dem du am Wert erkennen kannst welche taste gedrückt wurde.
Beim Zigbee-Adapter gibt es das nicht, statt dessen gibt es für jede Funktion einen eigenen Datenpunkt der beim Auslösen für eine kurze Zeit von Falsch auf Wahr wechselt. In deinem Beispiel sind das
arrow_left_click
arrow_left_hold
arrow_right_click
arrow_right_hold
brightness_move_up
brightness_move_down
brightness_stop
on
offAuf diese kannst du per "ist grösser als vorher" triggern - dann bekommst du nur ein Signal für den Wechsel von Falsch auf Wahr.
A.
@mickym sagte in Welcher Zigbee Taster für Shelly 2.5 Rolladen:
@lemonbiter Ein Buttonevent - hat auch keinen State Change zur Folge - ein Button ist ein Taster. Der Wert ist also völlig unwichtig - man triggert nur auf Aktualisierung.
das ist bei deconz anders gelöst. Da gibt es einen Datenpunkt "buttonevent" der für ca. 100-300 ms den Wert annimmt den Deconz dem eigentlichen Button zugeordnet hat. Da ist der Wert also durchaus wichtig.
A.
- Bei mir gibt es im Zigbee Adapter leider scheinbar keinen "Buttonevent", auf den Du im Script triggerst... Was tun sprach Zeuss?
-
@rakete01 Klasse... Danke Dir... "again what learned" HA
-
@asgothian
Hi Agothian,
schön mal wieder von Dir zu lesen und Danke!! Ha ick verstanden... Sieht dann wohl im UI nur so aus, als würde er sich nicht von "False" auf "Truth" ändern... geht zu schnell für meine Augen. Aber der Zeitstempel ändert sich...LG
LEM