Hilfe bei meinem ersten eigenen DOIF

Begonnen von NemisisSB, 31 Januar 2018, 15:05:00

Vorheriges Thema - Nächstes Thema

NemisisSB

Hi !

Ich habe nun schon seit einiger Zeit meinen FHEM laufen und alle Geräte funktionieren einwandfrei. Nun würde ich gerne einige Automatismen einbauen die das Leben etwas komfortabeler machen.

Aktuell habe ich zwei Regel eingebaut die meine Rollläden steuen:

define RollEGAll_week WeekdayTimer RollEGAll 1234|07:30|off 1234|20:00|on
define RollEGAll_weekend WeekdayTimer RollEGAll 560|08:00|off 560|21:00|on


Was mir hieran nicht so gut gefällt ist, dass ich die Uhrzeiten nur dadurch angepassen kann, dass ich die Devices lösche und neu erzeuge. Zusätzlich hätte ich gerne einen Schalter mit dem ich die Automatik aktiven oder deaktivieren kann. Da ich aber noch nie ein DOIF selbst geschrieben habe würde ich hier eure Hilfe brauchen.

Folgendes hatte ich geplant:

1. Einen Dummy für den Schalter anlegen:


define RolladenAutomatik dummy
attr RolladenAutomatik room Automatismen
attr RolladenAutomatik webCmd on:off



2. Das DOIF für die Rollenschaltung:


define AutoRollEGALL DOIF ( [RolladenAutomatik] eq "on") (WeekdayTimer RollEGAll 1234|07:30|off 1234|20:00|on) and (WeekdayTimer RollEGAll 560|08:00|off 560|21:00|on)


Würde das so gehen ? Jemand Tips für mich ?

VG,

NemisisSB

CoolTux


define AutoRollEGALL DOIF (([07:30|1234] or [08:00|560]) and [?RolladenAutomatik] eq "on") (set ROLLADEN off) DOELSEIF (([20:00|1234] or [21:00|560]) and [?RolladenAutomatik] eq "on") (set ROLLADEN on)


Ist nicht final und ungeprüft.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Nur am Rande:
- Warum waren das ursprünglich 2 weekdayTimer, das sollte doch auch mit einem gehen...?
- Man kann im Ausführungsteil des wdt auch perl verwenden und da den dummy (oder sonst was) prüfen
Zusammen sieht das dann z.B. so aus (wäre hier nach on und off zu splitten):
define Timer_Umwaelzpumpe WeekdayTimer MYSENSOR_102 !$we|05:50|on $we|06:55|on 12:30|on {fhem ("set $NAME status1 $EVENT") if (ReadingsVal('MYSENSOR_102','temperature21',0) < 35 and ReadingsVal('Status_Urlaub','state',"off") ne "on")}
.
- Was die Automatisierung von Rolläden angeht, ist evtl. auch das hier für dich interessant:
https://forum.fhem.de/index.php/topic,73964.0.html

Viel Erfolg jedenfalls,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Was ich noch vergessen hatte. Deine weekdaytimer kannst dann deaktivieren und wenn alles klappt löschen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

MAC66666

Auch schön: Twilight (Sonnenauf- und Untergang), bei mir als AT gelöst:

define mRWZre at *{twilight("Twilight","sr_civil","7:45","9:00")} set RWZre on

also bei Sonnenaufgang hochfahren, aber nicht vor 7:45 und nicht nach 9 Uhr...

entsprechend andersherum: define aRWZli at *{twilight("Twilight","ss_civil","20:40","23:30")} set RWZli off-for-timer 13

off-for-timer weil er dann noch einen minispalt offen ist

vorher twilight anlegen: define Twilight Twilight 50.3401685 8.371159 689025
natürlich mit anderen Koordinaten, das sind jetzt meine (darf ruhig jeder wissen  ;) )

ggf. auch alles hier vorgeschlagene miteinander kombinieren...
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

Beta-User

Zitat von: CoolTux am 31 Januar 2018, 15:38:02
Was ich noch vergessen hatte. Deine weekdaytimer kannst dann deaktivieren und wenn alles klappt löschen.
Oder den (zusammengefassten) wdt mit einem entsprechenden webcmd versehen, mit dem man ihn aktivieren bzw. deaktivieren kann. Das erspart den dummy, macht aber uU. rote Fragezeichen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

NemisisSB

Zitat von: CoolTux am 31 Januar 2018, 15:23:10

define AutoRollEGALL DOIF (([07:30|1234] or [08:00|560]) and [?RolladenAutomatik] eq "on") (set ROLLADEN off) DOELSEIF (([20:00|1234] or [21:00|560]) and [?RolladenAutomatik] eq "on") (set ROLLADEN on)


Ist nicht final und ungeprüft.

Sehr elegante Lösung, da wäre ich so gar nicht drauf gekommen Beides in ein Coding zu packen. Aber warum das "?" vor dem Dummy Device ?

CoolTux

Schau dir die Commandref an. Da findest du die Antwort
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

NemisisSB

Zitat von: CoolTux am 31 Januar 2018, 17:07:11
Schau dir die Commandref an. Da findest du die Antwort

Die Commandref habe ich gelesen, aber leider verstehe ich die Erklärung nicht: + statuses, readings, internals und time intervals for only queries without trigger with [?...]

Kann mir hier jemand auf die Sprünge helfen ?

CoolTux

Also ich hatte ja die deutsche Version genommen  ;D

for only queries without trigger with
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net