NEWS
Stati bzw. Werte auslesen mit Alexa
-
Moin,
Auch wenn ich es hier schon mal gelesen habe, das es angeblich nicht geht
…
Kann man die Datenpunkte nicht anderweitig zwischenspeichern bzw.
ä
ndern, soda
ß
man mit Alexa drau zugriff erh
ä
lt.Bzw.
Kann man nicht
ü
ber Alexa via JS SayIt ansprechen, so das diese einen bestimmten Wert vorzuliest?Jemand schon eine L
ö
sung gefunden hierzu?Gr
ü
ß
e an die Nerds :lol: -
Kann man.
Ich schalte
ü
ber Alexa einen JS Datenpunkt mit den Worten "schalte Wetterbericht ein".Es erfolgt dann folgende Ausgabe:
-
Unwetterwarnung, wenn vorhanden
-
aktuelle Au
ß
entemperatur -
aktuelle Wetterlage
-
und ich hatte noch den Weg zur Arbeit in Minuten ausgegeben
Alle Texte
ü
ber sayIt und einem kleinen Skript (schlecht von mir gemacht g). -
-
Klingt doch super,
W
ä
re es m
ö
glich das Script hier mal zu zeigen.Bin halt was Scripten anbelangt noch absoluter Newbie, da w
ä
re es cool, wenn Ihr mir mal ein Beispiel zeigen k
ö
nntet 
@ruhr - Ob schlecht oder nicht ist doch egal wenns funktioniert, w
ä
re nett, wenn du es mal posten w
ü
rdest - Dank dir.Gr
ü
ß
e -
Alle Texte
ü
ber sayIt und einem kleinen Skript (schlecht von mir gemacht g). `Da melde ich auch mal Interesse an. W
ü
rdest das Script vielleicht mal vorstellen wollen und kurz Beschreiben was man machen muss damit es l
ä
uft?Danke schon mal im vorab!
-
Das ist nur ein Miniskript. Und die L
ö
sung mehrere Ansagen hintereinander (Wartezeit, asynchron) ist nicht sch
ö
n gel
ö
st.Skript:
! ````
// Ausgabe von Infos
ü
ber Sayit, gesteuert durch Alexa
// Der Datenpunkt idAnsageTriggerWetter muss in ALexa hinzugef
ü
gt werden
// und mit einem Smartnamen versehen werden
! // Beispiel: "Alexa, schalte Wetterbericht ein"
! // Skript verwendet ein globales Skrit:
// sayit();
! var vol = 40; // Lautst
ä
rke der Ansagen
var sayitInstanz = 2; // Instanz 2 = Sonios Wohnzimmer
! // Datenpunkt zum Ansteuern der ANsage
ü
ber Alexa:
var idAnsageTriggerWetter = "javascript."+instance+".Ansagen_Trigger.Wetter_aktuell_Wohnzimmer";
! createState(idAnsageTriggerWetter,false, {
name: 'Ansage aktuelle Wettersituation im Wohnzimmer',
desc: 'Ansage aktuelle Wettersituation im Wohnzimmer',
type: 'boolean'
});
! function ansageWetterwarnung(vol,sayitInstanz) {
var severity = getState('dwd.0.warning.severity').val;
var meldung = getState('dwd.0.warning.text').val.toLowerCase();
text = "Aktuelle Unwetterwarnung. Stufe " + severity + " " + meldung;
sayit(text,vol,sayitInstanz);
}
! function ansageWetterlage(vol,sayitInstanz) {
text = "Wetterlage " + getState('yr.0.forecast.day0.text').val;
sayit(text,vol,sayitInstanz);
}
! function ansageAktuelleTemperatur(vol,sayitInstanz) {
text = "Die aktuelle Temperatur betr
ä
gt " + getState('yr.0.forecast.day0.temperature_actual').val + " Grad Celsius.";
sayit(text,vol,sayitInstanz);
}
! function ansage(vol,sayitInstanz) {
var severity = getState('dwd.0.warning.severity').val;
var delay = 0;
! if (severity > 0) {
setTimeout(ansageWetterwarnung(vol,sayitInstanz),delay);
delay = delay + 9000;
}setTimeout(ansageWetterlage(vol,sayitInstanz),delay); delay = delay + 9000; setTimeout(ansageAktuelleTemperatur(vol,sayitInstanz),delay);}
! on({id:idAnsageTriggerWetter,change:'any'}, function (obj) {
if(obj.state.val) {
ansage(vol,sayitInstanz);
}
});
! //ansage(vol,sayitInstanz); // Zum Test des Skripts beim Skriptstart, Kommentar entfernenFolgendes Skript wird als globales Skript benötigt: >! ```` >! function sayit(text,vol,instanz) { var IDLastSay = 'javascript.0.globalVar.lastSay'; var sayit_defaultVol = 50; var sayit_defaultSayItInstanz = 0; >! if (typeof instanz == "undefined") instanz = sayit_defaultSayItInstanz; if (!isNaN(instanz)) instanz = parseInt(instanz); if (isNaN(instanz)) instanz = sayit_defaultSayItInstanz; >! if (typeof vol == "undefined") vol = sayit_defaultVol; if (!isNaN(vol)) vol = parseInt(vol); if (isNaN(vol)) vol = sayit_defaultVol; >! var idSayIt = "sayit." + instanz + ".tts.text"; text = "de;" + vol.toString() + ";" + text; var lastSay = getState(IDLastSay).val; //if (!lastSay || ((new Date()).getTime() - lastSay) > 3000) { //lastSay = setState(IDLastSay,(new Date()).getTime()); setState (idSayIt, text); //} log(vol); log(text); >! } >! ```` -
Nein,
ü
ber Alexa kannst Du die Infos (noch) nicht ausgeben. Hat nichts mit ioBroker zu tun. Alexa kann das noch nicht
ü
ber die Schnittstelle zur Haussteuerung.
Ü
ber einen Custom-Skill funktioniert das. Da will Bluefox wohl einen schreiben. Dann w
ü
rden solche Sachen gehen, wie "Alexa, frag ioBroker, wie die Temperatur im Schlafzimmer ist".Das Skript triggert einen Datenpunkt in ioBroker, welcher dann die Ausgabe
ü
ber SayIt steuert.Bei mir sind das meine Sonos Lautsprecher.
D.h. ich frage Alexa und
ü
ber Sonos kommt die Antwort.Du kannst auch die Alexa Lautsprecher
ü
ber Bluetooth nutzen. Hier im Forum gibt es dazu ein Beispiel, wie das
ü
ber einen Raspberry Pi funktioniert.Dann kommt die Antwort zwar auch nicht von Alexa, aber
ü
ber die Echo Lautsprecher 
Zusammenfassung der Syntax diverser Sprachanweisungen:
"Alexa, wie ist die Temperatur im Schlafzimmer?"
-> m
ü
sste die Haussteuerungs-API unterst
ü
tzen. Wird derzeit von Amazon nicht unterst
ü
tzt."Alexa, schalte Wetterbericht ein."
-> wird von Alexa/ioBroker unterst
ü
tzt. Was passieren soll, bestimmt ioBroker, z.B. Ausgabe
ü
ber Sayit.-> "schalte
…
ein" oder "einschalten" sind Kennw
ö
rter, nach denen Alexa nach Namen in der Integration von Haussteuerungen sucht"Alexa, frage ioBroker nach der Temperatur im Schlafzimmer."
-> Geht
ü
ber einen Zustrom-Skill. Derzeit in Entwicklung.-> "frage xyz" ist eine M
ö
glichkeit einen Custom-Skill zu nutzen -
Ahh OK. Danke f
ü
r die Klarstellung.Ja Alexa
ü
ber Bluetooth habe ich schon
ü
berlegt aber da w
ü
rde es nur bei Alexa 1 ankommen. Da ich aber 3 in verschiedenen R
ä
umen habe wird das wohl erst einmal nichts werden. Aber ich schaue mal optimistisch in die Zukunft und versuche derweil erst einmal die Visualisierung richtig zum laufen zu bekommen 
-
Hi zusammen, bin neu in dem Thema und versuche mich durch Videos langsam einzuarbeiten.
Ich versuche gerade mit JS eine Sprachausgabe auf anfrage bei Alexa.
Will mir die Temp vom Raspberry ansagen lassen. Bekomms aber leider nicht hin.
Ich habe das Blocky-Script mal als Datei angeh
ä
ngt.abfrage_ = Datenpunkt den ich triggern kann(funktioniert)
rpi2.0.temperature.soc_temp= ausgelesener Wert im Rpi2.0 Adapter
Vlt kann mir von den erfahreneren Anwendern jemand meinen Fehler aufzeigen.
Danke
5810_blocky.png -
Was hast Du denn f
ü
r Thermostate?Gibt es bei denen eventuell einen Datenpunkt vom Typ "ACTUAL_TEMPERATURE"?
(so einen habe ich z.B. beim HomeMatic Thermostat (non-IP))
[EDIT] Hintergrund meiner Frage: Ein Datenpunkt "ACTUAL_TEMPERATURE" kann als Smart Ger
ä
t im Cloud Adapter direkt von Alexa Abgefragt werden.z.B. Smart Ger
ä
t im Cloud Adapter = "Schlafzimmer"Verlinkung zum Datenpunkt vom Typ "ACTUAL_TEMPERATURE"
Abfrage: "Alexa, wie ist die Temperatur im Schlafzimmer"
Antwort: "Die Temperatur von Schlafzimmer ist 20,1 Grad"
-
Vlt kann mir von den erfahreneren Anwendern jemand meinen Fehler aufzeigen. ` Was mit gerade auff
ä
llt, ich bin der Meinung Du benutzt den "erstelle Text aus" Baustein nicht korrekt.Schau dir mal alternativ mein angef
ü
gtes Beispiel an
1917_sayit_text.jpg
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden