Ich hatte ein sehr spontane Idee, die auch erstaunlich gut geklappt hat 🙂 und dazu hatte ich nach langer Zeit auch wieder Lust was auf meine Seite zu schreiben.
Nachdem ich lange mit FHEM unterwegs war, habe ich inzwischen mein smartes Zu Hause komplett auf ioBroker umgestellt. Wobei nicht ganz…meine ABUS Secvest Alarmanlage läuft noch mit FHEM und den passenden ioBroker Adapter.
Aber nun zum Thema. Ich bzw. meine Frau haben immer wieder das Problem Abends erst zum Wäsche waschen zu kommen und wenn man erst spät kommt ist die Wäsche auch erst spät fertig und die Motivation dann noch die Wäsche zu machen, naja sagen wir mäßig. Die ganze Nacht die feuchte Wäsche in der Trommel lassen war für uns auch keine Option. Was nun?
Nimm einen Servo (hatte ich noch rumliegen, wie so vieles) und einen Wemos D1 Mini, bringe die beiden Teile zusammen und lasse sie Deine “dumme” und nicht mehr ganz junge Waschmaschine zu einer bestimmten Zeit einschalten.
Teileliste:
WERBUNGWemos mit Tasmota
Als erstes kommt der Wemos dran. Ich bin ein totaler Fan von Tasmota und nutze das für alle ESP Projekte bei mir. Zu flashen nehme ich der Einfachheit halber die Online Installation https://tasmota.github.io/install/, einfacher gehts nicht.
Verkabelung
Ich habe den Servo direkt an die Pins gelötet und nach innen gebogen, dann passt nachher auch alles platzsparend in das Gehäuse. Die Verkabelung sieht wie folgt aus:
Die Relais sind nur virtuell und völlig egal welchen GPIO ihr auswählt, für PWM habe ich D4 (GPIO 2) gewählt. Die weiteren Einstellungen für MQTT und Wlan etc. sind unendlich oft beschrieben, dass spare ich mir an dieser Stelle.
Da ich PWM und Servo noch nie direkt am Wemos genutzt haben musste ich mich mal einlesen, dafür habe ich folgende Hilfe genutzt:
https://github.com/arendst/Tasmota/discussions/10443
Hier die Steps der Tasmota Konfiguration um Servo im Shuttermode nutzen zu können. Gebt folgende Befehle der Reihe nach in die Konsole ein:
SetOption80 1 // enable Shutters support.
Shuttermode 5 // enable Shutter mode for servo.
PWMfrequency 200 // this is a global variable for all Servos.
SetOption15 0 // to control the storage of values.
ShutterPwmRange1 100, 500 //this is a global variable for all Servos.
ShutterOpenDuration1 0.5 // define the open time, in seconds.
ShutterCloseDuration1 0.5 // define the close time, in seconds.
ShutterMotorDelay1 0.2 // servo does not like abrupt start / stop.
Restart 1
Gehäuse
Man klebt sich ja den Wemos nicht direkt an die Waschmaschine, also musste noch ein Gehäuse her. Ich bin jetzt nicht der Fusion Held, aber für eine spontane Nummer wie diese reicht es denn schon. Damit der Servo in das Gehäuse passt habe ich an den Seiten die Halterungen abgefeilt.
Hier die Files für Fusion oder direkt die .stl Dateien. Das Gehäuse ist ein wenig dünn an den Wänden geraten, für mich aber soweit ok. Gedruckt habe ich auf meinem Creality Ender 5.
ioBroker
Die ioBroker Integration findet via MQTT und dem SONOFF Adapter statt. Ich schalte die Waschmaschine über Alexa und über einen Datenpunkt der über die Vis mit der Startzeit gefüllt wird.
Für die Steuerung habe ich ein Skript zusammen geschrieben, damit schalte ich zuerst die Steckdose der Waschmaschine um selbige und den Wemos einzuschalten. Das Befüllen, Programmwahl und Einstellungen etc. müssen vorab an der Waschmaschine erfolgen.
Für die Servosteuerung müsst Ihr mal ausprobieren welche Einstellung ihr für den Shutter in Tasmota braucht, bei mir passt die Einstellung ShutterPosition1 0 für Halteposition und ShutterPosition1 63 für das drücken des Tastern sehr gut. Ich lasse den Taster 1 Sek. drücken und fahre den Servo dann wieder zur Halteposition zurück.
Hier mein Script für ioBroker:
var Startzeit = getState('0_userdata.0.Waschmaschine.Startzeit'/*Startzeit*/).val.split(":") //DP Startzeit
//-----------------------------------------------------------------------------------
// Aktualisierung Startzeit und Schedule setzen und schalten der Waschmaschine nach Vorwahlzeit
on('0_userdata.0.Waschmaschine.Startzeit', function (obj) {
Startzeit = getState('0_userdata.0.Waschmaschine.Startzeit').val.split(":")
schedule({hour: Startzeit[0], minute: Startzeit[1]}, Waschmaschine_ein);
});
console.log(Startzeit)
//-----------------------------------------------------------------------------------
// Schalten der Waschmaschine über Dummy DP (Alexa, Vis, etc.)
on({id: '0_userdata.0.Waschmaschine.SwitchBot_ein', change: 'gt'}, function (obj) {
Waschmaschine_ein ()
});
//-----------------------------------------------------------------------------------
// Abschalten der Waschmaschine wenn fertig
on({id: 'device-reminder.0.Waschmaschine.Status'/*Status Waschmaschine*/,change: 'ne'}, function (obj) {
let StatusWM = getState('device-reminder.0.Waschmaschine.Status').val
if (StatusWM == "switched off") {
console.log("TESTEN")
setState('hs100.0.192_168_178_62.state'/*Waschmaschine*/,false);
}
});
//-----------------------------------------------------------------------------------
// Funktion Waschmaschine einschalten
function Waschmaschine_ein () {
let offset = 4000; // Zeit zum Hochfahren vom Wemos
setState('hs100.0.192_168_178_62.state'/*Waschmaschine*/,true);
setStateDelayed('sonoff.0.SwitchBot_WM.ShutterPosition1'/*SwitchBot WM ShutterPosition1*/,63, offset + 1000, false); //Taster drücken
setStateDelayed('device-reminder.0.Waschmaschine.Status'/*Status Waschmaschine*/,"in action", offset + 500, false);
setStateDelayed ('sonoff.0.SwitchBot_WM.ShutterPosition1'/*SwitchBot WM ShutterPosition1*/,0, offset + 2000, false); // Halteposition
setStateDelayed ('0_userdata.0.Waschmaschine.SwitchBot_ein'/*SwitchBot ein*/,false, offset + 2500, false);
}
Ich hoffe Euch Ideen geliefert zu haben oder konnte Euch helfen. Ich freue mich auf Eure Kommentare.
Und wer es nicht selbst basteln will, man kann sowas natürlich auch kaufen:
WERBUNGAufrufe: 5252