NEWS
Wert über Alexa an HomeMatic Systemvariable übergeben
-
Hallo, ich arbeite seit einer Woche mit ioBroker in Verbindung mit HomeMatic und Alexa und möchte gerne Folgendes realisieren:
Ich möchte Alexa einen Wert sagen (z.B.: Alexa, stelle Lautstärke Stereoanlage auf 20%), auf diesen Wert soll dann (möglichst mit einer Szene) eine numerische Systemvariable in der CCU gesetzt werden.
Hintergrund: ich möchte an die CCU einen Lautstärkewert übergeben.
By the way: Das Wort "Lautstärke" oder "Volumen" werde ich wohl nicht benutzen können, da die Alexa-Lautstärke damit gesteuert wird, richtig?
Danke im Voraus ….
-
klar geht das..
mit "alexa, schalte xyz auf % prozent" und diesen wert gibst du weiter
-
klar geht das..
mit "alexa, schalte xyz auf % prozent" und diesen wert gibst du weiter `
Und dieser %-Wert befindet sich nach der Ansage dann genau <u>WO</u> damit ich den Abgreifen/Weitergeben kann? :shock: -
klar geht das..
mit "alexa, schalte xyz auf % prozent" und diesen wert gibst du weiter `
das es gehen muss, ist mir auch klar, Objekt anlegen ist auch klar, aber wie muss ich in der Szene konfigurieren, damit der Wert an die in der Szene verwendeten Systemvariable übergeben wird?
-
Das geht meiner Ansicht nach nicht über die Szene. Wenn ja, dann wüsste ich das auch gern.
-
Ich habe das über ein Javascript Datenpunkt mal nachgestellt:
Erstellt einen Datenpunkt javascript.0.Test.level:
! ````
var forcecration = false;
! idTestLevel = "Test.level";
! createState(idTestLevel, 0 , forcecration, {
name: 'Test Level mit ALexa',
desc: 'Test Level mit ALexa',
type: 'number',
unit: '%',
role: 'value'
});Den Datenpunkt im Cloudadapter manuell hinzugefügt und den Smartnamen "Test" gegeben. ![327_alexa_test.jpg](/assets/uploads/files/327_alexa_test.jpg) Für den Smartname wurde ausser LEVEL auch AN (100%) und AUS (0%) für Alexa zugewiesen. In der Alexa App die Smart Home Geräte neu synchronisiert. Folgende Versuche waren sofort erfolgreich: "stelle Test auf 20%" "Test auf 40 %" "schalte Test aus" -> 0% ![327_alexa_20_prozent.jpg](/assets/uploads/files/327_alexa_20_prozent.jpg) Was jetzt notwendig ist, damit im Cloud Adapter ein Datenpunkt mit LEVEL zugeordnet wird, habe ich jetzt nicht ausgetestet. Ratespiel: [ ] .level [ ] Type = number [ ] unit = "%" [ ] Lösung ist nicht aufgeführt Ich würde auf "number" tippen, habe es aber nicht ausprobiert. Wenn es number ist und die CCU Systemvariable auch so definiert ist, dann wird wahrscheinlich der ccm Datenpunkt Direkt funktionieren. Ansonsten muss noch die Zuweisung über Javascript erfolgen.
on("javascript.0.Test.level,"hm-rega.0.4711");
(in der Form findet allerdings keine Typenumwandlung statt).
-
War so frei und habe das getestet, wann Alexa einen Level zuweist.
Type = numberIch habe im Cloud-Adapter nun einen derzeit nicht verwendeten hm-rega Datenpunkt (CCU Variable) zugeordnet und zum Test den Smartnamen "Balkon" gegeben.
Der Datenpunkt ist vom Typ Number und zusätzlich mit dem Wertebereich 0 (min) bis 2 (max) versehen.
Dieser Datenpunkt kann nun über Alexa gesteuert werden:
"Alexa, setzte Balkon auf 2" -> Ergebnis 0,04
"Alexa, setzte Balkon auf 2%" -> Ergebnis 0,04
"Alexa, Balkon auf 50%" -> Ergebnis 1
Es wird also wunderbar der prozentuale Teil von ""min" und "max" verwendet (wenn nicht angegeben. Ansage/Wert 1:1 -> 0…100%).
Damit ist die erste Antwort:
` > klar geht das..
mit "alexa, schalte xyz auf % prozent" und diesen wert gibst du weiter `
korrekt.
Du kannst den hm-rega Datenpunkt direkt im Cloudadapter auswählen, wenn er den Typ Number hat.
-
Die Frage mit der Szene ist damit allerdings nicht beantwortet…
[EDIT] Wobei mir auch nicht klar ist, was für eine Szene per Level gesteuert werden soll.
-
Damit ist die erste Antwort:
` > klar geht das..mit "alexa, schalte xyz auf % prozent" und diesen wert gibst du weiter `
korrekt.Du kannst den hm-rega Datenpunkt direkt im Cloudadapter auswählen, wenn er den Typ Number hat. `
Danke dir für die Mühe die Du dir gemacht hast und der Beschreibung!Man muss einfach immer wieder mal über den Tellerrand schauen und alle Optionen mit in die Überlegungen einbeziehen
Ich werde damit mal herumspielen. 8-)
-
Interessant finde ich auch, dass Alexa Prozentangaben, bzw. Zahlen ihn das Wort "Prozent" akzeptiert.
So kann man Werte an ioBroker schicken und sie verarbeiten, ohne dass es unnatürlich klingt.
-
Ja, bei den Homematic Komponenten geht das prima; Heizung, Licht, Rolladen geht sehr gut.
Aber wie kann ich Alexa beibringen die Lautstärke meines yamaha AVR zu steuern? Dort gibt es auch keine Min/Max Angabe Möglich ist -unendlich bis +16 …
Hat das schon jemand gemacht?
-
Aber wie kann ich Alexa beibringen die Lautstärke meines yamaha AVR zu steuern? Dort gibt es auch keine Min/Max Angabe Möglich ist -unendlich bis +16 … `
min/max kannst Du beim Datenpunkt als Attribut hinzufügen (Admin/Objekte/der Stift beim Datenpunkt). unendlich wird schwierig
Einfach damit spielen, bis es mit Alexa Prozentangaben passt.
Oder Du nimmst einen Javascript-JHilfsdatenpunkt, wie oben beschrieben und schreibst das dann von dort in den Datenpunkt Deines AVR.
(Damit ein eventuelles Adapterupdate Deine hinzugefügten Attribute nicht löscht/verändert).
Wie sieht der Yamaha Datenpunkt denn aus?
Beispiel an einem vorhandenen Datenpunkt:
filename="Attribut hinzufügen.jpg" index="0">~~
-
@ruhr70 in deinem Screenshot hast Du als "Type" Zeichenkette
Sollte es denn nicht eher ein Datentyp "Zahl" sein?!
… oder ist das egal?
-
ne, nicht egal…
Der Datenpunkt kommt vom Adapter... und Du hast recht. Der Adapter sollte den Datenpunkt als "Zahl/Number" anlegen und nicht als "Zeichenkette/String".
Also ein "Fehler" im Adapter und ein schlechtes Beispiel für einen Datenpunkt, um zu zeigen, wo man min/max einstellen kann.
Danke für den Hinweis!
-
ne, nicht egal…
Der Datenpunkt kommt vom Adapter... und Du hast recht. Der Adapter sollte den Datenpunkt als "Zahl/Number" anlegen und nicht als "Zeichenkette/String".
Also ein "Fehler" im Adapter und ein schlechtes Beispiel für einen Datenpunkt, um zu zeigen, wo man min/max einstellen kann.
Danke für den Hinweis! `
Ist ja nichts verloren, man könnte den "type" ja in "Zahl" ändern (in genau der Maske deines Screenshots).Kurze Anmerkung für diejenigen die sich noch nicht so gut auskennen:
Auf diese Art und Weise kann man auch sonstige "Objekte" bzw. "Datenpunkte" - die zunächst nur als "An/Aus" Schalter (type = "Logikwert") daherkommen - anpassen.
Wenn der Datentyp (type) auf "Zahl" gesetzt wird, dann akzeptieren diese Datenpunkte anschließend auch Werte (bspw. °C oder %).
Damit das reibungslos funktioniert sollte neben dem "min"- und "max"-Wert (die Zusammen die "möglichen Werteangaben" "von/bis" darstellen) auch noch ein weiteres Feld mit der Bezeichnung "unit" angelegt werden. In das Feld "unit" wird die "Einheit" eingetragen. Also °C oder %.
Zumindest bei Thermostaten wird die Verwendung der Einheit °C absolut benöigt.