NEWS
Smart Gerät "Fernseher" nur über bestimmte Alexa steuern
-
Hallo zusammen,
erstmal ein großes Lob an das Forum.
Ich bin neu in die ioBroker Thematik eingestiegen und das Forum hat mir schon so bei manchen Fragestellungen weitergeholfen.
Allerdings habe ich jetzt eine Frage, die ich mir noch nicht beantworten konnte.
Ich hab meine Harmony über ioBroker eingebunden und mit Alexa verknüpft.
D.h. ich kann jetzt über "Alexa schalte den Fernseher ein", den Fernseher einschalten oder halt aus. Je nachdem.
Nun habe ich aber mehrere Alexa Dots in der Wohnung und der Befehl wird von jedem Alexa Dot ausgeführt, also auch von dem in der Küche oder im Schlafzimmer.
In der Cloud ist der Fernseher als "Switch" deklariert. In der Alexa App habe ich den Fernseher auch in die Gruppe "Wohnbereich" geschoben.
Gibt es eine Möglichkeit das nun auch nur die Alexa Wohnbereich den Befehl "Schalte Fernseher an" annimmt und die restlichen Alexa Dots diesen einfach verweigern?
Danke und Gruß
swoob
-
Erstmal willkommen, du kannst entweder das Gerät als Light deklarieren und dann in der alexa App diese als Bereich anlegest und dort dem echo das dann zu weist. Oder schau mal in den thread alexa Licht an. Man es legst hier in der so nicht verlinken. Dort ist ein Post von dslraser irgend was auf seit 6 oder so. Dort hat er ein Beispiel drin.
Mfg Maggi
Gesendet von meinem SM-G955F mit Tapatalk
-
Hi,
danke für die schnelle Antwort.
Das mit der Deklaration auf "Licht" hatte ich auch schon gelesen.
Allerdings habe ich richtige Leuchten im Wohnzimmer.
Ist es dann nicht so, dass wenn ich sage "Alexa Licht aus" das nicht nur die Leuchten sondern auch der Fernseher aus geht?
Gruß
swoob
-
Hallo zusammen!
Ich stand vor einem ähnlichen Problem und habe das so gelöst:
1: Dummy-Switch in ioBroker angelegt.
2: Den Switch "smart gemacht" (in deinem Fall z.B. Fernseher), damit ich den über Alexa steuern kann.
3: Ein Script geschrieben, dass bei einer Aktualisierung des Switches ausgelöst wird. Dieser schaut dann im Alexa-Adapter nach, von welchem Echo der letzt Befehl kam und führt dann über Bedingungen verschiedene Befehle aus. In deinem Fall: letzte Alexa gleich Wohnzimmer -> TV im Wohnzimmer einschalten, letzte Alexa im Esszimmer -> Sprachausgabe im Esszimmer "Hier gibt es keinen TV", usw.
Da die Alexa den Switch immer erfolgreich schaltet, kommt auch immer ein "ok" von der Alexa. Möchte man mit einer Sprachausgabe antworten, sollte diese ca. 700ms verzögert ausgegeben werden, da sie sich sonst überschneiden.
Vielleicht hilft dir dieser Ansatz.
-
Kurz es macht kein Sinn, wenn man bestimmte Dots ein Befehl ignorieren lässt. Mehrere Dots haben eigentlich den Sinn, dass man egal wo man sich gerade in der Wohnung befindet von Alexa verstanden wird. Es ist auch recht egal, ob jetzt der Dot im Schlafzimmer den Befehl annimmt und den TV einschaltet oder der im Wohnzimmer.
Den TV in eine Gruppe Wohnzimmer einzubinden, ist auch nur bedingt zu empfehlen. Da beim Befehl "Alexa, schalte Wohnzimmer aus" auch der TV mit ausgeht. Wen n man das wünscht, ist das OK.
Man kann doch aber alle Smartgeräte so zusammenfassen, wie man das möchte, oder sie in Routinen packen. Ich versteh ehrlich gesagt Dein Problem nicht wirklich.
Ich habe bei mir eine Routine angelegt, die heißt "Feierabend". Mit der schalte ich alle Lichter und den TV aus, gleichzeitig die Lichter im Bad und Schlafzimmer an und hier ist es auch egal welcher Dot das dann übernimmt. Ab und zu versteht mich der im Bad besser als der im Wohnzimmer, auch wenn ich gerade im Wohnzimmer bin. Hätte ich nun den im Bat deaktiviert auf den Befehl, würde sich nichts tun und das ist nicht Sinn der Sache.
-
Kurz es macht kein Sinn, wenn man bestimmte Dots ein Befehl ignorieren lässt. Mehrere Dots haben eigentlich den Sinn, dass man egal wo man sich gerade in der Wohnung befindet von Alexa verstanden wird. Es ist auch recht egal, ob jetzt der Dot im Schlafzimmer den Befehl annimmt und den TV einschaltet oder der im Wohnzimmer.
Den TV in eine Gruppe Wohnzimmer einzubinden, ist auch nur bedingt zu empfehlen. Da beim Befehl "Alexa, schalte Wohnzimmer aus" auch der TV mit ausgeht. Wen n man das wünscht, ist das OK.
Man kann doch aber alle Smartgeräte so zusammenfassen, wie man das möchte, oder sie in Routinen packen. Ich versteh ehrlich gesagt Dein Problem nicht wirklich.
Ich habe bei mir eine Routine angelegt, die heißt "Feierabend". Mit der schalte ich alle Lichter und den TV aus, gleichzeitig die Lichter im Bad und Schlafzimmer an und hier ist es auch egal welcher Dot das dann übernimmt. Ab und zu versteht mich der im Bad besser als der im Wohnzimmer, auch wenn ich gerade im Wohnzimmer bin. Hätte ich nun den im Bat deaktiviert auf den Befehl, würde sich nichts tun und das ist nicht Sinn der Sache. `
Kurz es macht kein Sinn, wenn man bestimmte Dots ein Befehl ignorieren lässt. Mehrere Dots haben eigentlich den Sinn, dass man egal wo man sich gerade in der Wohnung befindet von Alexa verstanden wird. Es ist auch recht egal, ob jetzt der Dot im Schlafzimmer den Befehl annimmt und den TV einschaltet oder der im Wohnzimmer.
Den TV in eine Gruppe Wohnzimmer einzubinden, ist auch nur bedingt zu empfehlen. Da beim Befehl "Alexa, schalte Wohnzimmer aus" auch der TV mit ausgeht. Wen n man das wünscht, ist das OK.
Man kann doch aber alle Smartgeräte so zusammenfassen, wie man das möchte, oder sie in Routinen packen. Ich versteh ehrlich gesagt Dein Problem nicht wirklich.
Ich habe bei mir eine Routine angelegt, die heißt "Feierabend". Mit der schalte ich alle Lichter und den TV aus, gleichzeitig die Lichter im Bad und Schlafzimmer an und hier ist es auch egal welcher Dot das dann übernimmt. Ab und zu versteht mich der im Bad besser als der im Wohnzimmer, auch wenn ich gerade im Wohnzimmer bin. Hätte ich nun den im Bat deaktiviert auf den Befehl, würde sich nichts tun und das ist nicht Sinn der Sache. `
Nun ja, sehe ich anders. Warum sollte das keinen Sinn machen ?
Jeder Haushalt und jedes Umfeld ist anders. Nur weil es für Dich keinen Sinn macht muss das nicht auch für den Rest der Welt zutreffen.
Ich mache das für bestimmte Aktionen genau so wie oben vom Fragesteller gewünscht. Der Grund ist: ich habe nicht nur einen Fernseher und steuere den Fernseher bzw. den Sat Receiver in jedem Raum mit dem gleichen Sprachbefehl, sonst müsste ich mir für jeden Raum andere Sprachbefehle/SmartNamen oder Routinen ausdenken…
Der nächste Grund ist, das ich nicht möchte das Jemand (Kinder, Enkel, Besuch oder eben Unwissende) in einem anderem Raum einen Sprachbefehl "probieren" und mir dann in dem Raum mit Fernseher irgendetwas an/aus oder umschalten. Ich habe teilweise zusätzlich zur "Dot-Erkennung" auch noch eine Anwesendheitserkennung mit in manchen Scripten, dann können bestimmte Geräte auch nur geschaltet werden wenn meine Frau oder ich zu Hause sind.
Aber das ist ja das schöne, das kann eben Jeder machen wie er will....
Ich wünsche einen schönen Restsonntag.
-
Ich mache das für bestimmte Aktionen genau so wie oben vom Fragesteller gewünscht. `
Ich sehe das genauso wie dslraser.
kurze Frage…machst Du das auch über die Seriennumer? (alexa2.0.History.serialNumber)
oder gibt es noch eine andere Möglichkeit.
var gSpotKueche = "G070RQXXXXXXXXXK"; var gSpotWecker = "G070RQXXXXXXXXX9"; on({id:"javascript.0.alexa.rolladen.sonneblendet",change:'any'}, function (obj) { var ID = getState("alexa2.0.History.serialNumber"); var lAusgabeEcho = "alexa2.0.Echo-Devices." + ID.val + ".Commands.speak"; if (ID.val == gSpotKueche) { setState("javascript.0.alexa.rolladen.Alexabefehl", 'KuecheSonne'); setState(lAusgabeEcho, 'Warte kurz, ich fahre die Rollade in der Küche herunter!'); } if (ID.val == gSpotWecker) { setState("javascript.0.alexa.rolladen.Alexabefehl", 'SchlafenSonne'); setState(lAusgabeEcho, 'Warte kurz, ich fahre die Rollade im Schlafzimmer herunter!'); } });
-
Na über manche Sinnhaftigkeit und die Umsetzung kann man auch streiten. Mir wäre zu dem Beispiel wirklich lieber ich verwende verschiedene Namen, kann die aber von überall absetzten. Oder warum soll ich extra ins Wohnzimmer laufen um dort den TV an zuschalten, wenn ich das vom Bad oder sonst wo auch kann.
Bei einem hast 100% recht, jeder hat sein eigenes Umfeld und seine Vorlieben damit umzugehen. Mir wäre Dein Ansatz zum umständlich.
Also gibts wie immer nicht die Lösung oder den Sinn, sondern jeder für sich
Ich habe ja oben schon geschrieben, dass ich es nicht verstehe was was er damit bezwecken will. Deine Ausführung macht das ganze deutlicher, wobei ich es so trotzdem nicht wollte.
-
Ich mache das für bestimmte Aktionen genau so wie oben vom Fragesteller gewünscht. `
Ich sehe das genauso wie dslraser.
kurze Frage…machst Du das auch über die Seriennumer? (alexa2.0.History.serialNumber)
oder gibt es noch eine andere Möglichkeit.
var gSpotKueche = "G070RQXXXXXXXXXK"; var gSpotWecker = "G070RQXXXXXXXXX9"; on({id:"javascript.0.alexa.rolladen.sonneblendet",change:'any'}, function (obj) { var ID = getState("alexa2.0.History.serialNumber"); var lAusgabeEcho = "alexa2.0.Echo-Devices." + ID.val + ".Commands.speak"; if (ID.val == gSpotKueche) { setState("javascript.0.alexa.rolladen.Alexabefehl", 'KuecheSonne'); setState(lAusgabeEcho, 'Warte kurz, ich fahre die Rollade in der Küche herunter!'); } if (ID.val == gSpotWecker) { setState("javascript.0.alexa.rolladen.Alexabefehl", 'SchlafenSonne'); setState(lAusgabeEcho, 'Warte kurz, ich fahre die Rollade im Schlafzimmer herunter!'); } }); ```` ` ich nehme den Namen des Echos.
-
Ich hab meine Harmony über ioBroker eingebunden und mit Alexa verknüpft.
D.h. ich kann jetzt über "Alexa schalte den Fernseher ein", den Fernseher einschalten oder halt aus. Je nachdem.
Nun habe ich aber mehrere Alexa Dots in der Wohnung und der Befehl wird von jedem Alexa Dot ausgeführt, also auch von dem in der Küche oder im Schlafzimmer.
Gibt es eine Möglichkeit das nun auch nur die Alexa Wohnbereich den Befehl "Schalte Fernseher an" annimmt und die restlichen Alexa Dots diesen einfach verweigern?
Danke und Gruß
swoob `
Hier mal wie ich es mache, vielleicht geht es auch eleganter oder einfacher, aber mir reicht es so und es funktioniert.
Ich habe zwei Fernseher die ich steuern möchte (Wohnzimmer und Schlafzimmer). Ich möchte jeden Fernseher mit dem gleichen Sprachbefehl mit Alexa steuern, also z.B. Fernseher an, oder Fernseher aus…
Ich nutze dafür den Harmony Adapter und den Alexa2 Adapter. Der Alexa2 Adapter muss für dieses Blockly auf Push Verbindung stehen.
Der Fernseher im Wohnzimmer kann über diesen Weg auch nur über den ECHO im Wohnzimmer mit Alexa geschaltet werden (Ebenso kann der Fernseher im Schlafzimmer auch nur über den ECHO im Schlafzimmer geschaltet werden, plus natürlich die Fernbedienung)
Über dieses Blockly kann ich auch verschiedene Harmony activity schalten.
Als erstes habe ich mir neue eigene Datenpunkte dafür angelegt. Das sind dann diese hier
! ````
//Datenpunkt Fernsehen mit VU an/aus erstellen
createState("Eigene_Datenpunkte.TV_System.Fernsehen.Fernsehen", {
"name": "Fernsehen_mit_VU",
"type": "boolean",
"role": "switch",
"def": false,
"read": true,
"write": true,
"smartName": {
"de": "Fernseher"
}});
! //Datenpunkt Fernsehen mit Verstärker und VU an/aus erstellen
createState("Eigene_Datenpunkte.TV_System.Kino.Kino", {
"name": "Kino",
"type": "boolean",
"role": "switch",
"def": false,
"read": true,
"write": true,
"smartName": {
"de": "Kino"
}});
! //Datenpunkt Musik ohne Verstärker an/aus erstellen
createState("Eigene_Datenpunkte.TV_System.Musik_ohne_Verstaerker.Musik_ohne_Verstaerker", {
"name": "Musik_ohne_Verstaerker",
"type": "boolean",
"role": "switch",
"def": false,
"read": true,
"write": true,
"smartName": {
"de": "Musik"
}});
! //Datenpunkt Musik mit Verstärker an/aus erstellen
createState("Eigene_Datenpunkte.TV_System.Musik_mit_Verstaerker.Musik_mit_Verstaerker", {
"name": "Musik_mit_Verstaerke",
"type": "boolean",
"role": "switch",
"def": false,
"read": true,
"write": true,
"smartName": {
"de": "Musik mit Verstärker"
}});
! //Datenpunkt BluRay mit Verstärker an/aus erstellen
createState("Eigene_Datenpunkte.TV_System.Bluray.BluRay", {
"name": "Bluray",
"type": "boolean",
"role": "switch",
"def": false,
"read": true,
"write": true,
"smartName": {
"de": "Blu Ray"
}});Diese Datenpunkte werden in ein leeres neues Javascript eingefügt und einmal ausgeführt. Damit entstehen dann diese Datenpunkte und sind gleichzeitig im Cloud-Adapter (oder auch iot-Adapter) Einmal den Cloud-Adapter oder iot-Adapter öffnen und nachsehen ob Sie auch da sind. Danach einmal kurz zu Alexa den Sprachbefehl sagen: Alexa, suche neue Geräte. Anschließend sollte die Meldung kommen das neue Geräte gefunden wurden. ![3822_neue_datenpunkte.png](/assets/uploads/files/3822_neue_datenpunkte.png) Damit schalte ich dann meine zuvor in der Harmony erstellten activity, diese hier ![3822_harmony_acktivity.png](/assets/uploads/files/3822_harmony_acktivity.png) Dann habe ich noch die eigentlichen Blocklys erstellt, diese füge ich hier als Textdatei ein, weil die zu lang sind. Das ist ein Blockly-Export und kann wieder importiert werden. Das hier ist das Blockly für Alexa ![3822_alexa_blockly.rtf](/assets/uploads/files/3822_alexa_blockly.rtf) ![3822_alexa_blockly.png](/assets/uploads/files/3822_alexa_blockly.png) Und das hier ist das Blockly für die Fernbedienung ![3822_fernbedienung_blockly.rtf](/assets/uploads/files/3822_fernbedienung_blockly.rtf) ![3822_fernbedienung_blockly.png](/assets/uploads/files/3822_fernbedienung_blockly.png) In diesen Blocklys ist noch eine Schaltung für HUE Lampen in Abhängigkeit mit der Helligkeit draussen. Es wird beim einschalten geprüft wie hell/dunkel es draussen ist und gegebenenfalls das Licht mit eingeschaltet. Beim ausschalten lasse ich das Licht (wenn es dunkel sein sollte) noch mal kurz einschalten und dann langsam runter dimmen, dann steht man nicht gleich im dunkeln wenn man das Wohnzimmer verlassen möchte. Im Schlafzimmer lasse ich das Licht direkt ausschalten. Die Blocklys müssen dann nur an die eigenen Geräte (Echos) und event. Lampen/Lichtsensor und Harmony activity sowie ECHO Namen angepasst werden. Vielleicht hilft es Dir… Das ganze dient nur als Vorschlag für Dich.