Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.
Moderatoren: seppy , udo1toni
frankl
Beiträge: 5 Registriert: 22. Okt 2021 10:44
Answers: 0
Beitrag
von frankl » 23. Okt 2021 11:23
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
KellerK1nd
Beiträge: 432 Registriert: 17. Jun 2019 16:45
Answers: 1
Wohnort: Griesheim
Beitrag
von KellerK1nd » 26. Okt 2021 15:58
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