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