ich bin Einsteiger was OpenHab betrifft. Ich will folgendes umsetzten. OpeHab soll den aktuellen Stromverbrauch (Leistung) einer AVM DECT200 auslesen und bei einem bestimmten Wert per Amazon Alexa ein Nachricht sprechen. Kurz "Waschmaschine fertig". Ich habe es soweit hinbekommen das die Werte der Steckdose ausgelesen werden und auch angezeigt werden. Ich habe das Amazon Echo Addon installiert und verbunden. Ich bekomme es aber nicht hin, dass meine Regel funktioniert. Leider sehe ich auch überhaupt nicht, ob die Regel überhaupt angesprochen wird. Ich finde keinen Log Eintrag. Es passiert einfach nichts. Wo liegt der Fehler, bzw. wie kann ich den Fehler am besten finden/eingrenzen?
Ich hatte die Vermutung es könnte daran liegen, dass ich den Leistungs Status in der Regel falsch abfrage. Ich hoffe mir kann jemand helfen.
amazonechocontrol.items:
Code: Alles auswählen
String Badezimmer_TTS "Text to Speech" { channel="amazonechocontrol:echo:devaccount:Badezimmer:textToSpeech" }
String Wohnzimmer_TTS "Text to Speech" { channel="amazonechocontrol:echo:devaccount:Wohnzimmer:textToSpeech" }
String Esszimmer_TTS "Text to Speech" { channel="amazonechocontrol:echoshow:devaccount:Esszimmer:textToSpeech" }
String Schlafzimmer_TTS "Text to Speech" { channel="amazonechocontrol:echo:devaccount:Schlafzimmer:textToSpeech" }
Code: Alles auswählen
Switch Steckdosenschalter "Steckdosenschalter" { channel="avmfritz:FRITZ_DECT_200:1:DECT200_WM:outlet" }
Number:Temperature Temperatur "Aktuelle Raumtemperatur [%.1f %unit%]" { channel="avmfritz:FRITZ_DECT_200:1:DECT200_WM:temperature" }
Number:Energy Stromzaehler "Stromzähler [%.3f kWh]" { channel="avmfritz:FRITZ_DECT_200:1:DECT200_WM:energy" }
Number:Power Leistung "Aktuelle Leistung [%.2f %unit%]" { channel="avmfritz:FRITZ_DECT_200:1:DECT200_WM:power" }
Number:ElectricPotential Spannung "Aktuelle Spannung [%.1f %unit%]" { channel="avmfritz:FRITZ_DECT_200:1:DECT200_WM:voltage" }
Code: Alles auswählen
var told = 0
rule "Waschmaschine fertig"
when
Item Leistung received update
then
if (Leistung.state > 0.15 && Leistung.state < 4.94) {
createTimer(now.plusMinutes(1), [|
if ((Leistung.state < 4.94) && (Leistung.state > 0) && (told == 0)) {
Badezimmer_TTS.sendCommand('Die Waschmaschine ist fertig.')
Wohnzimmer_TTS.sendCommand('Die Waschmaschine ist fertig.')
Esszimmer_TTS.sendCommand('Die Waschmaschine ist fertig.')
Schlafzimmer_TTS.sendCommand('Die Waschmaschine ist fertig.')
told = 1
}
])
}
end
rule "Zähler zurücksetzen"
when
Item Leistung received update
then
if (Leistung.state < 2.78) {
told = 0
}
end
Viele Grüße
Thomas