NEWS
Neuer Adapter: iobroker.alexa2
-
Ich habe über den Adapter Bluetooth Datenpunkte meiner gespeichterten Geräte mit Alexa.
Nun verbinde ich eines, trotzdem bleibt der Datenpunkt connected auf false.
Er ändert sich auch nicht automatisch wenn ich den "Button" drücke oder als Wert selber true eingebe.
Habe ich da was übersehen?
-
Hallo,
wie ist es möglich über Alexa und die Routinen Werte eines Objekts abzurufen? `
Routinen Gar nicht meines Wissens nach.Gesendet vom Handy …
-
Ich habe über den Adapter Bluetooth Datenpunkte meiner gespeichterten Geräte mit Alexa.
Nun verbinde ich eines, trotzdem bleibt der Datenpunkt connected auf false.
Er ändert sich auch nicht automatisch wenn ich den "Button" drücke oder als Wert selber true eingebe.
Habe ich da was übersehen? `
Bluetooth Status wird aktuell noch nur beim Adapter Start aktualisiert. Im GitHub abstimmen bitte. Issue gib’s schon.Gesendet vom Handy …
-
Alles klar, danke für die schnelle Antwort .
-
Hallo,
habe leider das Update auf Alexa 2 gemacht.
Wie komme ich denn auf den Alexa 1 Adapter zurück?
Vlt. stehe ich auch auf dem Schlauch: Habe jetzt Alexa zugemüllt mit technischen Geräten, die nie zu steuern sind Z.B. HM RCV 50 BidCoS RF 21.LEVEL
und div. andere.
Ich hatte bisher im Alexa nur eine Hand voll Geräte aufgenommen und auch alle mit neuen Namen.
Diese sind teilweise übernommen worden (nicht alle korrekt geschrieben aber immerhin).
Wie füge ich denn einzelne Geräte zu Alexa 2 hinzu, wie ändere ich den Namen (oder geht das nur über die Objekt-Sicht?)
Der Alexa 1 Adapter war erheblich einfacher zu bedienen.
Noch eine Frage: Warum sind so ca. 30% der Geräte offline. Muster für mich nicht erkennbar ein paar Schalter, eine Rollo, ein paar Szenen…
Hat sich etwas beim cloud-Adapter geändert? Wie ist das Zusammenspiel?
-
Bei den smart devices unterscheiden sich Version 1 und 2 nicht. Die Liste ist die gleiche die auch in der alexa app angezeigt wird. Wenn du da schon „Müll“ drin hast dann wird der auch da angezeigt. Also schau mal in die App. Und wenn musst du da aufräumen.
Gesendet vom Handy …
-
Hat mal Jemand ein kurzes Blockly Beispiel wie ich den History trigger sinnvoll nutze ?
Ich möchte eine Abfrage an einem Echo starten und dann von genau dem gleichen Echo eine Antwort bekommen.
PS: also Konkret frage ich einen Echo z.B. im Wohnzimmer ob alle Fenster geschlossen sind und bekomme dann aus einem bestehenden Datenpunkt (Fensterscript) die offenen Fenster angesagt. Nur wie steuere ich jetzt Speak, das die Rückmeldung auch vom gleichen Echo kommt, ohne das ich einen angeben muß ? Ich denke ich müsste den History trigger auf wahr triggern, aber wann bzw. an welcher Stelle ? Der angefragte Echo hat ja nicht zwangsläufig als letzter gesabbelt…
PS: ich habe es nun hinbekommen. Falls es Jemand nachbauen möchte, hier einmal eine Temperaturabfrage und die Abfrage nach offenen Fenstern/ Türen (mit dem Fensterscript aus dem Forum)
Bei mir reichen die 500 ms und Alexa antwortet brav an dem Echo wo sie gefragt wurde.
-
Danke sigi das war wieder mal so nah und doch so fern die Funktion hatte ich nicht in betracht gezogen.
Danke für den Antsoss.
Was natürlich noch etwas geiler wäre wenn der IO prüft in einem Script und sie dann eben nur das jeweilige ausspricht mal sehen ob man dass hin bekommt.
MFG Maggi `
Hab ich wie folgt programmiert
Gruß
Matten Matten
-
COOL
Kannst du mir das exportieren?
Wobei mir das Objekt noch nicht klar ist….
-
na ja, da das Fensterscript hier aus dem Forum (ich glaube von Pix) über die Gewerke bei mir eh läuft, sind ja bei jeder Veränderung die geöffneten Fenster schon als Ausgabe vorhanden. Aufbereit als Texxt für Sayit und Telegram.
Nur diese Punkte greife ich bei mir ab.
-
COOL
Kannst du mir das exportieren?
Wobei mir das Objekt noch nicht klar ist…. `
hab es noch etwas optimiert
-
Hallo zusammen,
ich habe den Adapter installiert, bekomme aber bei allen Geräte nur den Status (enable) und den Punkt delete.
Ich habe alle möglichen Geräte und bei allen gleiche Ergebnis. Ich wollte eigentlich nur die Geräte steuern die über den SmartHub des Echo2 direkt eingebunden sind um meine anderen Hubs in den Keller legen zu können.
Und mit der Sprachausgabe werde ich direkt testen wenn ich zu Hause bin, wäre super!!!!!
Danke
-
Hallo zusammen,
ich habe den Adapter installiert, bekomme aber bei allen Geräte nur den Status (enable) und den Punkt delete.
Ich habe alle möglichen Geräte und bei allen gleiche Ergebnis. Ich wollte eigentlich nur die Geräte steuern die über den SmartHub des Echo2 direkt eingebunden sind um meine anderen Hubs in den Keller legen zu können.
Und mit der Sprachausgabe werde ich direkt testen wenn ich zu Hause bin, wäre super!!!!!
Danke `
Steuern kommt noch im nächsten Update oder so. Im Github bitte für das Issue abstimmen.
Was ist denn dieser "SmartHub"?
Edit:
Aaahhhhh: Da im Plus-Modell ein Smart-Home-Hub implementiert ist, muss dieser nicht zusätzlich angeschafft und eingerichtet werden. Es unterstützt den Zigbee-Standard, so dass alle Komponenten nach diesem Standard damit genutzt werden können.
Da ich sowas nicht habe wird es interessant … SInd denn die Geräte die du per Smarthub angeschlossen hast bei den "Smart-Home-Devices" zu finden?
Wenn ja hätte ich bitte gern mal das Debug Log vom Adapter
-
na ja, da das Fensterscript hier aus dem Forum (ich glaube von Pix) über die Gewerke bei mir eh läuft, sind ja bei jeder Veränderung die geöffneten Fenster schon als Ausgabe vorhanden. Aufbereit als Texxt für Sayit und Telegram.
Nur diese Punkte greife ich bei mir ab. `
Ja, nutze ich auch. Ich kann leider deine Bilder oben nicht vergrößern. Kannst du dein Blockly als Export reinstellen? -
na ja, da das Fensterscript hier aus dem Forum (ich glaube von Pix) über die Gewerke bei mir eh läuft, sind ja bei jeder Veränderung die geöffneten Fenster schon als Ausgabe vorhanden. Aufbereit als Texxt für Sayit und Telegram.
Nur diese Punkte greife ich bei mir ab.
Ja, nutze ich auch. Ich kann leider deine Bilder oben nicht vergrößern. Kannst du dein Blockly als Export reinstellen?
Ich nutze zwei Gewerke, einmal Fensterdrehgriffe und einmal Fensterkontakte. (ich habe deshalb zwei Fensterscripte laufen, da kannst Du dann eins aus dem Blockly raus nehmen. Ich habe die einfachen Kontakte im Erdgeschoß und die Drehgriffe im Keller)
Ich habe dieses Blockly, bzw. das Script in den Cloud Adapter eingefügt, das kann dann heißen wie es will, danach dann in der Alexa App Geräte suchen lassen und über eine Routine das eingefügte Gerät(script) ansprechen.
Hier der Blockly Export für die Ansage über Alexa Speak
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-162" y="-188"><mutation delay_input="false"></mutation>
<field name="OID">alexa2.0.History.#trigger</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3
+QWU"><field name="COMMENT">Wohnzimmer</field>
<next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-
nV"><mutation delay_input="false"></mutation>
<field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="3"></mutation>
<value name="ADD0"><block type="text" id="75Z)WnYF@;38~bIM;pA"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value> <value name="ADD2"><block type="get_value" id="E{tPb{Ec!is/-%_U9^ba"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement> <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field> <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value> <statement name="DO0"><block type="control" id="}?dK++*V.7JQcjG{3uhB"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="eE.L((.HuB3vE_4=e#-q"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="P
Rh;5QARrxn}K}cvS^"><field name="TEXT">Im Moment sind</field></block></value>
<value name="ADD1"><block type="get_value" id="[R~H:5)[.)a!9mnnr;U}"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
<value name="ADD2"><block type="get_value" id="]DyrNm:29uG:o{IGwdq8"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
<next><block type="comment" id="_amxz6B=9F}_2uEGsK}"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="oVpPd?8wyu_
,Zl8uRx"><mutation items="3"></mutation>
<value name="ADD0"><block type="text" id="5DQf2PxM}5U]YfhsCe!H"><field name="TEXT">Im Moment sind</field></block></value>
<value name="ADD1"><block type="get_value" id="xX/ccwLyk|@ksY}Zt=M^"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
<value name="ADD2"><block type="get_value" id="l,u{D%[Ft^szW:RgT%"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
<next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field>
<next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2XrHBIz5h"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ_"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="-8@wDdu%@L++1N
L0%kv"><mutation items="3"></mutation>
<value name="ADD0"><block type="text" id="u5JAG8YXkEe-WquJT-Cv"><field name="TEXT">Im Moment sind</field></block></value>
<value name="ADD1"><block type="get_value" id="Xh@YzGzw}dndnT!PR4,a"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
<value name="ADD2"><block type="get_value" id="!;FYe%8oL9Phuo01s(o/"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
<next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field>
<next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field>
<value name="A"><block type="get_value" id="StsaG2CB;5f5wIvH,kE"><field name="ATTR">val</field>
<field name="OID">alexa2.0.History.name</field></block></value>
<value name="B"><block type="text" id="7N;yy7cC=tE}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="Sr6ZKH|w+@i!r-:RGE5|"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="@WD{DbpE
(L1Is#/Am]"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="PQ/N3,cUuzqo^LRP;a@)"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value> <value name="ADD2"><block type="get_value" id="7Pq_Us,t=Z4jvPOSPzqp"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement> <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="z
vyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field>
<value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field>
<field name="OID">alexa2.0.History.name</field></block></value>
<value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value>
<statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation>
<field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="text_join" id="_UREy=Dns%13p{#}QG%"><mutation items="3"></mutation>
<value name="ADD0"><block type="text" id="DS8D]@iPZ0H#VUlSn#?Q"><field name="TEXT">Im Moment sind</field></block></value>
<value name="ADD1"><block type="get_value" id=":h6wum1yXIpr!:hKJ3G7"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
<value name="ADD2"><block type="get_value" id="g|Kl.rrqN3ZN;v8{1)0?"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
<next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field>
<next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field>
<value name="A"><block type="get_value" id="xF~b7{fV||4n}zB-}.u"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="F_[xezXeyr~*(A=q.YFJ"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="IY=qE)N;}#H)@
3FMX?."><mutation items="3"></mutation>
<value name="ADD0"><block type="text" id="RJC)ht0vVqRW(FvnbW"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="h1n!;q1L]DJlW{5:R2
]"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
<value name="ADD2"><block type="get_value" id="-80qQ]o?r@+~CQr7Oq]r"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
<next><block type="comment" id="E#D1a/,rcHdm3?Nx^:q"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="=s~d:-WIg1#TE
^zf9[4"><value name="IF0"><block type="logic_compare" id=":X%VM^+2MoYl-:u!WK"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="ql@
4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation>
<field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE"><block type="text_join" id="Han]KF1f.0IrY!Qc3Enb"><mutation items="3"></mutation>
<value name="ADD0"><block type="text" id="PXcu~o={]-N^S0)SE=}"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="8vb98
[j)NrH4+s7#|A@"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
<value name="ADD2"><block type="get_value" id="-Zpr897`o1FR+Bo=|cFu"><field name="ATTR">val</field>
<field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml>Und hier noch die Scripte dazu: Fensterdrehgriffe >! ```` /* System Zahl Fensterdrehgriffe >! zählt die Fensterdrehgriffe in allen Räumen und meldet die offenen Fensterdrehgriffe namentlich Daten kommen vom Gewerk 'Fensterdrehgriffe' >! erstellt: 17.06.2015 nach diesem Vorbild: http://forum.iobroker.net/viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564 05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php?f=21&t=473&start=20#p9267 02.12.2015 Fehler beseitigt bei Anzahl Fensterdrehgriffe, wenn offen (Unterscheidung RHS und TFK) Überprüfung des Zustandes (function Fensterdrehgriffestatus) und Übergabe an Text 25.01.2016 Fensterdrehgriffe Nummer in Log korrigiert (+1) 02.03.2016 Ansage für TTS aufbereitet 02.07.2016 Regulärer Ausdruck (gierig) bei Aufbereitung für Ansage */ >! function Fensterdrehgriffestatus(zustand) { var meldung; switch (zustand) { case 1: meldung = 'gekippt'; break; case 2: meldung = 'offen'; break; case true: meldung = 'TFK offen'; break; default: meldung = 'geschlossen'; break; } return(meldung); } >! createState('zählen_Fensterdrehgriffe.anzahlFensterdrehgriffe', { // wenn benötigt: Anzahl der vorhandenen Fensterdrehgriffe type: 'number', min: 0, def: 0, role: 'value' }); createState('zählen_Fensterdrehgriffe.anzahlFensterdrehgriffeauf', { // Anzahl der Fensterdrehgriffe, die auf sind als Variable unter Javascript.0 anlegen type: 'number', min: 0, def: 0, role: 'value' }); createState('zählen_Fensterdrehgriffe.textFensterdrehgriffeauf', { // Anzahl der offenen Fensterdrehgriffe und deren Namen als Variable unter Javascript.0 anlegen type: 'string', def: ' ', role: 'value' }); >! var cacheSelectorState = $('channel[state.id=*.STATE](functions="Fensterdrehgriffe")'); >! function countFensterdrehgriffe(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fensterdrehgriffe auf 0 var anzahlFensterdrehgriffe = 0; var anzahlFensterdrehgriffeauf = 0; var textFensterdrehgriffeauf = []; >! log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fensterdrehgriffe var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) var obj = getObject(id); var name = getObject(id).common.name; var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen if (status /*TFK*/ || status === 1 || status === 2 /*RHS*/) { // wenn Zustand offen, dann wird die Anzahl der Fensterdrehgriffe hochgezählt ++anzahlFensterdrehgriffeauf; textFensterdrehgriffeauf.push(devicename + ' (' + Fensterdrehgriffestatus(status) + ')'); // Name und Zustand zum Array hinzufügen } log('Fensterdrehgriffe #' + (i+1) + ': ' + devicename + ' ' + Fensterdrehgriffestatus(status)/* + ' (' + status + ' / ' + typeof status + ')'*/); ++anzahlFensterdrehgriffe; // Zählt die Anzahl der vorhandenen Fensterdrehgriffe unabhängig vom Status }); // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben log("Text: " + textFensterdrehgriffeauf); log("Anzahl Fensterdrehgriffe: " + anzahlFensterdrehgriffe + " - davon Fensterdrehgriffe auf: " + anzahlFensterdrehgriffeauf); >! // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState("zählen_Fensterdrehgriffe.textFensterdrehgriffeauf", textFensterdrehgriffeauf.join(',\n')); // Schreibt die aktuelle Namen der offenen Fensterdrehgriffe setState("zählen_Fensterdrehgriffe.anzahlFensterdrehgriffeauf", textFensterdrehgriffeauf.length); // Schreibt die aktuelle Anzahl der offenen Fensterdrehgriffe setState("zählen_Fensterdrehgriffe.anzahlFensterdrehgriffe", anzahlFensterdrehgriffe); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fensterdrehgriffe } >! cacheSelectorState.on(function(obj) { // bei Zustandänderung *. STATE im Gewerk Fensterdrehgriffe countFensterdrehgriffe(obj); }); >! // Variable für Ansage aufbereiten createState('zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage', { type: 'string', def: ' ', role: 'value' }); // Anzahl der Fensterdrehgriffe, die auf sind, für Ansage aufbereitet var idQuelle = 'javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeauf', idAnsage = 'javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage'; >! on(idQuelle, function (obj) { var text = obj.state.val; //text = text.replace(/RHS/g, 'Fenster'); text = text.replace(/TFK/g, 'Reedkontakt'); text = (text.length > 1) ? 'Geöffnete Fenster im Keller: ' + text : 'Alle Fenster im Keller geschlossen'; setState(idAnsage, text); }); >! //on({id: "javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage"/*zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage*/, change: "ne"}, function (obj) { // var value = obj.state.val; // var oldValue = obj.oldState.val; // sendTo("telegram", "send", { // text: getState("javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage").val, // disable_notification: true // }); //});
Fensterkontakte
! ````
createState('zählen_Fensterkontakte.anzahlFensterkontakte', { // wenn benötigt: Anzahl der vorhandenen Fensterkontakte
type: 'number',
min: 0,
def: 0,
role: 'value'
});
createState('zählen_Fensterkontakte.anzahlFensterkontakteauf', { // Anzahl der Fensterkontakte, die auf sind als Variable unter Javascript.0 anlegen
type: 'number',
min: 0,
def: 0,
role: 'value'
});
createState('zählen_Fensterkontakte.textFensterkontakteauf', { // Anzahl der offenen Fensterkontakte und deren Namen als Variable unter Javascript.0 anlegen
type: 'string',
def: '',
role: 'value'
});
! var cacheSelectorState = $('channelstate.id=*.STATE');
! function countFensterkontakte(obj) {
// Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fensterkontakte auf 0
var anzahlFensterkontakte = 0;
var anzahlFensterkontakteauf = 0;
var textFensterkontakteauf = [];
! log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
! cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element .STATE im Gewerk Fensterkontakte
var status = getState(id).val; // Zustand .STATE abfragen (jedes Element)
var obj = getObject(id);
var name = getObject(id).common.name;
var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
if ( status === 1 || status === 2) { // wenn Zustand offen, dann wird die Anzahl der Fensterkontakte hochgezählt
++anzahlFensterkontakteauf;
textFensterkontakteauf.push(devicename ); // Name und Zustand zum Array hinzufügen
}
log('Fensterkontakte #' + (i+1) + ': ' + devicename + ' ' / + ' (' + status + ' / ' + typeof status + ')'/);
++anzahlFensterkontakte; // Zählt die Anzahl der vorhandenen Fensterkontakte unabhängig vom Status
});
! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
log("Text: " + textFensterkontakteauf);
log("Anzahl Fensterkontakte: " + anzahlFensterkontakte + " - davon Fensterkontakte auf: " + textFensterkontakteauf.length);
! // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
setState("zählen_Fensterkontakte.textFensterkontakteauf", textFensterkontakteauf.join(', ')); // Schreibt die aktuelle Namen der offenen Fensterkontakte
setState("zählen_Fensterkontakte.anzahlFensterkontakteauf", textFensterkontakteauf.length); // Schreibt die aktuelle Anzahl der offenen Fensterkontakte
setState("zählen_Fensterkontakte.anzahlFensterkontakte", anzahlFensterkontakte); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fensterkontakte
}
! cacheSelectorState.on(function(obj) { // bei Zustandänderung *. STATE im Gewerk Fensterkontakte
countFensterkontakte(obj);
});
! // Variable für Ansage aufbereiten
createState('zählen_Fensterkontakte.textFensterkontakteaufAnsage', {
type: 'string',
def: '',
role: 'value'
});
// Anzahl der Fensterkontakte, die auf sind, für Ansage aufbereitet
var idQuelle = 'javascript.0.zählen_Fensterkontakte.textFensterkontakteauf',
idAnsage = 'javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage';
! on(idQuelle, function (obj) {
var text = obj.state.val;
text = (text.length > 1) ? 'Geöffnete Fenster im Erdgeschoss: ' + text : 'Alle Fenster im Erdgeschoss geschlossen';
setState(idAnsage, text);
});
! // on({id: "javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage"/zählen_Fensterkontakte.textFensterkontakteaufAnsage/, change: "ne"}, function (obj) {
// var value = obj.state.val;
// var oldValue = obj.oldState.val;
// sendTo("telegram", "send", {
// text: getState("javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage").val,
// disable_notification: true
// });
//});Telegram ist hier nur auskommentiert… PS: ich baue mir gerade die Ausgabe im Fensterscript (und auch Licht/Steckdosen usw.--- also auch für andere Gewerke) so um, das die Ausgabe für den Alexa2 Adapter für speak etwas schöner sind, habe ich bisher nur für Telegram genutzt)
-
Guten Tag,
vielen Dank für diesen astreinen Adapter!
Wirklich tolle Arbeit!
Ich hätte jedoch die Frage, ob es möglich ist, zu erkennen ob der Wecker klingelt. Hintergrund ist, dass ich es gerne realisieren würde, dass wenn der Alexa Wecker klingelt, eine bestimmte WLAN-Glühbirne an geht.
Grüße!
-
Ich hätte jedoch die Frage, ob es möglich ist, zu erkennen ob der Wecker klingelt. Hintergrund ist, dass ich es gerne realisieren würde, dass wenn der Alexa Wecker klingelt, eine bestimmte WLAN-Glühbirne an geht. `
Wecker wird noch kommen, aber das "starten" eines Weckers habe ich bisher noch nicht hinbekommen. Das "mach Wecker aus" bekommen wir hin
-
Ich habe hier noch ein Beispiel für die Lichtabfrage und Ausgabe über speak gebaut. Ich habe nur Philips Hue und den Adapter dazu im Einsatz. Polling habe ich im Hue Adapter etwas kürzer gestellt. Die erstellten Hue Räume habe ich nur noch dem Gewerk Licht und dem Raum zugeordnet.
Scripte sind hier im Forum zusammengesucht und etwas an die Abfrage angepasst.
Vielleicht braucht es Jemand. Scripte schiebe ich gleich nach.
Script zum Licht prüfen (Philips Hue - level)
! ````
//Lichter Status
var logging = true;
! var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein',
idAnzahl = 'javascript.0.Status.Lichter.Anzahl',
idText = 'javascript.0.Status.Lichter.Text',
idRaum = 'javascript.0.Status.Lichter.Raum',
idAnsage = 'javascript.0.Status.Lichter.Ansage';
! // Ab hier nix mehr ändern
createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter
type: 'number',
name: 'Anzahl aller Lichter',
min: 0,
def: 0,
role: 'value'
});
createState(idAnzahlEin, { // Anzahl der Lichter, die an sind als Variable unter Javascript.0 anlegen
type: 'number',
name: 'Anzahl der eingeschalteten Lichter',
min: 0,
def: 0,
role: 'value'
});
createState(idText, { // Anzahl der eingeschalteten Lichter und deren Namen als Variable unter Javascript.0 anlegen
type: 'string',
name: 'Eingeschaltete Lichter',
desc: 'Namen der eingeschalteten Lichter',
def: ' ',
role: 'value'
});
createState(idAnsage, {
type: 'string',
name: 'Eingeschaltete Lichter (Ansage)',
desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)',
def: ' ',
role: 'value'
});
createState(idRaum, { // Räume, in denen Lichter brennen
type: 'string',
name: 'Räume mit eingeschalteten Lichter',
desc: 'Namen der Räume, in denen Lichter eingeschaltet sind',
def: ' ',
role: 'value'
});
! var cacheSelectorState = $('channelstate.id=*.state'); // Gewerk Licht
var cacheSelectorLevel = $('channelstate.id=*.level');
! function checkDevices(obj) {
// Setzt die Zähler vor dem Durchlauf aller Elemente *.state im Gewerk Licht auf 0
var anzahlLichterAn = 0;
var anzahlLichter = 0;
var textLichterAn = [];
var textRaum = [];
if (logging) {
log('++++++ Lichter Anzahl ++++ ');
log('#### SCHALTER ##### ');
}
cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.state im Gewerk Licht
var obj = getObject(id);
var name = getObject(id).common.name;
var status = getState(id).val; // Zustand *.state abfragen (jedes Element)
var devicename = name.substring(0, name.indexOf(".state")); //.state aus Text entfernen
var raumname = getObject(id, "rooms");
! // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
//if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) {
if (logging) {
log('-------');
log('Kanal: ' + name);
log('Status: ' + status);
}
if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
++anzahlLichterAn;
textLichterAn.push(devicename); // Zu Array hinzufügen
textRaum.push(raumname.enumNames);
}
++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
// } // ENDE VK-Abfrage
});
! if (logging) log('#### DIMMER ##### ');
cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.level im Gewerk Licht
var obj = getObject(id);
var name = getObject(id).common.name;
var status = getState(id).val; // Zustand *.level abfragen (jedes Element)
var devicename = name.substring(0, name.indexOf(".level")); //.level aus Text entfernen
var raumname = getObject(id, "rooms");
! //########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten
! if (logging) {
log('-------');
log('Kanal: ' + name);
log('Status: ' + status + '%');
}
if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
++anzahlLichterAn;
textLichterAn.push(devicename); // Zu Array hinzufügen
textRaum.push(raumname.enumNames);
}
++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
} // Ende Abfrage VK
});
! // Array mit Lichternamen sortieren
textLichterAn.sort();
textRaum.sort();
// Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
if (logging) log("Text: " + textLichterAn);
if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn);
// die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
setState(idText, textLichterAn.join(', und ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
//setState(idRaum, textRaum.join(',
')); // Räume, in denen Licht brennt
setState(idRaum, textRaum.join(', und ')); // Räume, in denen Licht brennt
}
! // Trigger
cacheSelectorState.on(function(obj) { // bei Zustandänderung *.state im Gewerk Licht
if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
checkDevices();
});
cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.level im Gewerk Licht
if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
checkDevices();
});
! function main() {
setTimeout(function(){
if (logging) log('Auslöser Skriptstart');
checkDevices();
}, 2000);
}
! main(); // Skriptstart-Auslöser
! // Aufbereitung für Ansage
//function strip_tags(data) {
//var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
//return(rueckgabe);
//}
! on(idText, function (obj) {
var text = obj.state.val;
text = (text.length > 1) ? '' + text : 'alle Lampen ausgeschaltet';
setState(idAnsage, text);
});Blockly Export Lichtabfrage und Ausgabe über speak (bei mehreren ECHOS kommt die Ausgabe am gefragten ECHO–-ich habe hier viele drinn :D ) >! ```` <xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-187" y="-162"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.History.#trigger</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{`Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> <next><block type="controls_if" id="{_JT|3Mpv*tSOVWD3Pz6"><value name="IF0"><block type="logic_compare" id="D?,*QGBBwauCm,Qte=Q-"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="]irLwLWGul].x{m`.#.@"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value> <value name="B"><block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"><field name="NUM">0</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="2"></mutation> <value name="ADD0"><block type="text" id="75Z)Wn`YF@;38~bIM;pA"><field name="TEXT">aktuell sind</field></block></value> <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Ansage</field></block></value></block></value> <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3`+QWU"><field name="COMMENT">Wohnzimmer</field> <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B`*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-`nV"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field> <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value> <statement name="DO0"><block type="control" id="}?dK++*V.7JQcjG{3uhB"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="qHoN]~u1FI@iDQs*2C2v"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="_amxz6B=9F}_2uEGsK}`"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*X*~qQG3]~[NC{WMMndW"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2Xr`HBIz5h"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ_"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="5q6/z~S`0DeJ6sYrWhj1"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="StsaG2CB;*5f5wIvH,kE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7N;yy7cC=tE`}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="NurE:%K_z!^Vlj(fn5qI"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="z`vyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="ft7Uf33@IB1zu_xdTAxn"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field> <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="xF~b7`{fV||4n}zB-}.u"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="F_[xezXeyr~*(A=q.YFJ"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="SjtrIJ?gA20oj88N|srb"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="E#D1a/,rcH`dm3?Nx^:q"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="=s~d:-WIg1#TE`^zf9[4"><value name="IF0"><block type="logic_compare" id="*:X%VM^+2MoYl-:u!WK`"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="ql@`4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="P[ojMqQDVRouu#vN~{[%"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement> <next><block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"><value name="IF0"><block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value> <value name="B"><block type="math_number" id="j-blGyC;V4jTLHKvikXr"><field name="NUM">0</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="mk,--n%8x}e1WshOCBc."><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"><field name="TEXT">Im Moment sind im</field></block></value> <value name="ADD1"><block type="get_value" id="i?[Ze,W23|M`_S5@d?;q"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Raum</field></block></value> <value name="ADD2"><block type="text" id="NqEob9;8UT11wT`dCQi#"><field name="TEXT">eingeschaltete Lampen</field></block></value></block></value> <next><block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u"><field name="NAME">timeout2</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="3e5[cR-lQ2P@g3-V]T.*"><field name="COMMENT">Wohnzimmer</field> <next><block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9"><value name="IF0"><block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Oe@)VM+1Y`_1YJn?6xyl"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="Q8@T8q|P]D*WR6aG#*j0"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="r|w?GKF2R8A%WSX@AP[|"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="Lg@:ha-a2x,0rfhC.]_="><field name="COMMENT">Küche</field> <next><block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"><value name="IF0"><block type="logic_compare" id="*r~k%Po!vzUQHybU`)sv"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="285L,qT@eWkZS(#hgXnl"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="w!HtM,nb,KI1aqaOeI36"><field name="TEXT">Küche</field></block></value></block></value> <statement name="DO0"><block type="control" id="_H{%k4b|sj!:P^rDu%};"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="~51B8(3{stq1BpR1J~p%"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="0Y;8c=RG%f;qqP2yyjbm"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id="JS`zfpqZ~NiBhWxa_;gH"><value name="IF0"><block type="logic_compare" id="-7AVWpsa42LalJseqzv{"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="cm6sMr|*pCsxx{9uCMrm"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7+szyIbBBP!dtC~D1h)O"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="Hg;Dq%gJEXg{SLV;t6{6"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*lX{ZM`VBTc}A`1!gM9H"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id=":Ka+W*uwIV:h(pjzq_h,"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="Ug#8mH1FI!icK/)QEYjQ"><value name="IF0"><block type="logic_compare" id=")@76q4MZ/}oCH_mLKWO4"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="iI-HkvUXFC@;;_+[TcRP"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="#:=Dp]Dt1gil*WOPj/h{"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="yoHnz^WG58=+X)|S-u8#"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="Y8LHCPPH..OnEJN^sjFQ"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="!40Mmgu)T0A3-qPaF9yO"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="b/SgE1YjT,ld[nn}{%RH"><value name="IF0"><block type="logic_compare" id="c)SjW;jeX|#Fh/Cha,,3"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="H9=}F/!XKY9UBnnbr~D/"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="r^EgI!FQ;-DPWFF_D!C1"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id=";7jyou9f+V(`5**;CDV?"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="Q_k9kSJVNP5e%a8((xhe"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="`?k8YL[;!mE5;-NddVTc"><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"><value name="IF0"><block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Zr`S-l8E!}8.4{,qM9*i"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="te+gSwhWiVR4,scYV%ca"><field name="TEXT">Schlafzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="grH6#whY1.N-q[pLM5X."><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="N3@K2BRC7C5N9daBycv_"><field name="COMMENT">Keller-Flur</field> <next><block type="controls_if" id="HPxOdxs4N%j2umWTfUNG"><value name="IF0"><block type="logic_compare" id="DX=kCQ/,E6kqYsQ}/=[e"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="XionPRa91nQ16NK(N9+."><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="ZB}mEWERKZ/fb~*Lwd1A"><field name="TEXT">Keller-Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="kPLG+9decg*iGUm87`-2"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="}.I+7-Frw4fjj1-N[AeP"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C~L9w[G_b.Hb*%7oT~aE"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="`;ot|i:*)I|EwW@zS,B2"><value name="IF0"><block type="logic_compare" id="H!ldSYtR|C|^VcqxS;Xt"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="I)o6A2U2(,A7e|4.8lo."><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="s4owS.Ww){6ayek?VzFb"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="5Gh*aVl-x(IPCnF@5,5/"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="dmO{yR;|g@(rZJE,HX4k"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></xml>
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 2f092e.jpg">https://uploads.tapatalk-cdn.com/20180807/8cfed7977c53f7054827f338fb2f092e.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 932052.jpg">https://uploads.tapatalk-cdn.com/20180807/b6c5485dbd0e6cb8553d4e4af3932052.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... eb5c2f.jpg">https://uploads.tapatalk-cdn.com/20180807/7c703a7f2040bcd2021d5bb5cdeb5c2f.jpg</link_text>" />~~~~ -
Hi,
das kann ich dir leider nicht sagen, da die Geräte bei mir nicht alle mit einem Namen im Adapter zu sehen sind. Ich sehe viele Smart Geräte ohne Namen, also nur die ID Nummer. Falls du mir sagen kannst wie ich von der ID auf das Gerät schliessen kann, schaue ich gerne mal nach.
Da ich sowas nicht habe wird es interessant … SInd denn die Geräte die du per Smarthub angeschlossen hast bei den "Smart-Home-Devices" zu finden?
Wenn ja hätte ich bitte gern mal das Debug Log vom Adapter `
-
Kannst Du Routinen in der App definieren die diese Smart-Hub-Geräte steuern können? Wenn ja leg mal so eine an.
Dann stell bitte mal die Instanz den Loglevel auf Debug und schicke mir per PN das Log (aus dem Logfile auf der Platte unter /opt/iobroker/log… NICHT Admin!) vom Start des Adapters.
Ich habe mit ein paar anderen gesprochen. Der Infostand ist das die Geräte da drin sind, aber wohl anders bedient werden als die "Skill-basierten" Geräte. Auch die Kontrolle scheint wohl anders zu laufen. Über Routinen könnte man ggf noch einen zweiten Weg sehen.
Das log könnte das grob prüfen.
Ansonsten wäre nur die Option:
Ich brauche Zugriff auf so einen Echo habe (müsste also meine App auf meinem Handy mit diesem Amazon-Account verbinden und dann Dinge schalten damit ich die Kommandos abfangen kann um es dann ggf zu sehen wie es läuft.