Waschmaschine, Wäschetrockner, Geschirrspühler
Verfasst: 27. Apr 2022 20:57
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. 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:
Thing Tasmota:
Dann noch die Items anlegen
Items:
und die Rule:
Die Leistung, ab wann das Gerät als "EIN" detektiert wird und ab wann es in Standby geht muss angepasst werden.
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. 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
*/
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)
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