NEWS
Welcher Zigbee Taster für Shelly 2.5 Rolladen
-
@lemonbiter sagte in Welcher Zigbee Taster für Shelly 2.5 Rolladen:
aber Blockly ist noch immer nicht meins.
Dann nutz halt NodeRed - ich werde auch nie Blockly für meine Logik einsetzen, auch wenn ich hier das eine oder andere mal ausprobiere, wie ich es machen würde. Den 2. Tastendruck mit stop könnte man dann mit einem Timer versehen und so eine andere Aktion auslesen etc. ...
-
@mickym Hallo mickym und danke für Deine Antwort.
Leider hilft mir die nicht so richtig weiter. In erster Linie war ja die Frage die nach dem Taster. Welchen benutzt Du denn für so einen Fall...?
LG
LEM -
@lemonbiter Nun das war für die Logik. Ich habe keine Rollläden, meine Shellys die ich als Dimmer verwende, sind ja hinter normalen Busch-Jäger Tastern. Die Shellies haben ja den Vorteil normale Taster zu verwenden - aber das scheinst Du ja nicht zu wollen. Ich verstehe Dich so, dass Du noch zusätzliche Bedienungsmöglichkeiten suchst , vielleicht auch um ortsunabhängiger zu sein. Du könntest wenn Du einen 2. Shelly 2.5 im Detached Mode betreiben und Dein Schalterprogramm nutzen. Oder eben WLAN oder Zigbee Taster.
Zigbee finde ich manchmal verzögernd, letztlich kannst Du ja jede Fernbedienung oder Taster verwenden. Bei deiner Logik muss ja nur einmal ein Datenpunkt getriggert werden. Ob der Rollladen in eine Richtung gestartet wird oder ob eine laufender Rollladen gestoppt werden soll, wirst Du dann sowieso nur über deine Logikmaschine realisieren können.
Wenn Du einen Zigbee Schalter suchst, dann würde ich halt einen suchen, der vom Zigbee Adapter oder was Du nutzt unterstützt wird. https://www.zigbee2mqtt.io/supported-devices/
Wenn Du Dir den XIAOMI Taster anschaust, der 2 Tasten hat https://www.zigbee2mqtt.io/devices/WXKG15LM.html - ohne dass ich Dir nun empfehlen würde, dann siehst Du dass der zum Beispiel folgende Aktionen unterscheiden kann:
single_left, single_right, single_both, double_left, double_right, double_both, triple_left, triple_right, triple_both, hold_left, hold_right, hold_both.Somit obliegt es dann Deiner Logik bzw. der Logikmaschine, wie Du die Shelly 2.5 Datenpunkte mit diesen Ereignissen ansteuerst.
Aber ich habe keinen im Einsatz. Weil meine Shellies entweder hinter normalen Tastern betrieben werden oder über das Tablet oder über meinen Würfel.
Eine konkrete Empfehlung kann und will ich Dir aber nicht geben. Da gibts sicher hier mehr Leute, die solche Taster im Betrieb haben.
Letztlich brauchst Du nur 2 Datenpunkte. Da nicht direkt mit den Shelly 2.5 verkabeln willst, brauchst Du immer Deinen iobroker mit der Logikmaschine und wenn Du nicht mit Blockly warm wirst, kannst Du Dir eben NodeRed anschauen, ob hier die Logik für Dich besser oder verständlicher visualisiert wird. Die Hardware ist in diesem Fall eher von untergeordneter Bedeutung.
-
@lemonbiter Welchen der vielen Taster du nehmen willst kann ich Dir nicht sagen. Im Zweifelsfalls schaust du mal bei zigbee2mqtt.io auf die unterstützten Geräte. Die Xiaomi WXKG15LM die @mickym sind ein Beispiel die funktionieren sollten.
Ansonsten brauchst du:
- einen State an dem du erkennen kannst ob der Rolladen in Bewegung ist oder nicht. Sofern der Shelly diesen nicht automatisch bereit stellt musst du den irgendwie manuell erzeugen. Ideen dazu kann ich nur geben wenn du die Datenpunkte des Shellies bereitstellst.
- Dann machst du für den rechts_click und den links_click jeweils einen Trigger. Darin die Abfrage "bewegt sich der Rolladen". Wenn ja, Stop senden, wenn nein Start senden (je nach Seite die entsprechende Richtung).
A.
-
@lemonbiter
Ich habe sehr gute Erfahrungen mit diesem Taster gemacht (nicht billig aber eben ohne Batterie)
GIRA + Senic Friends of Hue Smart Switch | Kompatibel mit Philips Hue & Tado | Made in Germany | Kabelloser Homekit Lichtschalter & Dimmer | Keine Batterien, kein Aufladen | 1x Schalter in Weiß
https://amzn.eu/cCtnnFlDem Shelly würde ich auf Tastendruck eine konkrete Position durchgeben… also ein minimal blockly: wenn State = True steuere Shelly Position xx
Dem Shelly bei Tastendruck einfach „auf“ oder „ab“ sagen geht aber auch.
Vermutlich braucht man nicht mal ein blockly sondern kann die je zwei states per Regel verbinden…. -
Lieber @chris299 @Asgothian @mickym
ganz herzlichen Dank für Euer ausführliches Feedback.
Hintergrund ist, dass der Shelly außen in einem Wasserdichten Gehäuse (versteckt) hinter die Jalousie kommt. Die Jalousie ist neu und an der Stelle gibt es nur 230V und keine Steuerleitung nach innen und auch keinen leeren Unterputzplatz an der Wand. Sonst hätte ich - so wie auch vorgeschlagen - natürlich innen einen "normalen" Taster für die Rollladensteuerung verwendet bspw. innen dann einen Shelly i3 hinter einen Taster gesetzt.
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.Das ist aber nicht sooo schick wie eine dedizierte Taste je Funktion (für auf, ab und stop). Die Hue DimmerSwitches sind auch genial mit ihren 4 Tasten, aber leider lassen sich die Tasten nicht alle nutzen...
Euch also schonmal ganz herzlichen Dank und eine schöne Restwoche, vielleicht kommt ja noch eine gute Idee...
LEM
-
@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