Seite 1 von 1

Meldung wenn Trockner fertig

Verfasst: 22. Dez 2021 10:08
von Sadi191
Hallo Comunity,

ich moechte gern eine Benachrichtigung via Telegramm sowie eine Alexa TSS AUsgabe wenn mein Trockner fertig ist.
Dazu habe ich folgenden Code gefunden und schon adaptiert. Allerdings funktioniert es nicht.

Koennt Ihr mir weiterhelfen?

Code: Alles auswählen

val telegramAction = getActions("telegram","telegram:telegramBot:xxxxxxxxxx")
var told = 0
rule "Trockner_fertig"
when
        Item TrMeterCurrentWatts received update
then
        if (TrMeterCurrentWatts.state > 0.6|W && TrMeterCurrentWatts.state < 3.00|W) {
                createTimer(now.plusMinutes(1), [|
                        if ((TrMeterCurrentWatts.state < 0.75|W) && (told == 0)) {
                                telegramAction.sendTelegram("Trockner ist fertig!")
                                Echo_Speech.sendCommand("Der Trockner ist fertig!")
                                told = 1
                        }
                ])
        }
end

rule "Trockner_zurücksetzen"
when
        Item TrMeterCurrentWatts received update
then
        if (TrMeterCurrentWatts.state < 0.6|W) {
                told = 0
        }
end
Anbei noch die Grafiken des Stromverbrauches:

Re: Meldung wenn Trockner fertig

Verfasst: 23. Dez 2021 11:11
von KellerK1nd
Ich gebe dir mal meine Rule, Hab mir deine jetzt nicht genauer angeschaut:

Am Anfang der Datei noch folgender Variablen definieren:

Code: Alles auswählen

var Timer nVerzoegerung1 = null
var Timer tDry = null
var Boolean bDry = false
Und hier die eigentliche Regel:

Code: Alles auswählen

rule "Trockner"
when
    Item AVM_Steckdose_Trockner_Leistungsaufnahme changed
then
    val withoutMillisTro = (now.toInstant().toEpochMilli() / 1000) as Number
    val telegramActionMario = getActions("telegram","telegram:telegramBot:mario")
    if(!bDry) {
        if((AVM_Steckdose_Trockner_Leistungsaufnahme.state as Number).floatValue() > 20) { // Erkennung die Maschine wurde gestartet
            logInfo("Trockner", "gestartet")
            TrocknerStatus.postUpdate("läuft")
            TrocknerStart.postUpdate(withoutMillisTro)
            bDry = true
        }
    } else { // bDry ist true -> Maschine aktiv
        if((AVM_Steckdose_Trockner_Leistungsaufnahme.state as Number).floatValue() < 1.9) { // Erkennung die Maschine ist vielleicht fertig
            if(tDry === null)
                tDry = createTimer(now.plusMinutes(20), [|
                    TrocknerStatus.postUpdate("fertig")
                    logInfo("Trockner", "fertig")
                    LaufzeitTrockner.postUpdate((withoutMillisTro - TrocknerStart.state as Number) /60)
                    AVM_Steckdose_Trockner_Zaehler.postUpdate(AVM_Steckdose_Trockner_Zaehler.state as Number + 1)
                    nVerzoegerung1 = createTimer(now.toInstant().plusMillis(500).atZone(now.zone),[|
                        telegramActionMario.sendTelegram("Trockner ist *fertig*, Laufzeit: " + String::format("%.0f", (LaufzeitTrockner.state as Number).floatValue) + " Minuten.")
                        if(AlexaMuteKueche.state != ON){
                            EchoKuecheRemind.sendCommand("Der Trockner ist nach " + String::format("%.0f", (LaufzeitTrockner.state as Number).floatValue) + " Minuten fertig mit der Arbeit.")
                        }
                    ])
                    tDry = null
                    bDry = false
                ])
        } else if((AVM_Steckdose_Trockner_Leistungsaufnahme.state as Number).floatValue() > 3){ // notwendig, falls Stromaufnahme zwischendurch sehr niedrig
            tDry?.cancel
            tDry = null
        }
    }
end

Re: Meldung wenn Trockner fertig

Verfasst: 24. Dez 2021 11:41
von Sadi191
Hallo KellerK1nd,
vielen Dank fuer deine Antwort. Bist du so nett und postest noch dein Items?
Dann kann ich versuchen mich da durchzukaempfen.

Re: Meldung wenn Trockner fertig

Verfasst: 28. Dez 2021 11:31
von KellerK1nd
Sadi191 hat geschrieben: 24. Dez 2021 11:41 Hallo KellerK1nd,
vielen Dank fuer deine Antwort. Bist du so nett und postest noch dein Items?
Dann kann ich versuchen mich da durchzukaempfen.
So Weihnachten ist rum...

Code: Alles auswählen

Number:Energy         AVM_Steckdose_Trockner_Leistungsaufnahme           "Leistungsaufnahme Trockner [%.1f W]"                <energy>            (gLeistungWaschkeller, gInfluxdb)                            {channel="avmfritz:FRITZ_DECT_200:192_168_178_2:Trockner:power"} //misst den Stromverbrauch des Trockners
String                TrocknerStatus                                                   "Trockner [%s]"                                               <dryer> //Proxyitem für die Anzeige in der Sitemap
Number                TrocknerStart //Item zum speichern der Startzeit des Trockners
Number                LaufzeitTrockner                                                 "Laufzeit: [%.0f Min]" //Item für die Laufzeit des Trockners
Number                AVM_Steckdose_Trockner_Zaehler                                   "Anzahl Trockenvorgänge [%s]"                                 <dryer> //Item zum Zählen der Trocknervorgänge (rein Statistik und Wartungsgründe)
Switch                AlexaMuteKueche                                                  "Mute []"                                                     <echodot> //Muteschalter für Alexa, welcher Zeitenabhängig geschaltet wird
String    EchoKuecheRemind                "Erinnere"             {channel="amazonechocontrol:echo:myaccount:echokitchen:remind"} //Alexa für die Sprachbenachrichtigung
So jetzt hast du alle.