NEWS
IoBroker Alexa Bewegungsmeldern
-
Hallo
Ich möchte gerne im Gäste WC meine Alexa Echo Dot über einen Bewegungsmeldern das Radio Ein/Ausschalten lassen.Hat das schon jemand gemacht?
-
@kippe
Sollte eigentlich kein Problem sein: -
Hallo
Und welchen Bewegungsmeldern würdet Ihr empfehlen ?
Könnte mir das mal jemand genau erklären wie ich das Anschließe und das alles im ioBroker zu machen ist ? -
@kippe
Bzgl. Bewegungsmelder gibt es viele:
Homematic, MiHome, Shelly, Generell Zigbee, ........
"Könnte mir das mal jemand genau erklären wie ich das Anschließe und das alles im ioBroker zu machen ist ?
" Ich verstehe die Frage nicht ?
Meinst du damit wie Iobroker generell funktioniert ? Ich denke dies würde hier zu weit führen.
Schau mal hier: https://www.iobroker.net/#de/documentationHeiko
-
@kippe sagte in IoBroker Alexa Bewegungsmeldern:
Könnte mir das mal jemand genau erklären wie ich das Anschließe und das alles im ioBroker zu machen ist ?
Du brauchst zunächst ein Empfängermodul am ioBroker und die entsprechende Adapter-Software dazu. Das Empfängermodul muss natürlich zur Sendetechnik des Bewegungsmelders passen. Es gibt da z.B. u.a. ZigBee, RFLink, ...
Wie Du eine Meldung des Bewegungsmelders per Skript abfängst, siehst Du beispielhaft hier: https://www.smarthomejetzt.de/mit-dem-xiaomi-smart-motion-bewegungsmelder-das-licht-automatisch-schalten/
-
Hallo
Also jetzt noch mal vor vorne
Ich habe mir den Phillips Hue Bewegungssensor gekauft, und habe ihn mit der Phillips Hue Bridge angelernt.
Ich möchte ja den Bewegungsmelder im Bad haben, um bei Bewegung Musik zu haben haben, und beim rausgehen soll sie wieder ausgehen. Jetzt habe ich hier im Forum gelesen, das es über den ioBroker per crypt gesteuert werden kann.
Ich habe mal ein Bild mit angefügt wie es gehen soll. Jetzt stehe ich nur auf dem Schlauch, wie ich die Datenpunkte wo und wie hin müssen. Welche Datenpunkte brauche ich denn genau und wovon? Alexa-----Hue------ oder ?
Ich habe mal einfach Bilder gemacht. Ich würde mich sehr freuen, wenn mir da jemand helfen könnte.Danke
-
@kippe Sorry, ich habe jetzt keine Erfahrung mit HUE, aber mit TradFri...ich gehe aber davon aus, dass im Prinzip viele Sensoren gleich funktionieren.
Beim TradFri sieht es so aus, dass er getriggert wird und dann für eine gewisse Zeit in Stby geht. Das Ganze wohl deshalb, damit nicht jedesmal das Licht ausgeht, wenn ich mich mal nicht bewege..
Hier ist aber das erste Problem für deinen Lösungsansatz...im Grunde wird die Musik immer dann ausgehen, wenn dein Bewegungssensor keine Bewegung mehr "sieht". Von daher musst Du immer mit Timeouts oder anderen Anzeichen arbeiten, dass Du noch im Bad bist.Der entscheidende Punkt in deinem Listing ist der Datenpunkt "presence". Das ist ähnlich wie in TradFri. Prüfe also erstmal, wie lang der in Stby ist. Dann könnte zunächst mal ein Timeout ausreichen, der die durschnittliche Länge einer Nicht-Bewegung überbrückt.
Also (wenn ich dein Problem richtig verstanden habe), musst Du dch rein für die Funktionalität nicht um zusätzliche Datenpunkte kümmern, denn der Datenpunkt "presence" wird mit dem Sensor automatisch angelegt.
-
Wenn ich denDatenpunkt presence nehme, ändert sich nichts bei bewegen von true nach folse. Wenn ich den Datenpunkt on händisch von true auf false und ungeklärt setze geht die Musik an bzw. wieder aus.
Ich verstehe das nicht
-
@kippe Der Hue BWM setzt den Status sehr schnell wieder auf false...
Anbei mal mein Blockly, vielleicht kannst Du es adaptieren (ich verwende den Alexa 2 Adapter).
Ich habe allerdings noch eingebaut, dass am Wochenende zu bestimmten Zeiten ein anderer Sender abgespielt wird (NDR2 spielt dann Bundesliga, interessiert mich nicht..).
Beste Grüße, Tom -
@kippe Kommunikation bitte hier im Thread.
Ich benutze den Hue Extended Adapter.
Wenn sich bei dir der Datenpunkt im Hue Adapter bei Bewegung vorm BWM nicht ändert, kann er natürlich auch dein Skript nicht triggern, also solltest du dort ansetzen.
Gibt es ggf. in den Adaptereinstellungen ein zu langes Aktualisierungsintervall, so dass der BWM schon wieder auf false gesetzt hat und das true gar nicht ankommt bevor der Datenpunkt aktualisiert wird? -
@tombo1969 Hallo tombo 1969
Könntest du mir das Blockly als import schicken. -
-
@kippe Das ist ja nu wirklich nicht so kompliziert nachzubauen, aber bitte :
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="timeout2">timeout2</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="comment" id="7J#)|bik8LvmnjrCa:bP" x="-238" y="13"> <field name="COMMENT">Trigger: Hue BWM mit state.presence</field> <next> <block type="on" id="1I~;0Y:yWavg}!Vu`ijC"> <field name="OID">hue-extended.0.sensors.048-sensor_gästeklo.state.presence</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="SL=gEl0@-F;HE$91PgUw"> <value name="IF0"> <block type="time_compare" id="9Y_Gf94)F-8#XGl:`83X"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">not between</field> <field name="START_TIME">00:45</field> <field name="END_TIME">06:00</field> </block> </value> <statement name="DO0"> <block type="controls_if" id=",B_A}?YvOt}0/i.hP-Cm"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="TVn3J2.T)*85?$D(;KPV"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="wcPphA2T/|x_e+NMiOt*"> <field name="OP">GT</field> <value name="A"> <block type="time_get" id="o-X;YDY_#|#H;,3zkb{i"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">wd</field> </block> </value> <value name="B"> <block type="math_number" id="@U4t2chabh#t}pSLy6p2"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="time_compare" id="Ev!vC.`Aczyl-`@C}?Y9"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">13:00</field> <field name="END_TIME">19:30</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="B^_M;L[V{oCL:k0|+l//"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="WkXk=33d[:H@V(o~E{01"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="*EV..b~TxK1(jM$sf!KX"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id=")Q.dfLHg#qHzh=R?||;$"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="tu~Zah,#*Ka#.s4Y$6`."> <field name="NAME">timeout</field> <next> <block type="comment" id="phnYxQ2_E.DBaywX%DM^"> <field name="COMMENT">Falls Player schon läuft nicht neu starten, sonst Unterbrechung beim Abspielen</field> <next> <block type="controls_if" id="UUmPF.8Y3;P2wCEzuoJS"> <value name="IF0"> <block type="logic_compare" id="/b;+_h=[30_]Ky/jOdc7"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="E!1q@e!(~nYJ*:3dwj-x"> <field name="ATTR">val</field> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.currentState</field> </block> </value> <value name="B"> <block type="logic_boolean" id="}3wY(wHO)/+Ng1B*Y{3P"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="PIo:PG8}-H1n02v8:7DZ"> <field name="COMMENT">Falls Lautstärke zu hoch, runterregeln</field> <next> <block type="controls_if" id="lsx72w=9Uz2t1U~|k[my"> <value name="IF0"> <block type="logic_compare" id="|v=z:;;j?QOUk}KemC%d"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="3g%NALL.[*N7)[$oxhd~"> <field name="ATTR">val</field> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.volume</field> </block> </value> <value name="B"> <block type="math_number" id=":+0:;Uv4zJd(CcX7-S0{"> <field name="NUM">15</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="p%)%7Id$(q$Janr_V5|E"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091JJ0ABCVWXYZ.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="nDFKsEKK;Q).h5u:$sqY"> <field name="NUM">15</field> </block> </value> </block> </statement> <next> <block type="comment" id=")I6Rl)GBk[/x}I{C-o6|"> <field name="COMMENT">Mit Verzögerung, damit Lautstärke gesetzt werden kann</field> <next> <block type="control" id="4J@}M*l/Dnm`0);,m/FW"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Music-Provider.TuneIn</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="lbpkn+O!#v-=yRMn.mpc"> <field name="TEXT">N-JOY</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="~i3w=PosaBQgdg41{t:%"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="0y_#:of[-(2@Uh]I-4n7"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="-f%3p,B!o1AZk#r=7{MG"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="5,t~A;CKD}i6nG[;U(SO"> <field name="COMMENT">Ende Play 3 Min nach letzter Bewegung</field> <next> <block type="timeouts_cleartimeout" id="uj:Y-;|c7^qse`aT[rT{"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id="TV|%1C6Vx^E_AL(q2N/t"> <field name="NAME">timeout</field> <field name="DELAY">180</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="$[wMZbcGw,o;o2H*gfU="> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.controlPause</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="C5M;G|iC_N=TV2(;|)F+"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> <value name="IF1"> <block type="logic_operation" id="+$Oud+07Uv.a_zVaXxkl"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="h|YJO@|N{r`FI{AFTiY:"> <field name="OP">LTE</field> <value name="A"> <block type="time_get" id="DcqpbSll-[J}K8oTJuGo"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">wd</field> </block> </value> <value name="B"> <block type="math_number" id="+9Cg]yYyRGi![{@cL%H)"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="time_compare" id=")_?3M~e3L|A3proZ~+i-"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">not between</field> <field name="START_TIME">13:00</field> <field name="END_TIME">19:30</field> </block> </value> </block> </value> <statement name="DO1"> <block type="controls_if" id="kM]Lsa:+Y3|uYg/dom8k"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id=")8EX4TKe(9-P9jGqZi#P"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="Xk!.jH+lo`%#@6d#ec6z"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="C8yP-GN9]?JFwb{9i^0h"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="Lv3`FDe@^!Q5xk/=oO:/"> <field name="NAME">timeout2</field> <next> <block type="controls_if" id="5RRd,Th6o40BkWHOUDEa"> <value name="IF0"> <block type="logic_compare" id="SO0lsB(TFW`e^MC/5X;T"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="J2)soo#*66[}5m)X@43@"> <field name="ATTR">val</field> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.currentState</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Au#(3|kK3U=0dOE~N=e0"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="/^e%=9EoAW.Gs:0eNb-}"> <value name="IF0"> <block type="logic_compare" id="=7@Ist9]:jHzfW[p(_l*"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="wPB]]QA[vR6$*`}!;p9-"> <field name="ATTR">val</field> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.volume</field> </block> </value> <value name="B"> <block type="math_number" id="4LtreCx0o`]$KHu.*9J="> <field name="NUM">15</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="b!~[MFI,#$8l+Py|R?p?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="C./wR?idT%QCGFEIyfP4"> <field name="NUM">15</field> </block> </value> </block> </statement> <next> <block type="control" id="AT(90*:d;BgN@Ts0_pro"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Music-Provider.TuneIn</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="text" id="l4K:Rp##H8YY3OyQk}Ue"> <field name="TEXT">NDR 2</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="gRYg!Y3iXQ3^|lYSs:tw"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="redR:R;6V9isp[1OhP*j"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="e3e#[kK^3N:f{scfGpWU"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_cleartimeout" id="*4#f~a2h5GY+e{713XAD"> <field name="NAME">timeout2</field> <next> <block type="timeouts_settimeout" id="t};u;xzvWid{;?6|O^W`"> <field name="NAME">timeout2</field> <field name="DELAY">180</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="@qH|Z)),O|3IwWHh+ALa"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091JJ09ABCVWXYZ.Player.controlPause</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="8N-~0VG{8@v:oN+{Ev*P"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </next> </block> </xml>
-
Hallo TomBo1969
Ich habe jetzt mal Zeit gehabt, und habe dein Blockly so übernommen.
Es läuft auch so Weit alles ok, nur mit den Zeiten für Fußball usw brauche ich nicht.
Es klingt echt blöde, aber könntest du mir Eventuell das Blockly so machen, das der Echo nur von 7-22 Uhr angeht.
Ich würde mich sehr freuen -
@kippe du brauchst doch nur das zweite "Falls" in dem nach den Wochentagen abgefragt wird und dann die Einstellungen um zweiten Sender rausschmeißen.
Das bekommst du schon hin!Und im ersten "Falls" deine Uhrzeiten anpassen natürlich..
-
Ich habe das mal anders aufgezäumt.
Statt mit Timeout mit Intervall.
So kann ich mir in der VIS anzeigen lassen wie lange das Licht bzw. die Musik noch läuft. -
Halllo
Ist das so richtig
Irgend was geht noch nicht so richtig.
Die Musik fängt nicht an zu spielen -
@kippe Keine Ahnung, setze halt debug outputs und schau im Log, ob das Skript überhaupt getriggert wird, ob es in die richtigen Schleifen läuft und teste auch, ob der Aufruf des Radiosenders überhaupt so funktioniert.
Ist ja ein überschaubares Skript, da kannst du die Fehlereingrenzung gut übenPS. Wenn dein Post zeitnah nach deinem Test geschrieben wurde, dann sollte das Radio, bei den von dir festgelegten Uhrzeiten, auch gar nicht spielen..
-
Ich verstehe die Welt nicht mehr
Bekomme es einfach nicht gebacken -
@kippe
siehe oben vor dem Postscriptum...