- Home
- Deutsch
- Skripten / Logik
- Taster press short or long mit blockly
Taster press short or long mit blockly
-
Die Verzögerung zwischen Tastendruck und Schalten ist enorm, da sind teilweise mehrer Sekunden zwischen bei, zumindest bei TRÅDFRI. `
Hmm, bei mir war das üblicherweise sofort. Ich habe das Skript aber mal relativ stark angepasst (Befehlsbegrenzung wg. zwave) nachdem ich mit Tradfri getestet habe, eventuell vertragen die beiden sich nicht mehr. -
Hat schonmal jemand diese oder ein ähnliches Script für Hue mit Enocean Tastern verwirklicht?
Ich sehe mich nicht in der Lage, dieses Script dafür umzubauen.
Danke
-
@AxelF1977 sagte:
Script für Hue mit Enocean Tastern verwirklicht?
Da ich weder Enocean noch Hue besitze, muss ich fragen: Welche Datenpunkte mit welchen Eigenschaften ?
Taster mit diesem ?
- "pressed" sofort
- "longPress" nach 500ms (ebenfalls konfigurierbar)
- "released" beim Loslassen.
Hue mit getrennten Datenpunkten für Dimmer (level in %) und Ein/Aus (true/false) ?
Dann sollte es so funktionieren:
Export:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="#65kx#lf_?,M2b%98!7t">on</variable> <variable type="" id=".0n)fPPZ0Vnq@(#OkayL">level</variable> <variable type="" id="LOUNWT3$L)e!L@xYU#}h">step</variable> <variable type="" id="r@NrZq0IZi*lPW#AYK/Q">delta</variable> <variable type="" id="R*r}N3kzibH)Apx7BA2q">long</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="variables_set" id="/o?gK%j6g^7_EnH_0|l2" x="-313" y="-338"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> <value name="VALUE"> <block type="get_value" id="^PoPSnNeaX--`PXyE0rq"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="mBjs]l~k+|EXhuQdommL"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="get_value" id="X`JY{Vb._~,oJne_SWOY"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="BZ25)c-VK5Z[3goO6AO@"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> <value name="VALUE"> <block type="math_number" id=";wxnn-=7*b4-c-IMf:=:"> <field name="NUM">5</field> </block> </value> <next> <block type="variables_set" id="hkmQYCgF~-Nmujv@FNda"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="variables_get" id="YAO5#^ARx;!W+z:(kkCO"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> <next> <block type="on_ext" id="9A$Wi*GJ.dRaDpyO`/xI"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="/c7pXjT/I+1ho9^BP9Uz"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="8oO0{BL}4az$9-8hSj?N"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="U`Ek.okoo*liXz!A6:1n"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="u3pL;|V?vrj:*1mMIHW-"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="+x5yQPsGbrFP};}XDZm`"> <field name="TEXT">longPress</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="TeeqM~uQR#SuLH3?:V?j"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="llYi+Cqf.bt/).4]RgFz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_if" id="plZgN4Yex5VRhcw~m=#i"> <value name="IF0"> <block type="variables_get" id="S_.HUw,kf_BGrBh@vq-N"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id=",b+2?RiSiTW:]fvU7,.6"> <mutation name="dimm"></mutation> <next> <block type="timeouts_setinterval" id=".3yOZ$x;4,sop[Q(rj8#"> <field name="NAME">Intervall</field> <field name="INTERVAL">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="ORqY8t}R;isC4Qbus(+^"> <mutation name="dimm"></mutation> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="]Qpy/WMCr`s4KVJ6rzFy"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="d7x_Jz;Vq)]BUewMI2,V"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="G?^{Sxmew@?|%+Yi=k6M"> <field name="TEXT">released</field> </block> </value> </block> </value> <statement name="DO1"> <block type="controls_if" id="Dir-(XSm)akkXs3-Y^xH"> <value name="IF0"> <block type="logic_negate" id="N,HqW]LM,^8!@tY0P)wK"> <value name="BOOL"> <block type="variables_get" id=".{q|vn^g`}@9EpN{;zsZ"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="kavv0)K4v54}N7d5#%Wh"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> <value name="VALUE"> <block type="logic_negate" id="MLRTGDU_H(l]/XT*C7Lm"> <value name="BOOL"> <block type="variables_get" id="P%y[8YQuNEt=DxcsId6R"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> </block> </value> </block> </value> <next> <block type="control" id="G)M!#H6*^$UaGALg/o7I"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="A6$J#r_mK_8qjBI_;B1H"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_clearinterval" id="R.=w_d*Xk3h6nUuanj51"> <field name="NAME">Intervall</field> <next> <block type="variables_set" id="dbYw|pz[1kS)^NPuNqE|"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="`A80q|79.cVrAN3@zzkX"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="0[(od3jtT2]$A1$a$};A" x="162" y="-262"> <field name="NAME">dimm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="861%9(gFxahd?YY!)0Ka"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="^V^q^3:olhNsdqG[~-Y`"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="8+;L.%@1av4=55HGU_sf"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="variables_get" id="^9Okp.;5dY(d1m!K=tue"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="~Vr?MJ]mK`J?N4X3^k*R"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="variables_get" id="nmM-j?3J9jlS^jo6{m%p"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="9#WV#;tcgI.8%JDo]XU2"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="Pa]1P4~(r!63?+FtKOdH"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="oIIS[{JJ|R#l6]k,0hVj"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="g/2Z{!Q5l+fHg#J?TVw`"> <field name="NUM">100</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="xS?V$oTH^x1!k]6u~J]8"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="#JkJic=;I(Fe:0ejY?Tl"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="([=`9vqtGU0fg`FZ[hfW"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="math_single" id="gY=PcA1=-1M(g}p5;o}G"> <field name="OP">NEG</field> <value name="NUM"> <shadow type="math_number" id="y-eb+L)K!c]gcF*Z(U73"> <field name="NUM">9</field> </shadow> <block type="variables_get" id="!*L$Q2,4^cd+{7,i|3S2"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> </block> </statement> <next> <block type="math_change" id="ay^:v^GMiK8;@C.C{91L"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="DELTA"> <shadow type="math_number" id=",p-gkt;Nv8#h2}*;XqVf"> <field name="NUM">1</field> </shadow> <block type="variables_get" id=",-sWWLkN.nZ8!6eXeA{e"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> </block> </value> <next> <block type="control" id="[Ly(jC0qvD44B2M,`N;q"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Zxd5^AHW3x`7Y(^h!Z?{"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte:
Script für Hue mit Enocean Tastern verwirklicht?
Da ich weder Enocean noch Hue besitze, muss ich fragen: Welche Datenpunkte mit welchen Eigenschaften ?
Taster mit diesem ?
- "pressed" sofort
- "longPress" nach 500ms (ebenfalls konfigurierbar)
- "released" beim Loslassen.
Hue mit getrennten Datenpunkten für Dimmer (level in %) und Ein/Aus (true/false) ?
Dann sollte es so funktionieren:
Export:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="#65kx#lf_?,M2b%98!7t">on</variable> <variable type="" id=".0n)fPPZ0Vnq@(#OkayL">level</variable> <variable type="" id="LOUNWT3$L)e!L@xYU#}h">step</variable> <variable type="" id="r@NrZq0IZi*lPW#AYK/Q">delta</variable> <variable type="" id="R*r}N3kzibH)Apx7BA2q">long</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="variables_set" id="/o?gK%j6g^7_EnH_0|l2" x="-313" y="-338"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> <value name="VALUE"> <block type="get_value" id="^PoPSnNeaX--`PXyE0rq"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="mBjs]l~k+|EXhuQdommL"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="get_value" id="X`JY{Vb._~,oJne_SWOY"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="BZ25)c-VK5Z[3goO6AO@"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> <value name="VALUE"> <block type="math_number" id=";wxnn-=7*b4-c-IMf:=:"> <field name="NUM">5</field> </block> </value> <next> <block type="variables_set" id="hkmQYCgF~-Nmujv@FNda"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="variables_get" id="YAO5#^ARx;!W+z:(kkCO"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> <next> <block type="on_ext" id="9A$Wi*GJ.dRaDpyO`/xI"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="/c7pXjT/I+1ho9^BP9Uz"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="8oO0{BL}4az$9-8hSj?N"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="U`Ek.okoo*liXz!A6:1n"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="u3pL;|V?vrj:*1mMIHW-"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="+x5yQPsGbrFP};}XDZm`"> <field name="TEXT">longPress</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="TeeqM~uQR#SuLH3?:V?j"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="llYi+Cqf.bt/).4]RgFz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="controls_if" id="plZgN4Yex5VRhcw~m=#i"> <value name="IF0"> <block type="variables_get" id="S_.HUw,kf_BGrBh@vq-N"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> </block> </value> <statement name="DO0"> <block type="procedures_callnoreturn" id=",b+2?RiSiTW:]fvU7,.6"> <mutation name="dimm"></mutation> <next> <block type="timeouts_setinterval" id=".3yOZ$x;4,sop[Q(rj8#"> <field name="NAME">Intervall</field> <field name="INTERVAL">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="ORqY8t}R;isC4Qbus(+^"> <mutation name="dimm"></mutation> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="]Qpy/WMCr`s4KVJ6rzFy"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="d7x_Jz;Vq)]BUewMI2,V"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="G?^{Sxmew@?|%+Yi=k6M"> <field name="TEXT">released</field> </block> </value> </block> </value> <statement name="DO1"> <block type="controls_if" id="Dir-(XSm)akkXs3-Y^xH"> <value name="IF0"> <block type="logic_negate" id="N,HqW]LM,^8!@tY0P)wK"> <value name="BOOL"> <block type="variables_get" id=".{q|vn^g`}@9EpN{;zsZ"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="kavv0)K4v54}N7d5#%Wh"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> <value name="VALUE"> <block type="logic_negate" id="MLRTGDU_H(l]/XT*C7Lm"> <value name="BOOL"> <block type="variables_get" id="P%y[8YQuNEt=DxcsId6R"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> </block> </value> </block> </value> <next> <block type="control" id="G)M!#H6*^$UaGALg/o7I"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="A6$J#r_mK_8qjBI_;B1H"> <field name="VAR" id="#65kx#lf_?,M2b%98!7t" variabletype="">on</field> </block> </value> </block> </next> </block> </statement> <next> <block type="timeouts_clearinterval" id="R.=w_d*Xk3h6nUuanj51"> <field name="NAME">Intervall</field> <next> <block type="variables_set" id="dbYw|pz[1kS)^NPuNqE|"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="`A80q|79.cVrAN3@zzkX"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="0[(od3jtT2]$A1$a$};A" x="162" y="-262"> <field name="NAME">dimm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="861%9(gFxahd?YY!)0Ka"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="^V^q^3:olhNsdqG[~-Y`"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="8+;L.%@1av4=55HGU_sf"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="variables_get" id="^9Okp.;5dY(d1m!K=tue"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="~Vr?MJ]mK`J?N4X3^k*R"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="variables_get" id="nmM-j?3J9jlS^jo6{m%p"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="9#WV#;tcgI.8%JDo]XU2"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="Pa]1P4~(r!63?+FtKOdH"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="oIIS[{JJ|R#l6]k,0hVj"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="g/2Z{!Q5l+fHg#J?TVw`"> <field name="NUM">100</field> </shadow> </value> <value name="B"> <shadow type="math_number" id="xS?V$oTH^x1!k]6u~J]8"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="#JkJic=;I(Fe:0ejY?Tl"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="([=`9vqtGU0fg`FZ[hfW"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="math_single" id="gY=PcA1=-1M(g}p5;o}G"> <field name="OP">NEG</field> <value name="NUM"> <shadow type="math_number" id="y-eb+L)K!c]gcF*Z(U73"> <field name="NUM">9</field> </shadow> <block type="variables_get" id="!*L$Q2,4^cd+{7,i|3S2"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> </block> </statement> <next> <block type="math_change" id="ay^:v^GMiK8;@C.C{91L"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="DELTA"> <shadow type="math_number" id=",p-gkt;Nv8#h2}*;XqVf"> <field name="NUM">1</field> </shadow> <block type="variables_get" id=",-sWWLkN.nZ8!6eXeA{e"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> </block> </value> <next> <block type="control" id="[Ly(jC0qvD44B2M,`N;q"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Zxd5^AHW3x`7Y(^h!Z?{"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
Hallo @paul53, erst vielen Dank für die Rückmeldung und sorry für die späte Antwort. Es gab bei dem Systemumzug erstmal dringender Dinge.
Das "Problem" bei den Tastern ist folgendes, die haben nur den Punkt true/false. Ein Klick ist true, ansonsten ist er immer false.
Jetzt müsste die Zeit genommen werden zwischen press und release. Es gibt keinen Datenpunkt, der aktiv die Zeit misst die aktuell gedrückt wird. Es kann also erst ausgewertet werden, nach dem Reslease. Also kann das Script erst dann was ausführen, wenn nach release eine definierte Zeit erreicht wurde, und es dann auf true setzen.Daher fiel mir bisher nichts ein, wie ich das umsetzen kann. Wie gesagt, das Script von @AlCalzone scheint eine Lösung zu sein, ich verstehe leider nur nicht, wie ich das auf das Hue System anpassen kann.
-
@AxelF1977
Aus Deinem ersten Post und Enocean EEP "F6-02-02" entnehme ich, dass 2 Datenpunkte mit folgenden Werten ausgewertet müssen:- buttons: "pressed"/"released"
- state: "AI"/"AO"/"BI"/"BO"
In folgendem Blockly habe ich versucht, es mal für den linken Taster mit unten = Ein/Heller und oben = Aus/Dunkler umzusetzen.
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id=".0n)fPPZ0Vnq@(#OkayL">level</variable> <variable type="" id="LOUNWT3$L)e!L@xYU#}h">step</variable> <variable type="" id="aJZ]={d,#UG6hNfL+g%q">button</variable> <variable type="" id="R*r}N3kzibH)Apx7BA2q">long</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="variables_set" id="mBjs]l~k+|EXhuQdommL" x="-313" y="-387"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="get_value" id="X`JY{Vb._~,oJne_SWOY"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="BZ25)c-VK5Z[3goO6AO@"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> <value name="VALUE"> <block type="math_number" id=";wxnn-=7*b4-c-IMf:=:"> <field name="NUM">5</field> </block> </value> <next> <block type="comment" id="k5O@A`WZ%=k2SxN%R*eR"> <field name="COMMENT">buttons</field> <next> <block type="on_ext" id="9A$Wi*GJ.dRaDpyO`/xI"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="/c7pXjT/I+1ho9^BP9Uz"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="comment" id="SFPLwh*(}(Kp#M1!A4eP"> <field name="COMMENT">state</field> <next> <block type="variables_set" id="3Y@{`Rqi;:!uBZE6HAC{"> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> <value name="VALUE"> <block type="get_value" id="o_!k7$qI^{Uu,3fqBtxa"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="controls_if" id="NYU/Pb,SKSz:NE:LAw(q"> <value name="IF0"> <block type="logic_operation" id="]RwfWq@5C4:qtfLTxO{c" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id=";$:Pq~~iV_qLU:PsE^xj"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="pw~Re@|,CCBEVg!Bv2/."> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> </block> </value> <value name="B"> <block type="text" id="vy..g~!LK/YHx}uZ}oWc"> <field name="TEXT">AI</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="g5CZG?KG{})M{r+6t?+B"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="B)aw)!D%yNn`ebVobHR$"> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> </block> </value> <value name="B"> <block type="text" id="RR$|U4Y$?8bpGN:O@lwP"> <field name="TEXT">AO</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="8oO0{BL}4az$9-8hSj?N"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="U`Ek.okoo*liXz!A6:1n"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="u3pL;|V?vrj:*1mMIHW-"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="+x5yQPsGbrFP};}XDZm`"> <field name="TEXT">pressed</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="dbYw|pz[1kS)^NPuNqE|"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="`A80q|79.cVrAN3@zzkX"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id="c#ncZp7EQ8*QJ=XCRZ8Q"> <field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="TeeqM~uQR#SuLH3?:V?j"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="llYi+Cqf.bt/).4]RgFz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id=",b+2?RiSiTW:]fvU7,.6"> <mutation name="dimm"></mutation> <next> <block type="timeouts_setinterval" id=".3yOZ$x;4,sop[Q(rj8#"> <field name="NAME">Intervall</field> <field name="INTERVAL">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="ORqY8t}R;isC4Qbus(+^"> <mutation name="dimm"></mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="Zx?~y{}iOq-zpH-/|j;["> <field name="NAME">timeout</field> <next> <block type="timeouts_clearinterval" id="R.=w_d*Xk3h6nUuanj51"> <field name="NAME">Intervall</field> <next> <block type="controls_if" id="Dir-(XSm)akkXs3-Y^xH"> <value name="IF0"> <block type="logic_negate" id="N,HqW]LM,^8!@tY0P)wK"> <value name="BOOL"> <block type="variables_get" id=".{q|vn^g`}@9EpN{;zsZ"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="5xYRl5SiP[hIkc0Y#$SX"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="^Z`rJz{,3Y3X0KiV/{*c"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="#+G1.)_KAA.,()BR5fi9"> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> </block> </value> <value name="B"> <block type="text" id="8b5aB90K;p^)|]4SNeb1"> <field name="TEXT">AI</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="G)M!#H6*^$UaGALg/o7I"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ez6BRm7mp)3?IlK5cGn`"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="control" id="WqEIQ#ivcw}xk$9U@@+U"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="3NkgOHvmg$(BpEFe?7V{"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="0[(od3jtT2]$A1$a$};A" x="188" y="-162"> <field name="NAME">dimm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="861%9(gFxahd?YY!)0Ka"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="^V^q^3:olhNsdqG[~-Y`"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="IjY545#gmjS81RsrEpm?"> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> </block> </value> <value name="B"> <block type="text" id="V{qg4}N!.d}hDW8eO[_o"> <field name="TEXT">AI</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="ay^:v^GMiK8;@C.C{91L"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="DELTA"> <shadow type="math_number" id=",p-gkt;Nv8#h2}*;XqVf"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="nmM-j?3J9jlS^jo6{m%p"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> <next> <block type="controls_if" id="%kszP{vBYtCwZ/qzTtSa"> <value name="IF0"> <block type="logic_compare" id="-.%Q*lZ}FCy~^wP+p[:1"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="UA:CC7Vx~omd?~j2gEKs"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_number" id="99D.}K4,`E`IF@EOxgvF"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="v0aJHm1a3E.+HF6~ocI$"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="math_number" id="EtU#raSrJ7YV0iWJf:5J"> <field name="NUM">100</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="math_change" id="Qm~q2oR!?zM%Gay!=IEZ"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="DELTA"> <shadow type="math_number" id="y~PByj;bM.(9lHWSY(CL"> <field name="NUM">1</field> </shadow> <block type="math_single" id="gY=PcA1=-1M(g}p5;o}G"> <field name="OP">NEG</field> <value name="NUM"> <shadow type="math_number" id="y-eb+L)K!c]gcF*Z(U73"> <field name="NUM">9</field> </shadow> <block type="variables_get" id="!*L$Q2,4^cd+{7,i|3S2"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> <next> <block type="controls_if" id="beN!nf7!FvW*:[ddES,]"> <value name="IF0"> <block type="logic_compare" id="79QUCa4(?d3Oot-2GPSk"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="~ZX5X]P$m)=9n4?B@8~-"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_number" id="3:t:FbgDD?xLq~RgPObL"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="6-eEI]Ym2;J;X:G_J6rv"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="math_number" id=")Y-{eso01`GWZ-YsFUf;"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="control" id="[Ly(jC0qvD44B2M,`N;q"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Zxd5^AHW3x`7Y(^h!Z?{"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> </block> </next> </block> </statement> </block> </xml>
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977
Aus Deinem ersten Post und Enocean EEP "F6-02-02" entnehme ich, dass 2 Datenpunkte mit folgenden Werten ausgewertet müssen:- buttons: "pressed"/"released"
- state: "AI"/"AO"/"BI"/"BO"
Hi,
Ja, das mit den 2 Datenpunkten verhält sich so.
Ich probiere das heute Abend mal aus, gebe Dir dann eine Rückmeldung. Bin gespanntDanke!
-
Hallo @paul53
Ich habe gerade mal geschaut. Ich nutze mittlerweile den Enocean Adapter vom ioBroker. Vorher hatte ich es über FHEM eingebunden, da gab es mir Variablen.
Hier leider nicht nicht.
Daher funktioniert Dein Blockly leider nicht. Mann müsste die Zeit, die gedrückt ist messen und in Echtzeit übergeben. Ob das aber geht, weiß ich nicht. Daher scheitere ich seit 2 Jahren an dem Thema.
-
@AxelF1977 sagte:
Ich nutze mittlerweile den Enocean Adapter vom ioBroker.
Das sieht ganz anders aus: 1 Datenpunkt pro Taster. Bleiben die Datenpunkte AO, AI, BO, BI true, solange der zugehörige Taster gedrückt wird ?
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte:
Ich nutze mittlerweile den Enocean Adapter vom ioBroker.
Das sieht ganz anders aus: 1 Datenpunkt pro Taster. Bleiben die Datenpunkte AO, AI, BO, BI true, solange der zugehörige Taster gedrückt wird ?
Ja, die bleiben so lange auf true, bis der Taster wieder losgelassen wird. Sorry das Du dir die Mühe gemacht hast, und ich vergesssen hatte, dass der Adapter jetzt weniger Datenpunkte hat
-
@AxelF1977 sagte:
die bleiben so lange auf true, bis der Taster wieder losgelassen wird.
Dann versuche es mal damit für die linken Taster (AI: Ein/Heller; AO: Aus/Dunkler):
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id=".0n)fPPZ0Vnq@(#OkayL">level</variable> <variable type="" id="aJZ]={d,#UG6hNfL+g%q">button</variable> <variable type="" id="U0|}x*G;[=9}9Ql;A}WY">ein</variable> <variable type="" id="LOUNWT3$L)e!L@xYU#}h">step</variable> <variable type="" id="r@NrZq0IZi*lPW#AYK/Q">delta</variable> <variable type="" id="R*r}N3kzibH)Apx7BA2q">long</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="variables_set" id="mBjs]l~k+|EXhuQdommL" x="-313" y="-387"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="get_value" id="X`JY{Vb._~,oJne_SWOY"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="BZ25)c-VK5Z[3goO6AO@"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> <value name="VALUE"> <block type="math_number" id=";wxnn-=7*b4-c-IMf:=:"> <field name="NUM">5</field> </block> </value> <next> <block type="comment" id="k5O@A`WZ%=k2SxN%R*eR"> <field name="COMMENT">AI</field> <next> <block type="on_ext" id="9A$Wi*GJ.dRaDpyO`/xI"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="/c7pXjT/I+1ho9^BP9Uz"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="@G{{4oK*6TJZL#zVETGB"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="variables_get" id="o53B6/DeytPJHbI;Mi7O"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> <next> <block type="procedures_callnoreturn" id="dFHtN~%maUxxB.]?1tcM"> <mutation name="licht"> <arg name="button"></arg> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="WE@9|8|/~vvX{OXDYb}["> <field name="ATTR">state.val</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="Yu9B::0if$v]tT:bxB*U"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="jSZ/2_c*((aR7,pNt)0y"> <field name="COMMENT">AO</field> <next> <block type="on_ext" id="W{d|e4vAl3#[=|KF-G3+"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="@rAa%8m;](ekf2C:~We8"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="gc~P[z$.$-v%j:u^XOI)"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="math_single" id="j!c[p($INLWaurOn$@GR"> <field name="OP">NEG</field> <value name="NUM"> <shadow type="math_number" id="J+I;Y,iqn1nqZM15lVe,"> <field name="NUM">9</field> </shadow> <block type="variables_get" id="};j080s`b2/m%hM-3JlK"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="_vI+=tBli*j-/rK10bmF"> <mutation name="licht"> <arg name="button"></arg> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="q-S~S+O0usUFEH29nW-E"> <field name="ATTR">state.val</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="$/j)O2ra|t9)h^$@i$!O"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="0[(od3jtT2]$A1$a$};A" x="137" y="-363"> <field name="NAME">dimm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="math_change" id="ay^:v^GMiK8;@C.C{91L"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="DELTA"> <shadow type="math_number" id=",p-gkt;Nv8#h2}*;XqVf"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="-hl/L_),_!x:MXDb=iyJ"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> </block> </value> <next> <block type="controls_if" id="%kszP{vBYtCwZ/qzTtSa"> <value name="IF0"> <block type="logic_compare" id="-.%Q*lZ}FCy~^wP+p[:1"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="UA:CC7Vx~omd?~j2gEKs"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_number" id="99D.}K4,`E`IF@EOxgvF"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="v0aJHm1a3E.+HF6~ocI$"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="math_number" id="EtU#raSrJ7YV0iWJf:5J"> <field name="NUM">100</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="beN!nf7!FvW*:[ddES,]"> <value name="IF0"> <block type="logic_compare" id="79QUCa4(?d3Oot-2GPSk"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="~ZX5X]P$m)=9n4?B@8~-"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_number" id="3:t:FbgDD?xLq~RgPObL"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="6-eEI]Ym2;J;X:G_J6rv"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="math_number" id=")Y-{eso01`GWZ-YsFUf;"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="control" id="[Ly(jC0qvD44B2M,`N;q"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Zxd5^AHW3x`7Y(^h!Z?{"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="NWZF^.s##C!,EL2.W.0%" x="137" y="-88"> <mutation> <arg name="button" varid="aJZ]={d,#UG6hNfL+g%q"></arg> <arg name="ein" varid="U0|}x*G;[=9}9Ql;A}WY"></arg> </mutation> <field name="NAME">licht</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="8oO0{BL}4az$9-8hSj?N"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="lYX/%Zr4$W!`HeoKa0|7"> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="dbYw|pz[1kS)^NPuNqE|"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="`A80q|79.cVrAN3@zzkX"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id="c#ncZp7EQ8*QJ=XCRZ8Q"> <field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="TeeqM~uQR#SuLH3?:V?j"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="llYi+Cqf.bt/).4]RgFz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id=",b+2?RiSiTW:]fvU7,.6"> <mutation name="dimm"></mutation> <next> <block type="timeouts_setinterval" id=".3yOZ$x;4,sop[Q(rj8#"> <field name="NAME">Intervall</field> <field name="INTERVAL">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="ORqY8t}R;isC4Qbus(+^"> <mutation name="dimm"></mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="Zx?~y{}iOq-zpH-/|j;["> <field name="NAME">timeout</field> <next> <block type="timeouts_clearinterval" id="R.=w_d*Xk3h6nUuanj51"> <field name="NAME">Intervall</field> <next> <block type="controls_if" id="Dir-(XSm)akkXs3-Y^xH"> <value name="IF0"> <block type="logic_negate" id="N,HqW]LM,^8!@tY0P)wK"> <value name="BOOL"> <block type="variables_get" id=".{q|vn^g`}@9EpN{;zsZ"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="G)M!#H6*^$UaGALg/o7I"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="WEi5d_diWt-*v)6q.f5R"> <field name="VAR" id="U0|}x*G;[=9}9Ql;A}WY" variabletype="">ein</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte:
die bleiben so lange auf true, bis der Taster wieder losgelassen wird.
Dann versuche es mal damit für die linken Taster (AI: Ein/Heller; AO: Aus/Dunkler):
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id=".0n)fPPZ0Vnq@(#OkayL">level</variable> <variable type="" id="aJZ]={d,#UG6hNfL+g%q">button</variable> <variable type="" id="U0|}x*G;[=9}9Ql;A}WY">ein</variable> <variable type="" id="LOUNWT3$L)e!L@xYU#}h">step</variable> <variable type="" id="r@NrZq0IZi*lPW#AYK/Q">delta</variable> <variable type="" id="R*r}N3kzibH)Apx7BA2q">long</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="undefined" id="Intervall">Intervall</variable> </variables> <block type="variables_set" id="mBjs]l~k+|EXhuQdommL" x="-313" y="-387"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="get_value" id="X`JY{Vb._~,oJne_SWOY"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <next> <block type="variables_set" id="BZ25)c-VK5Z[3goO6AO@"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> <value name="VALUE"> <block type="math_number" id=";wxnn-=7*b4-c-IMf:=:"> <field name="NUM">5</field> </block> </value> <next> <block type="comment" id="k5O@A`WZ%=k2SxN%R*eR"> <field name="COMMENT">AI</field> <next> <block type="on_ext" id="9A$Wi*GJ.dRaDpyO`/xI"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="/c7pXjT/I+1ho9^BP9Uz"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="@G{{4oK*6TJZL#zVETGB"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="variables_get" id="o53B6/DeytPJHbI;Mi7O"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> <next> <block type="procedures_callnoreturn" id="dFHtN~%maUxxB.]?1tcM"> <mutation name="licht"> <arg name="button"></arg> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="WE@9|8|/~vvX{OXDYb}["> <field name="ATTR">state.val</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="Yu9B::0if$v]tT:bxB*U"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="jSZ/2_c*((aR7,pNt)0y"> <field name="COMMENT">AO</field> <next> <block type="on_ext" id="W{d|e4vAl3#[=|KF-G3+"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="@rAa%8m;](ekf2C:~We8"> <field name="oid">default</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="gc~P[z$.$-v%j:u^XOI)"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> <value name="VALUE"> <block type="math_single" id="j!c[p($INLWaurOn$@GR"> <field name="OP">NEG</field> <value name="NUM"> <shadow type="math_number" id="J+I;Y,iqn1nqZM15lVe,"> <field name="NUM">9</field> </shadow> <block type="variables_get" id="};j080s`b2/m%hM-3JlK"> <field name="VAR" id="LOUNWT3$L)e!L@xYU#}h" variabletype="">step</field> </block> </value> </block> </value> <next> <block type="procedures_callnoreturn" id="_vI+=tBli*j-/rK10bmF"> <mutation name="licht"> <arg name="button"></arg> <arg name="ein"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="q-S~S+O0usUFEH29nW-E"> <field name="ATTR">state.val</field> </block> </value> <value name="ARG1"> <block type="logic_boolean" id="$/j)O2ra|t9)h^$@i$!O"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="0[(od3jtT2]$A1$a$};A" x="137" y="-363"> <field name="NAME">dimm</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="math_change" id="ay^:v^GMiK8;@C.C{91L"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="DELTA"> <shadow type="math_number" id=",p-gkt;Nv8#h2}*;XqVf"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="-hl/L_),_!x:MXDb=iyJ"> <field name="VAR" id="r@NrZq0IZi*lPW#AYK/Q" variabletype="">delta</field> </block> </value> <next> <block type="controls_if" id="%kszP{vBYtCwZ/qzTtSa"> <value name="IF0"> <block type="logic_compare" id="-.%Q*lZ}FCy~^wP+p[:1"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="UA:CC7Vx~omd?~j2gEKs"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_number" id="99D.}K4,`E`IF@EOxgvF"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="v0aJHm1a3E.+HF6~ocI$"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="math_number" id="EtU#raSrJ7YV0iWJf:5J"> <field name="NUM">100</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="beN!nf7!FvW*:[ddES,]"> <value name="IF0"> <block type="logic_compare" id="79QUCa4(?d3Oot-2GPSk"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="~ZX5X]P$m)=9n4?B@8~-"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> <value name="B"> <block type="math_number" id="3:t:FbgDD?xLq~RgPObL"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="6-eEI]Ym2;J;X:G_J6rv"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> <value name="VALUE"> <block type="math_number" id=")Y-{eso01`GWZ-YsFUf;"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="control" id="[Ly(jC0qvD44B2M,`N;q"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="Zxd5^AHW3x`7Y(^h!Z?{"> <field name="VAR" id=".0n)fPPZ0Vnq@(#OkayL" variabletype="">level</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="NWZF^.s##C!,EL2.W.0%" x="137" y="-88"> <mutation> <arg name="button" varid="aJZ]={d,#UG6hNfL+g%q"></arg> <arg name="ein" varid="U0|}x*G;[=9}9Ql;A}WY"></arg> </mutation> <field name="NAME">licht</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="8oO0{BL}4az$9-8hSj?N"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="lYX/%Zr4$W!`HeoKa0|7"> <field name="VAR" id="aJZ]={d,#UG6hNfL+g%q" variabletype="">button</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="dbYw|pz[1kS)^NPuNqE|"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="`A80q|79.cVrAN3@zzkX"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_settimeout" id="c#ncZp7EQ8*QJ=XCRZ8Q"> <field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="TeeqM~uQR#SuLH3?:V?j"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> <value name="VALUE"> <block type="logic_boolean" id="llYi+Cqf.bt/).4]RgFz"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id=",b+2?RiSiTW:]fvU7,.6"> <mutation name="dimm"></mutation> <next> <block type="timeouts_setinterval" id=".3yOZ$x;4,sop[Q(rj8#"> <field name="NAME">Intervall</field> <field name="INTERVAL">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="ORqY8t}R;isC4Qbus(+^"> <mutation name="dimm"></mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="Zx?~y{}iOq-zpH-/|j;["> <field name="NAME">timeout</field> <next> <block type="timeouts_clearinterval" id="R.=w_d*Xk3h6nUuanj51"> <field name="NAME">Intervall</field> <next> <block type="controls_if" id="Dir-(XSm)akkXs3-Y^xH"> <value name="IF0"> <block type="logic_negate" id="N,HqW]LM,^8!@tY0P)wK"> <value name="BOOL"> <block type="variables_get" id=".{q|vn^g`}@9EpN{;zsZ"> <field name="VAR" id="R*r}N3kzibH)Apx7BA2q" variabletype="">long</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="G)M!#H6*^$UaGALg/o7I"> <mutation delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="WEi5d_diWt-*v)6q.f5R"> <field name="VAR" id="U0|}x*G;[=9}9Ql;A}WY" variabletype="">ein</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
Wie krass! Das funktioniert, unglaublich.
Ein wenig zickig ist es noch, nach loslassen der Tasten dimmt er noch weiter hoch oder runter, mal einen Schritt, mal mehrere, ich glaube je nachdem wie lange gedrückt war.
Wo muss ich was ändern, dass er bei langem Drücken nicht so weit runter dimmt, dass das Licht ausgeht, sondern bis max 10%
Ich habe mal die Anordnung der Button geändert, A0 ist oben und AI unten
Sonst scheint das sehr gut zu laufen.
Ich bin mehr als beeindruckt. -
@AxelF1977 sagte:
Wo muss ich was ändern, dass er bei langem Drücken nicht so weit runter dimmt, dass das Licht ausgeht, sondern bis max 10%
falls level < 10 setze level auf 10
@AxelF1977 sagte in Taster press short or long mit blockly:
nach loslassen der Tasten dimmt er noch weiter hoch oder runter,
Reagieren die Datenpunkte AI, AO nicht sofort auf den Taster ?
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte:
Wo muss ich was ändern, dass er bei langem Drücken nicht so weit runter dimmt, dass das Licht ausgeht, sondern bis max 10%
falls level < 10 setze level auf 10
falls level < 10 setze level auf 10 funktioniert perfekt, DANKE!
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte in Taster press short or long mit blockly:
nach loslassen der Tasten dimmt er noch weiter hoch oder runter,
Reagieren die Datenpunkte AI, AO nicht sofort auf den Taster ?
Es gibt ca. eine Verzögerung von 1 sek, dann kann aber an der HUE Bridge liegen. Die Taster reagieren teils etwas träge, auch beim normalen Schalten. Das Signal muss über einen USB Stick an den Raspi gesendet werden, dort vom Adapter verabeitet und an die Bridge gesendet werden.
An und aus hat auch eine Verzögerung.
-
@AxelF1977 sagte:
Es gibt ca. eine Verzögerung von 1 sek,
Dann ist der Intervallzyklus von 250 ms wohl etwas zu kurz. Verdopple ihn mal auf 500 ms.
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte:
Es gibt ca. eine Verzögerung von 1 sek,
Dann ist der Intervallzyklus von 250 ms wohl etwas zu kurz. Verdopple ihn mal auf 500 ms.
500 ist so langsam, das man das Gefühl bekommt, es dimmt nicht. Ich habs mit 350ms probiert, das scheint zu passen. Zwischendurch pausiert das Dimmen immer mal wieder, als wenn ein cache zu läuft durch die Daten.
Was mir noch auffällt, wenn ich hoch dimme, geht das Licht erst auf die 10% zurück, und dimmt dann hoch.
Das alles als Feedback, denn wenn das richtig funktioniert, haben da sicherlich mehrere User Interesse dran.
-
@AxelF1977 sagte:
wenn ich hoch dimme, geht das Licht erst auf die 10% zurück, und dimmt dann hoch.
Dieses Verhalten gibt das Skript nicht her.
-
@paul53 said in Taster press short or long mit blockly:
@AxelF1977 sagte:
wenn ich hoch dimme, geht das Licht erst auf die 10% zurück, und dimmt dann hoch.
Dieses Verhalten gibt das Skript nicht her.
Passiert aber komischer weise, ich kann es mir anhand des Scripts auch nicht erklären. Aber wie gesagt, sowas kann auch an der Hue Bridge liegen
-
Ein gutes Ergebnis liefern ein Intervall von 700ms und steps mit 9
-
Bekommt das ganze auch mit einem Tradfri On/Off Taster gebacken?
Dimmen läuft, nur an und aus mit kurzem Tastendruck läuft nicht.