NEWS
Alexa mit Cloud Adapter und %-Angabe
-
Schönen guten Abend,
nachdem ich jetzt seit ca. 1 Woche quasi die "Vollausstatung" hier bei mir teste, habe mir 3 Echo's nebst HomeMatic mit Raspi3, ELV Funkmodul, einen virtuellen Debian Rechner (ESXi) mit ioBroker, CloudMatic usw. angelegt, bin ich ziemlich begeistert, was man damit alles machen kann. Habe diverse Aktoren (Rolladen, Dimmer) über HomeMatic laufen, dazu noch ioBroker mit meinem Harmony Hub verbunden, da Logitech ja noch keinen Alexa Skill im Programm hat. Zusätzlich habe ich noch IFTTT integriert, was auch super läuft.
Jetzt aber zu meinem Problem: Um auf meinem Denon AVR-X2000 die Lautstärke direkt auf einen Wert zu setzen, habe ich mir ein Java-Script geschrieben, welches über einen Datenpunkt mit Alexa kommuniziert. Im Objekt habe ich als Typ: Zahl angegeben, mit einem min von 0 und max von 80. Da Alexa ja alles in Prozent umrechnet, rechne ich die Prozentangabe im Script wieder zurück, so dass ich dann den absoluten Wert bekomme. Beispiel: Wenn ich sage: Alexa, AV-Power auf 50%, dann werden als Wert 40 übergeben an das Script, und da wird auf Basis 80 (das war der max. Wert im Objekt) umgerechnet, damit 50 als Lautstärke am DENON ankommen. So weit, so gut.
Da ich noch eine VU+ 4K besitze und eine einfache Kanalumschaltung realisieren wollte, ohne mir tausend Aktionen im Harmony Hub zu konfigurieren, habe ich ein kleines Script geschrieben, erstmal zum Testen. Hiermit kann ich zunächst mal 5 Kanäle umschalten. Definiert habe ich das Objekt als Typ: Zahl, mit min=0 und max=100. Hintergrund ist der, dass wenn ich über Alexa den Wert 1 sage, sind das ja 1%, und folglich sind 1% von 100 wieder 1, aber das wisst ihr ja auch. Mein Alexa Befehl lautet im Moment: Alexa, schalte Kanal auf x%. Das klappt auch swoeit, da ich im Script über die Auswertung der Objektvariablen dann einfach per Webinterface auf Sky Sport HD x umschalte.
Das doofe ist nur: Wie kriege ich Alexa dazu, das Wort "Prozent" wegzulassen. Sobald ich sage: "Alexa, schalte Kanal auf 2" passiert nix, also Alexa reagiert nicht. Wenn ich aber sage: "Alexa, schalte Kanal auf 2 Prozent" dann funktioniert es einwandfrei.
Hat jemand eine Idee? Es muss ja nicht zwingend alles Prozent sein was man steuern will, oder sieht Amazon das so?
Viele Grüße
-
Bei mir funktioniert das auch ohne Prozent.
Mein hue Lightstripe hat in ioBroker für Alexa den Smartnamen "Schreibtisch Licht".
Wenn ich nun
"schalte Schreibtisch auf 50"
"schalte Schreibtisch auf 80"
..
usw.
Sage, funktioniert das alles ohne, dass ich Prozent mit ausspreche.
Gerade noch einmal getestet (Amazon ändert wohl ab und an den Syntax).
Ich habe mir auch einen Datenpunkt für die Rückmeldung von Alexa angelegt.
Bei "schalte Schreibtisch auf 50" bekomme ich die Rückmeldung "Schreibtisch Licht wird auf 50 Prozent gesetzt".
Vermutung:
Wenn es bei Dir nicht geht… andere Smartnamen ausprobieren oder hinter dem Smartnamen das Wort Licht setzen.
Ich sage nur "Schreibtisch". Hinterlegt ist "Schreibtisch Licht". Eventuell braucht Alexa dann "Prozent" nicht, wenn im Smartnamen das Wort Licht vorkommt?
-
Ich habe auch eine VU+
Ich nutze nicht die Eingabe von den Kanälen (danke für die gute Idee) sondern die Sendernamen und dies der Einfachheit halber über den Szenenadapter, der die notwendigen Ziffern sendet.
Für ARD gibt es den im Cloud Adapter zwei Namen: "ARD" und "Das Erste".
-
Danke für den Hinweis ruhr70, habe ich gerade ausprobiert.
Meinen Smart-Namen habe ich umbenannt auf "Kanal Licht", ha!! Und siehe da, Alexa schaltet jetzt auch ohne das blöde "Prozent".
ABER: Jetzt muss ich dauernd auch "Licht" sagen, also: "Alexa, schalte Kanal Licht auf 2" …
Ich krieg Herpes!! :lol:
-
Danke für den Hinweis ruhr70, habe ich gerade ausprobiert.
Meinen Smart-Namen habe ich umbenannt auf "Kanal Licht", ha!! Und siehe da, Alexa schaltet jetzt auch ohne das blöde "Prozent".
ABER: Jetzt muss ich dauernd auch "Licht" sagen, also: "Alexa, schalte Kanal Licht auf 2" …
Ich krieg Herpes!! :lol: `
Ist ansonsten "Kanal" bei Dir eindeutig?
Hast Du mal "schalte Kanal auf 2" versucht (ohne "Licht")?
Wie gesagt. Genau das funktioniert bei mir (mit "Schreibtisch").
Wenn das wirklich nicht funktioniert, würde ich noch mal andere Namen für Kanal versuchen.
"Programm Licht", "Fernsehkanal Licht", … und immer das "Licht" nicht mitsprechen.
-
Nochmals danke für deine Tipps..
Ich hab's jetzt so hinbekommen: Smart Namen geändert auf "Kanal Wohnzimmer" und damit geht's einwandfrei auch ohne Prozent. Ich kann sogar das "schalte" weglassen, nicht immer, was ich jetzt auch wieder nicht verstehe, aber was soll's. Damit kann ich leben ;.)
Also, es klappt definitv: "Alexa, schalte Kanal Wohnzimmer auf 3"
Und für meinen DENON (Lautstärke) habe ich einfach nur den Smart Namen "Wohnzimmer" definiert und damit geht auch: "Alexa, Wohnzimmer auf 55" und schwupps, erscheint am DENON die Lautstärke 50
-
Korrektur: es erscheint natürlich die Lautstärke 55.
-
-
Hallo Poex,
die Lösung für das einstellen der Lautstärke finde ich klasse. Habe selber einen Denon X1100W. Bisher habe ich nur "lauter" und "leiser" realisiert (es wird dann je um 5 Stufen lauter oder leiser gestellt) Würdest du das Skript hier mal posten, damit ich es nachbauen kann? Danke vielmals.
Um die Kanäle meiner VU+ umzuschalten habe ich übrigens einfach einzelne Skripte mit dem Namen eins, zwei, drei usw. angelegt. Ich muss dann sagen "Alexa, schalte "eins" an" und Kanal eins wird angeschaltet. Mit deiner Lösung braucht man natürlich nur ein Datenpunkt in Alexa für alle Kanäle belegen und hat den Rest noch frei für andere Geräte (z.B. Rollos). Also auch für das Skript wäre ich sehr dankbar…
Gruß
-
Hallo Dburner,
hier das Script für die Lautstärke am DENON (über Webinterface).
1. Datenpunkt erstellen in javascript.0
Wichtig hierbei ist, falls du den max. Wert (hier 80) ändern möchtest, dass dieser auch im Script entsprechend geändert wird. Ansonsten funktioniert die Rückrechnung von Prozent auf Absolut nicht. Ich habe hier 80 nur aus Sicherheitsgründen eingestellt, falls Alexa oder ioBroker mal Müll machen sollten damit deine Boxen nicht fliegen gehen!!2. Das Script (unbedingt die IP anpassen)
var http = "http://192.168.xxx.xxx/goform/formiPhoneAppDirect.xml?"; on({id: "javascript.0.AV-Power", change: "any"}, function (obj) { var x = obj.state.val; if (x === 0) { require("request")(http + 'MUON'); // Bei Befehl "aus" wird Vol. auf Mute gesetzt. console.log("Lautstärke AVR-X2000 auf -MUTE- gesetzt."); } else { x = Math.round(x * 100 / 80); // Prozent rückrechnen auf absolut (siehe Wert max. im Datenpunkt) require("request")(http + 'MV' + x); console.log("Lautstärke AVR-X2000 auf " + x + " gesetzt."); }});
Das Script für die VU+ muss ich noch überarbeiten, stelle ich morgen oder übermorgen hier zur Verfügung.
Viele Grüße
Poex
-
Hallo Poex,
danke für die ausführliche Erklärung, läuft super! Ist so viel einfacher als per Befehl schrittweise zu erhöhen oder runter zu stellen.
Was mir allerdings nicht ganz einleuchtet ist deine "Begrenzung" auf 80%: Am Ende des Tages ist doch die max. einstellbare Lautstärke immer 100: Wenn du Alexa schalte auf "100" sagst wird 80% vom Datenpunkt übergeben. Im Skript dann 80 * 100 / 80 = 100. Von daher kannst du auch gleich direkt den max. Wert des Datenpunkts auf 100 setzen und die Zeile
x = Math.round(x * 100 / 80); // Prozent rückrechnen auf absolut (siehe Wert max. im Datenpunkt)
löschen. Kommt auf das gleiche hinaus.
Ich habe jetzt einfach die max. Lautstärke im Receiver Setup auf 60 gesetzt, den Datenpunkt mit 0 - 100 angegeben und die o.g. Zeile gelöscht. Klappt super, Begrenzung ist drin und alle Werte werden direkt übergeben. Vielleicht konnte ich dir damit auch etwas helfen
Falls du mir bei Gelegenheit noch das Skript der Vu+ posten kannst, wäre ich dir doppelt dankbar.
Grüße
-
Ja, da hab ich etwas zu kompliziert gedacht. Werde ich mal probieren
Das Script für die Kanalumschaltung kommt noch, bin gerade etwas im Stress
-
Hallo zusammen,
habe jetzt auch meine erste Hue-Lampe und möchte diese gern über Alexa und ioBroker steuern. Wie ich unten gelesen habe, scheint das ja bestens zu funktionieren. Aber:
Gibt es irgendwo eine Komplettanleitung, Tutorial oder was ähnliches, was man wie in ioBroker einrichten muss damit man z.B. sagen kann "Alexa, schalte xy Lampe auf 60%"? Braucht man dafür wirklich ein Script? Und wie muss das aussehen? Und in welchem Ordner legt man solche Scrips an?
Ein- und Ausschalten klappt bereits. Hierzu habe ich eine Anleitung bei "http://www.smarthomeassistent.de" gefunden. Allerdings verweist der Autor explizit darauf, dass das nur mit On/Off klappt und nicht mit Helligkeitswerten.
Vielen Dank schon mal.