Seite 1 von 1

Waschmaschine, Wäschetrockner, Geschirrspühler

Verfasst: 27. Apr 2022 20:57
von paradeismarvin
Servus zusammen,

ich lass mich von der Alexa informieren und eine Pushnachricht senden, sobald z.B. die Waschmaschine fertig ist.
Falls für jemanden sowas interessant ist und noch eine WLAN-Steckdose mit Tasmota rumliegen hat:
Erstmal bei der Steckdose MQTT einrichten sowie die Telemetry period unter Configure Logging auf 30 Sekunden reduzieren.
Tasmota Config.png
Du brauchst einen MQTT-Server (ich hab auf dem PI ein Moskito) und das Bindung. Da ich mehrerer Geräte per MQTT angebunden habe, hab ich die Bridge getrennt:

Thing:

Code: Alles auswählen

Bridge mqtt:broker:myUnsecureBroker [ host="192.168.177.33", secure=false ]

/* briefing
    Main Bridge for all MQTT Things
*/
Thing Tasmota:

Code: Alles auswählen

Thing mqtt:topic:mqttgosund "Tasmota" (mqtt:broker:myUnsecureBroker) {     
    Channels:
        Type switch :         GS3Switch                        "GS3Switch"                            [stateTopic="stat/Gosund3/POWER",   commandTopic="cmnd/Gosund3/POWER", on="ON", off="OFF"]  
        Type number :         GS3Power                         "GS3Power"                             [stateTopic="tele/Gosund3/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]      
        Type number :         GS3EnergyTotal                   "GS3EnergyTotal"                       [stateTopic="tele/Gosund3/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total"]
        Type number :         GS3EnergyReset1                  "GS3EnergyReset1"                      [commandTopic="cmnd/Gosund3/EnergyReset1"]
        Type number :         GS3EnergyReset3                  "GS3EnergyReset3"                      [commandTopic="cmnd/Gosund3/EnergyReset3"]
   } 

Dann noch die Items anlegen
Items:

Code: Alles auswählen

Switch    WasherSwitch              "Waschmaschine Stromversorgung"                                   <washingmachine>    (gKG_boiler, gRRD4J, gWasher)    {channel="mqtt:topic:mqttgosund:GS3Switch"}
Number    WasherPower               "Waschmaschine Leistung [%.0fW]"                                  <washingmachine>    (gRRD4J, gWasher)                {channel="mqtt:topic:mqttgosund:GS3Power"}
Number    WasherEnergyTotal         "Waschmaschine Energieverbrauch aktueller Waschgang [%.0fWh]"     <washingmachine>    (gRRD4J, gWasher)                {channel="mqtt:topic:mqttgosund:GS3EnergyTotal"}
Number    WasherEnergyReset1        "Gosund3 Energy Reset1"                                           <washingmachine>    (gRRD4J)                         {channel="mqtt:topic:mqttgosund:GS3EnergyReset1"}
Number    WasherEnergyReset3        "Gosund3 Energy Reset3"                                           <washingmachine>    (gRRD4J)                         {channel="mqtt:topic:mqttgosund:GS3EnergyReset3"}
Switch    WasherRun                 "Waschmaschine läuft"                                             <washingmachine>    (gKG_boiler, gRRD4J, gWasher)
Number    WasherEnergyLast          "Waschmaschine Energieverbrauch [%.0fWh]"                         <washingmachine>    (gKG_boiler, gRRD4J)
und die Rule:

Code: Alles auswählen

var Timer stopAlarmTimer = null
var Number nTemp = 0
var String sAlexa = ""

rule "Washer finished"
/* briefing
    Sendet eine Pushnachricht und Alexa gibt eine Sprachnachricht aus, wenn die Waschmaschine fertig ist. 
*/
when
    Item WasherPower changed
then
    if ( (WasherRun.state == OFF) && (WasherPower.state > 10) ) {
        WasherRun.sendCommand(ON)
    }

    else if ( (WasherRun.state == ON) && (WasherPower.state < 3) ) {
        WasherRun.sendCommand(OFF)
        nTemp = (WasherEnergyTotal.state as DecimalType)
        sAlexa = nTemp.toString.substring(0,1) +"," + nTemp.toString.substring(2,4)
        sendBroadcastNotification("Waschbär ist fertig. Energieverbrauch: " +sAlexa +"kWh", "washingmachine", "none") //Pushnachricht 
        AlexaTextToSpeech.sendCommand("Der Waschbär ist fertig. Er hat für deine Wäsche " +sAlexa + " Kilowattstunden Strom und zwei Socken gefressen")   
        WasherEnergyLast.postUpdate(nTemp)
        WasherEnergyReset1.sendCommand(0)
        WasherEnergyReset3.sendCommand(0)     
        if (stopAlarmTimer === null)
            {
                stopAlarmTimer = createTimer(now.plusSeconds(300)) [|
                    stopAlarmTimer.cancel()
                    stopAlarmTimer = null
                    WasherEnergyLast.postUpdate(0)
                ]
            }
    }

    else if (WasherPower.state == 0) {
        WasherRun.sendCommand(OFF)
    }
end
Die Leistung, ab wann das Gerät als "EIN" detektiert wird und ab wann es in Standby geht muss angepasst werden.