Hallo zusammen
Ich habe zwar keinen ConBee aber hier meine Umsetzung mit Blockly:
<xml xmlns="https://developers.google.com/blockly/xml">
<block type="on_ext" id="a1Q3HHsTup+o~i=fr=dJ" x="163" y="38">
<mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation>
<field name="CONDITION">ne</field>
<field name="ACK_CONDITION"></field>
<value name="OID0">
<shadow type="field_oid" id="piZa*86g(asq]$O96ZYX">
<field name="oid">zigbee.0.680ae2fffe37a1d2.button_play_pause</field>
</shadow>
</value>
<value name="OID1">
<shadow type="field_oid" id="wrjr,?;Va!wM/W/`$c(.">
<field name="oid">zigbee.0.680ae2fffe37a1d2.rotate_right</field>
</shadow>
</value>
<value name="OID2">
<shadow type="field_oid" id="hVlCLQL_2$]NRL0?T+N#">
<field name="oid">zigbee.0.680ae2fffe37a1d2.rotate_left</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="comment" id="Elv|FTB`f4.bI/,NnjM?">
<field name="COMMENT">Play_Stop</field>
<next>
<block type="controls_if" id="r0J$7Oy7^*tX5UEreok`">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_operation" id="tp):LULx(fN|s!hzN]Q." inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="H5]]5)BY)i6y=a./_l$J">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="}=L[F40q^n(:Q8._0;X2">
<field name="ATTR">val</field>
<field name="OID">zigbee.0.680ae2fffe37a1d2.button_play_pause</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="ntOMfCJ-dgSKRjDI.*J$">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="1~tbHCZC+xlr47+%1*U@">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="p,N=P+Y7iCiRhbN1nwht">
<field name="ATTR">val</field>
<field name="OID">0_userdata.0.Variablen.Sonos.WZ_Sound_Play</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="v(2SAoe{8cgZ|ggLNp_?">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="controls_if" id="kx2Fw*mAz/;tOva^_0,i">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="U~Yb^VLW%vm5)^N,Vvm(">
<field name="OP">NEQ</field>
<value name="A">
<block type="get_value" id="@qPDUsV5B@9B-f.4[u=#">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.state</field>
</block>
</value>
<value name="B">
<block type="text" id="_e3#f6,2m`*xdDkw.3Wg">
<field name="TEXT">play</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="{/YdA]^k.rXPJs4xDFuc">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">scene.Sonos_Andy</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="D9U$h/k{;:q0S.)@V1|#">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<statement name="ELSE">
<block type="control" id="3U5{^}xv07.X;mtK+h@%">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">scene.Sonos_Andy</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="P@%OuJb7q{W:,@H9J_s]">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
<value name="IF1">
<block type="logic_operation" id=".R{-$_Oz`36cpv`QdEZ*" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="pE$*?i*okb0fTQQHnTiL">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="}.+W[@d35FIdmkE,;F}v">
<field name="ATTR">val</field>
<field name="OID">zigbee.0.680ae2fffe37a1d2.button_play_pause</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="CV74%CTSAwuZr;@v9R*N">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="XS`404}=[9#DjSQQCeT:">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="kiapP:Y-H^I0YW9(sr8k">
<field name="ATTR">val</field>
<field name="OID">0_userdata.0.Variablen.Sonos.WZ_Sound_Play</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="9xi7:L+4?|E;_4**T;h9">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="controls_if" id="u7O$Tu4xgsSGh.gZYA#m">
<mutation else="1"></mutation>
<value name="IF0">
<block type="logic_compare" id=";3sw)CRC{NvZmDU4,Naq">
<field name="OP">NEQ</field>
<value name="A">
<block type="get_value" id="P~#Bg+XKD2,J!E`INmt,">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.state</field>
</block>
</value>
<value name="B">
<block type="text" id="kI]`z`$bVB~Y%k.kLq+-">
<field name="TEXT">play</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="sZr5i(+VY`}IN~mrTqaJ">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">scene.Sonos-Gruppe_UG</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="^YqT%A5+9;EldQ;zc%Xt">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</statement>
<statement name="ELSE">
<block type="control" id="yy^Dr(a2h;:.ab~t|vtP">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">scene.Sonos-Gruppe_UG</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="logic_boolean" id="R1HLTiDjp8LIZW1voVFc">
<field name="BOOL">FALSE</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
<next>
<block type="comment" id=")`x`.{XbIbPXqO[fi-^W">
<field name="COMMENT">Lautstärke_lauter</field>
<next>
<block type="controls_if" id="]Gd04K]GrdP_]MPThL_6">
<value name="IF0">
<block type="logic_operation" id="Mz^|B0B@TJf`,cpKDW;j" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="F?VtM,6u%{h5mi*T`~:2">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="3GH-PLVVct*@lj2rS%/M">
<field name="ATTR">val</field>
<field name="OID">zigbee.0.680ae2fffe37a1d2.rotate_right</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="+IS$1;El~+mU)5-T.5tl">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="=${M243,rT3]r__XTmfE">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="(/[E,.dBp@dQ}y3qmUVx">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.state</field>
</block>
</value>
<value name="B">
<block type="text" id="sds.1?Z#Wt$nMZ-]p9g:">
<field name="TEXT">play</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="1N84P}5i`ci9,V4}PQ!;">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_arithmetic" id=",f_Vi/!v]ndVnss7|OB)">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="9h7+;VtZXH:!MgGZ;S-4">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="]TLX}Dro79_hc~h:a7t0">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="D8^3O=]61i7y%+Pyg!80">
<field name="NUM">4</field>
</shadow>
</value>
</block>
</value>
</block>
</statement>
<next>
<block type="comment" id="@m6s@bjSYsS@:iDzOxeL">
<field name="COMMENT">Lautstärke_leiser</field>
<next>
<block type="controls_if" id="IV4Dp_;TFRG?jrdw1M4R">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_operation" id="4Q-UQx8,Q8-bU_.UKav?" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_operation" id="iPY.kcfn+xxKT*D,N_+D" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="5@?:(u)#V0`{sU%wMGt;">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="--~gj1nFU}iYehNr)u|!">
<field name="ATTR">val</field>
<field name="OID">zigbee.0.680ae2fffe37a1d2.rotate_left</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="3N.;CRP!w-ZRy@h2DT_p">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="WE4jSCKp+W0W_oigIaHJ">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="LZOFNwc3_/.`,9LWw.vU">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.state</field>
</block>
</value>
<value name="B">
<block type="text" id="}[-+w_,3r{aU8q:+$e$7">
<field name="TEXT">play</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="Rrvl15Y=6x-}]Y5A^Da^">
<field name="OP">LTE</field>
<value name="A">
<block type="get_value" id="h7!}Y(j,W=@a=DxXVIkr">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
</block>
</value>
<value name="B">
<block type="math_number" id="V/*PK!Q;KLWMc9]Nmwtm">
<field name="NUM">4</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="PD|:2h5/-J}T]kYL1#fV">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="}ngNV@2!?X8X.L1F8]IX">
<field name="NUM">3</field>
</block>
</value>
</block>
</statement>
<value name="IF1">
<block type="logic_operation" id="H?4,TlVVyV6HIG~zN8}%" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_operation" id="7u8a-6f/F=Oone-a9lb0" inline="false">
<field name="OP">AND</field>
<value name="A">
<block type="logic_compare" id="aq+fk0.sWc.}#M5TLT/T">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="_Wgx;w$s5u+$W1.`HAAk">
<field name="ATTR">val</field>
<field name="OID">zigbee.0.680ae2fffe37a1d2.rotate_left</field>
</block>
</value>
<value name="B">
<block type="logic_boolean" id="1:E)-t$C63~51,p3%/P}">
<field name="BOOL">TRUE</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="NG[^(s2`}bXf%6-POJtN">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="BT_7L+8d|+XNs-ucD~f]">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.state</field>
</block>
</value>
<value name="B">
<block type="text" id="X;$q%Gr5gb5ztAZ{O7FP">
<field name="TEXT">play</field>
</block>
</value>
</block>
</value>
</block>
</value>
<value name="B">
<block type="logic_compare" id="^213@9L=-|E,+[~/~,M6">
<field name="OP">GT</field>
<value name="A">
<block type="get_value" id="N[Jk[rYs3st5Cr^CyRNp">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
</block>
</value>
<value name="B">
<block type="math_number" id="3SG3USa#{+S:=@.BEiyD">
<field name="NUM">4</field>
</block>
</value>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="control" id="b{@qdKGAJl6X2;nP.BK)">
<mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_arithmetic" id="K@psN$+lrCD.LNU3KRN{">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="RJzED8HlSf4:[6}+XA#^">
<field name="ATTR">val</field>
<field name="OID">sonos.0.root.192_168_1_157.volume</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="3+6K6?eF^1[DfLR%}[dZ">
<field name="NUM">4</field>
</shadow>
</value>
</block>
</value>
</block>
</statement>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</xml>
[image: 1592305363180-6c1109f5-7e97-4127-a0a7-b7b451238963-image.png]
Vielleicht hilft das etwas...