AVM DECT 200 Rules / Alexa Echo

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Thomas R.
Beiträge: 12
Registriert: 5. Apr 2020 20:48
Answers: 0

Re: AVM DECT 200 Rules / Alexa Echo

Beitrag von Thomas R. »

Allerbesten Dank, jetzt funktioniert die Sprachausgabe. Spitzen Hilfe hier im Forum. Super

Thomas R.
Beiträge: 12
Registriert: 5. Apr 2020 20:48
Answers: 0

Rules / openhab connect Push Notification

Beitrag von Thomas R. »

Hallo zusammen,
an welcher Stelle in folgender Rule, muss ich die sendNotification("your@email.address", "Waschmaschine fertig ") eintragen, wenn die Notification dann gesendet werden soll wenn auch Alexa gesprochen hat?

Code: Alles auswählen

// Globale Variablen zu Beginn der datei definieren

var Timer tWasher = null

rule "Waschmaschine fertig"
when
    Item Leistung changed                                            // Leistung hat sich geändert
then
    logInfo("washer","Rule getriggert")
    var Number nPower = 0                                            // Variable mit 0 initialisieren
    if(Leistung.state instanceof Number)                             // falls gültiger Wert
        nPower = (Leistung.state as Number).floatValue               // Variable auf numerischen wert setzen
    logInfo("washer","Leistung: {}",nPower)
    var Number nPowerOld = 0                                         // Variable mit 0 initialisieren
    if(previousState instanceof Number)                              // falls gültiger Wert
        nPowerOld = (previousState as Number).floatValue             // Variable auf numerischen wert setzen
    logInfo("washer","Leistung Alt: {}",nPowerOld)
    if(nPower > 0.15 && nPower < 4.94 && nPowerOld > 4.94) {         // Wert war höher als 4.94 und ist jetzt zwischen 4.94 und 0.15
        logInfo("washer","Timer wird gestartet")
        tWasher?.cancel                                              // falls Timer existiert, löschen
        tWasher = createTimer(now.plusMinutes(1), [ |                // Timer neu anlegen
        logInfo("washer","Timer abgelaufen")
            val String strMessage = "Die Waschmaschine ist fertig."
            Badezimmer_TTS.sendCommand(strMessage)
            Wohnzimmer_TTS.sendCommand(strMessage)
            Esszimmer_TTS.sendCommand(strMessage)
            Schlafzimmer_TTS.sendCommand(strMessage)
            Thomaszimmer_TTS.sendCommand(strMessage)
        ])
    } else if(nPower > 4.94) {                                        // Falls Wert über 4.94
         logInfo("washer","Timer wird abgebrochen")
         tWasher?.cancel                                              // Timer löschen
    }
end
/code]

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

Re: AVM DECT 200 Rules / Alexa Echo

Beitrag von udo1toni »

Ich gehe mal davon aus, dass Alexa über die Items *_TTS zum Sprechen bewegt wird. Entsprechend wäre das der richtige Platz, um die Mail zu versenden.

Allerdings wird die Mail quasi zeitgleich mit dem Beginn der Ansage versendet, nicht, wenn die Ansage bereits zuende ist. openHAB bekommt meines Wissens nicht mit, ob eine Ansage schon komplett ausgegeben wurde.

Statt die sechs Alexas alle einzeln anzusteuern, könntest Du auch ein Group Item definieren:

Code: Alles auswählen

Group:String gAlexa_TTS
String Badezimmer_TTS (gAlexa_TTS)
...
Dann kannst Du im Code entweder den Text an das Group Item direkt schicken:

Code: Alles auswählen

gAlexa_TTS.sendCommand(strMessage)
oder (falls diese Variante wider Erwarten nicht funktioniert) gezielt jedem Item die Nachricht schicken:

Code: Alles auswählen

gAlexa_TTS.members.forEach[i|i.sendCommand(strMessage)]
Das ist im Zweifel um Einiges eleganter ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten