Neues Modul: Erweiterte Zeitschaltuhr - Sequenzielle Bewässerungskreise

Begonnen von nisi80, 04 Mai 2021, 16:54:18

Vorheriges Thema - Nächstes Thema

nisi80

Hallo miteinander,

ich möchte gern ein Modul implementieren, welches eine Zeitschaltuhr darstellt, mit der ich einzelne Schalter sequenziell AN und AUS schalten kann und hier jeweils eine variable Dauer definieren kann.
Ich stelle es mir so vor, dass ich eine Startzeit und die jeweiligen Dauern der Zyklen definiere.
Sollte sich eine Dauer ändern, sollte die komplette Zeitplanung neu berechnet werden und die Startzeiten aktualisiert werden. Zudem würde ich gern einstellen können, ob ein Zyklus jeweils jeden Tag oder alle 2 oder 3 Tage ausgeführt wird.
Auch dadurch würden sich die Zeitpläne ändern.

Hintergrund ist, dass ich eine Bewässerungssteuerung haben möchte, die ein 12-fach Relaisboard ansteuert, an der Magentventile hängen. Das ganze ist per ESP und Tasmota mittels MQTT an FHEM angebunden. Die Beregnungskreise überlappen sich unterschiedlich, weshalb ich hier unterschiedliche Beregnungszeiten realisieren will.

Eventuell gibt es ja das Ganze schon, über einen Tipp wäre ich sehr dankbar, aber über einen Dummy und externe Funktionen gestaltet sich das Ganze schon etwas schwierig und ich denke, dass ein Modul die richtige Basis wäre und eventuell braucht der eine oder andere auch solch eine "Erweiterte Zeitschaltuhr".

Damit das Modul universell einsetzbar ist, wäre eine Einbindung von MQTT-Topics zum Schalten oder mehrerer!!! IODevices sinnvoll.

Was meint ihr?
Welchen Modulrumpf kann ich hier zum Beginnen am besten nutzen?

VG Denis
RaspberryPi mit FHEM 6.1
SMLUSB für den Stromzähler+WMBUS+nanoCUL für den Wasserzähler, 2x ebus-Konverter für die Gastherme und Solarthermie, nanoCUL868: MAXX! Fensterkontakte, RaspberryMatic-CCU: Bewegungsmelder, Rolläden, 1xPlenticore+2xPikoMP (10.4kWp)+BYD(5kW/h)

Beta-User

Vermutlich ist das ganze mit einem MQTT2_DEVICE und etwas zusätzlichem myUtils-Code zu machen.

Der "Trick" dabei ist: Du kannst über die setList beliebigen Code (eben z.B. aus myUtils) aufrufen, es muss nicht zwingend ein publish am Ende rauskommen, und über MQTT2_DEVICE hättest du Zugriff auf (im Prinzip beliebig viele) FHEMWEB-widgets.
(Als Beispiel für eine "undef-Rückgabe" aus setList findest du im attrTemplate OpenMQTTGateway_BT_scanner den setter deleteReadings, der dort zyklisch aufgerufen wird).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files