PV Leistung und Speicherstand per Alexa abfragen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
SaschaQ
Beiträge: 202
Registriert: 2. Mär 2020 13:50
Answers: 0

PV Leistung und Speicherstand per Alexa abfragen

Beitrag von SaschaQ »

Hallo zusammen,

wir haben eine PV Anlage mit Kostal Wechselrichter. Ich würde gerne die Leistung der PV Anlage und den Ladestand meiner Batterie per Alexa abfragen.

Items sind mittels Kostal Binding verfügbar.

Hat jemand eine Idee?

Viele Grüße
Sascha

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von Harka »

Moin,
mein Lösungsvorschlag:
1.) im Alexa-Universum legst Du eine Routine an, die auf ein Kennwort reagiert und irgend was machen soll (dient nur dazu, das die Dame nicht genervt auf das unbekannte Wort reagiert)
2.) triggerst Du deine Echos-Sprachbefehle (LetzterSprachbefehl-lastVoiceCommand) auf dein Kennwort
3.) ermittelst Du anhand des angesprochenen Echos dessen Ausgabe-Item (Sprich-textToSpeech) und schickst deine Nachricht dorthin ab

Hier im kleinem JavaScript-Beispiel (mit Blockly erstellt ^^) ist das Kennwort "solar" und die Echos sind nach einem bestimmten Schema (Gerät_Channel) benannt.

Code: Alles auswählen

var sprachbefehl, empfaenger, ausgabe, sender;
sprachbefehl = String(event.itemState);
empfaenger = event.itemName;
console.info(empfaenger);
if (sprachbefehl.indexOf('solar') + 1 > 0) {
  ausgabe = 'Der Ertrag liegt derzeit bei ' + String(items.getItem('wunderground_Sonne').state);
  sender = empfaenger.replaceAll('LetzterSprachbefehl','Sprich');
  console.info(sender);
  items.getItem(sender).sendCommand(ausgabe);
}

SaschaQ
Beiträge: 202
Registriert: 2. Mär 2020 13:50
Answers: 0

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von SaschaQ »

Hi Harka,

wo muss dein Code dann jeweils eingebettet sein in OpenHab? Auf welche Sprachbefehl reagiert Alexa denn dann?

Viele Grüße und besten Dank.

Sascha

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von Harka »

Moin,
das Beispiel nutzt "Alexa, Solar" als Befehl. Sowohl in der Alexa-Routine als auch in der OH-Rule.
Die Rule wird von einem "LetzterSprachbefehl changed to" ausgelöst und ist ein "ECMAScript 262 Edition 11". Wenn Du JavaScript nicht nutzt (installiert hast) sollte es sich relativ leicht in eine andere Sprache überführen lassen. Eingefügt wird es bei Add_Action/Run_Script.
Wenn Du bei den Echos "LetzterSprachbefehl-lastVoiceCommand" am laufen hast schau mal ins Log. Das erklärt vieles.

SaschaQ
Beiträge: 202
Registriert: 2. Mär 2020 13:50
Answers: 0

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von SaschaQ »

puh, okay. Ich bewege mich eigentlich nur innerhalb OH Rules und habe noch keine Erfahrung mit Skripten.

Kannst du mir vielleicht erklären wie ich es Step by Step einbette?

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von Harka »

Das entspricht imho weitestgehend dem, was du sonst nach „then“ kommt. Ich kenn mich nicht gut genug mit DSL–Rules aus um dir das anzupassen. Nur das Semikolon wegzulassen wird wohl nicht reichen ;)
Wenn du die Regel über die UI anlegst ist ja das wie schon weiter oben beschrieben.
Je nach deinen Gegebenheiten (Versionen, Namensgebung, …) sind ggf. noch Anpassungen nötig und der Feinschliff fehlt auch noch.

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von udo1toni »

Also vorweg: ich nutze keine Sprachsteuerung.
Nach meinem Verständnis braucht es aber nur ein Item pro Echo:
lastVoiceCommand | String | R/W | Last voice command spoken to the device. Writing to the channel starts voice output.
Der Channel ist Read/Write, er enthält das letzte gesprochene Kommando. ein gesendeter Befehl wird als Text ausgegeben.
Entsprechend ist die Rule einfach:

Code: Alles auswählen

rule "Alexa Scprachausgabe"
when
    gAlexaVC received update                               // es wurde ein Sprachbefehl empfangen
then
    if(!(newState.toString.contains("solar")))             // Schlüsselwort fehlt?
        return;                                            // dann Abbruch
    if(!(Solarertrag.state instanceof Number)) {           // ungültiger Wert?
        logWarn("alexaSolar","Item Solarertrag hat ungültigen Status ({})",Solarertrag.state)
        triggeringItem.sendCommand("Eine Meldung ist derzeit nicht möglich.")
        return;                                            // dan Abbruch mit Meldung
    }
    val StringBuilder strMeldung = new StringBuilder()                   // generiere String
    strMeldung.append("Der Solar Ertrag beträgt derzeit ") 
    strMeldung.append((Solarertrag.state as Number).intValue.toString)
    strMeldung.append(" Watt.") 
    triggeringItem.sendCommand(strMeldung.toString)        // Sende String an das triggernde Item
end
Alle lastVoiceCommand Items sind in der Gruppe gAlexaVC zusammengefasst.
Die Rule prüft, ob das Schlüsselwort enthalten ist. Ist das nicht der Fall, bricht sie ab. Hier könnte man natürlich auch umgekehrt vorgehen, falls noch weitere Sprachausgaben über diese Rule abgewickelt werden sollen.
Da wir einen numerischen Wert ausgeben wollen, sollten wir zunächst prüfen, dass auch ein solcher im Item vorliegt (besser ist das...)
Sollte das nicht der Fall sein, ist eine Warnmeldung angebracht.
Die Rule läuft noch? Dann ist der Rest einfach...
Wir bauen den Meldungsstring zusammen - wie man das macht ist Geschmackssache, hier halt mal mittels StringBuilder.
Wir wollen den Wert auf jeden Fall auf eine sinnvolle Ausgabe beschränken (man könnte hier auch mit ein wenig Mathematik z.B. auf volle 100 Watt gehen und die Ausgabe in Kilowatt vornehmen, kommt halt auch auf die Anlage an, was da am sinnvollsten ist...)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: PV Leistung und Speicherstand per Alexa abfragen

Beitrag von Harka »

:D Warum einfach, wenn ...
Ich habe das immer mit dem Extra-Channel gelesen + Beispiele gesehen und so auch gehandhabt. Gerade getestet und - Hokus-Pokus - es klappt mit lastVoiceCommand. Danke Udo!
Lt. Doku ist das auch nicht neu.

Antworten