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
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.
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
Was ich noch vergessen hatte. Deine weekdaytimer kannst dann deaktivieren und wenn alles klappt löschen.
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...
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...
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 ?
Schau dir die Commandref an. Da findest du die Antwort
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 ?
Also ich hatte ja die deutsche Version genommen ;D
for only queries without trigger with