OH3 und Sprachausgabe eines Messwertes

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
frankl
Beiträge: 5
Registriert: 22. Okt 2021 10:44
Answers: 0

OH3 und Sprachausgabe eines Messwertes

Beitrag von frankl »

Moin,
via MQTT habe ich einen ESP8266 mit Temperatursensor eingebunden. Den Messwert kann ich mir auf meiner Page anzeigen lassen. Ich habe dort eine Item "BMETerasse_Temperatur". Anbindung funktioniert also.
Ich möchte mir den Messwert auch via Google TTS über einen Google Nest ausgeben lassen. TTS über Google Nest funktioniert mit anderen switches einwandfrei.
Die Frage ist: Wie kann ich die "Variable" (Messwert des Sensors oder Wer des Items) in die Rule der Sprachausgabe einbinden? Ich benutze die OH3 Oberfläche

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      itemName: Test
      state: ON
      previousState: OFF
    type: core.ItemStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      sink: chromecast:audiogroup:e14e25c3-3b21-410d-90b6-96025cf4fc20
      text: Test
    type: media.SayAction
bei text: XXXX müsste wohl die "Variable" rein, oder?

VG
Frank

Benutzeravatar
KellerK1nd
Beiträge: 432
Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim

Re: OH3 und Sprachausgabe eines Messwertes

Beitrag von KellerK1nd »

Ich kann dir jetzt nur mal meine Regel für die Waschmaschine geben, ist allerdings DSL, da lasse ich mir die Laufzeit der Maschine an Telegram und Amazon Echon schicken, eventuel hilft dir das weiter:

Code: Alles auswählen

var Timer nWaschmaschine1 = null
var Timer nVerzoegerung1 = null
var Timer tWash = null
var Boolean bWash = false

rule "Waschmaschine"
when
    Item AVM_Steckdose_Waschmaschine_Leistungsaufnahme changed
then
    val withoutMillisWash = (now.toInstant().toEpochMilli() / 1000) as Number
    val telegramActionBot = getActions("telegram","telegram:telegramBot:bot")

    if(!bWash) {
        if((AVM_Steckdose_Waschmaschine_Leistungsaufnahme.state as Number).floatValue() > 20) { // Erkennung die Maschine wurde gestartet
            logInfo("Waschmaschine", "gestartet")
            WaschmaschineStatus.postUpdate("läuft")
            WaschmaschineStart.postUpdate(withoutMillisWash)
            bWash = true
        }
    } else { // bWash ist true -> Maschine aktiv
        if((AVM_Steckdose_Waschmaschine_Leistungsaufnahme.state as Number).floatValue() < 1.9) { // Erkennung die Maschine ist vielleicht fertig
            if(tWash === null)
                tWash = createTimer(now.plusMinutes(5), [|
                    WaschmaschineStatus.postUpdate("fertig")
                    logInfo("Waschmaschine", "fertig")
                    LaufzeitWaschmaschine.postUpdate((withoutMillisWash - WaschmaschineStart.state as Number) /60)
                    AVM_Steckdose_Waschmaschine_Zaehler.postUpdate(AVM_Steckdose_Waschmaschine_Zaehler.state as Number + 1)
                    nVerzoegerung1 = createTimer(now.toInstant().plusMillis(500).atZone(now.zone),[|
                        telegramActionBot.sendTelegram("Waschmaschine ist *fertig*, Laufzeit: " + String::format("%.0f", (LaufzeitWaschmaschine.state as Number).floatValue) + " Minuten.")
                        if(AlexaMuteKueche.state != ON){
                            EchoKuecheRemind.sendCommand("Die Waschmaschine ist nach " + String::format("%.0f", (LaufzeitWaschmaschine.state as Number).floatValue) + " Minuten fertig mit der Arbeit.")
                        }
                    ])
                    tWash = null
                    bWash = false
                ])
        } else if((AVM_Steckdose_Waschmaschine_Leistungsaufnahme.state as Number).floatValue() > 3){ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
            tWash?.cancel
            tWash = null
        }
    }
end
Betriebssystem: Proxmox 7.3-4
openHAB Container: debian11 LXC
openHAB Version: 3.4
Hardware: HomeServer Eigenbau mit einem Intel i5 9600K
Smarthome-Equipment:
- Rasperrymatic
- deConz
- HUE
- Shellys
- Mosquitto
- AVM Fritz!Box

Antworten