Hallo, ist es möglich ein Modul zu bauen welches wie das Modul Heating Control auf einfache weiße es ermöglicht Schaltzeiten,Schaltzustände,Bedingungen für z.B. FS20 Aktoren, Wochentagsweise zu definieren?
z.B.
define FS20_Steckdose_Schalzeit Actor_Control FS20_Steckdose 12345|05:20|on 12345|05:25|off 17:20|on-for-timer:120 17:25|off-for-timer:120
FS20-Steckdose wird Montag-Freitag um 05:25 auf on und um 05:25 auf off gesetzt, bzw. jeden Tag um 17:20 auf on-for-timer 120s und 17:25 auf off-for-timer 120s
define FS20_Steckdose_Schalzeit Actor_Control FS20_Steckdose Mo,Di,Do-Fr|16:00|on (Value("dummy_Automatik") eq "on")
FS20_Steckdos wird Mo,Dienstag,Donnerstag bis Freitag um 16:00 Uhr auf "On" gesetzt wenn die Bedingung dummy_Automatik auf "On" steht
Gruß
cerberus
Zitat von: cerberus schrieb am So, 06 Oktober 2013 21:24ist es möglich ein Modul zu bauen
warum sollte das nicht möglich sein? *grübel*
Hallo betateilchen, ist etwas falsch formuliert meine Frage. Natürlich ist das sicher möglich, die Frage ist, ob z.B. der Entwickler von heatig control sein Modul anpassen oder auf dessen Basis eines für Schaltaktoren bauen kann?
Ist nur eine idee für ein weiteres nützliches Modul.
Gruß
cerberus
Sollte doch jetzt schon mit Heating Control funktionieren.
gibt es schon.
Es ist richtig, dass HC dafür genutzt werden kann:
Beispiel:
define LichtAnAus Heating_Control Licht 07:00|on 20:00|off {fhem("set @ %");}
Wichtig ist, dass der Befehl der ausgeführt werden soll komplett angehängt wird: {fhem("set @ %");}
Es ist alles möglich: z. Bsp.: {macheDiesUndDas("@", "%")
Falls ihr Probleme habt, es ist möglich mit verbose 5 anzuzeigen, was HC tut.
Ich habe auch schon ein Modul 98_WeekdayTimer.pm erstellt, das exakt identisch funktioniert, weil der Name Heating_Control nicht unbedingt darauf schließen läßt, dass eigentlich ein beliebiges Gerät geschaltet werden kann.
Ich habe das Modul 98_WeekdayTimer.pm angehängt.
Nutzungsbeispiel:
define zsu WeekdayTimer Licht So-Fr|08:20|on So-Fr|20:30|off
Falls Bedarf ist es in FHEM aufzunehmen - kein Problem. Hier den Bedarf anmelden.
Achtung 98_WeekdayTimer.pm nutzt Funktionen von Heating_Control per Delegation.
Heating_Control muss also vorhanden sein.
Hallo Dietmar63, hört sich Klasse an, Danke dir.
Ich werde es gleich mal probieren. Wenn es funktioniert und andere auch interessiert sind, wäre es toll es in FHEM mit aufzunehmen.
Gruß
cerberus
Hallo Dietmar,
versuche mal meine Struktur Garagen und Hoftor früh damit öffnen zu lassen. Melde mich, wenn es funktioniert. Hatte bisher dazu ein at mit { fhem ( "set ToreAuf on-for-timer 4" )}. Habe die Timer Funktion durch Ausschaltbefehl eine min nach dem Einschaltbefehl simuliert - oder geht das einfacher?
Hallo Dietmar, meiner erster Test hat super funktioniert. Genau das habe ich mir vorgestellt. So kann ich einige at defines aus der Config raus schmeißen. Ich werde nun eine eigene Config mit den Schaltzeiten anlegen und mit include einbinden. Mit dem Modul ist es jetzt, finde ich, so übersichlicher und einfacher zu händeln wenn Zeiten geändert werden.
Gruß
cerberus
Eine Frage noch Dietmar, wie kann ich ein on-for-timer definieren? Wenn ich on-for-timer 120 angeben, gibt es einen Fehler, vermutlich wegen der Leerstelle.
Zitat von: cerberus schrieb am Di, 08 Oktober 2013 21:07Wenn ich on-for-timer 120 angeben, gibt es einen Fehler, vermutlich wegen der Leerstelle.
ohne es jetzt getestet zu haben: "set bla on-for-timer "."120"
(120 als String dargestellt soll hier nur darauf hinweisen, dass man natürlich auch eine Variable hinschreiben könnte)
Hallo Dietmar,
Test hat auch bei mir super funktioniert"
es müßte mit
define PumpeAnAus WeekdayTimer Pumpe 07:00|on-for-timer 20:00|on-for-timer {fhem("set @ % 120");}
gehen.
Der Parameter muss Im Moment in den Befehlsteil hineingeschrieben werden - leider noch.
Ich könnte mir auch vorstellen den/die Parameter durch Doppelpunkt mitzugeben. Ich würde die ":" dann im Modul durch ein Leerzeichen ersetzen - was meint ihr? :
define PumpeAnAus WeekdayTimer Pumpe 07:00|on-for-timer:120 20:00|on-for-timer:220 {fhem("set @ %");}
Zitat von: det. schrieb am Di, 08 Oktober 2013 20:53Hallo Dietmar,
versuche mal meine Struktur Garagen und Hoftor früh damit öffnen zu lassen. Melde mich, wenn es funktioniert. Hatte bisher dazu ein at mit { fhem ( "set ToreAuf on-for-timer 4" )}. Habe die Timer Funktion durch Ausschaltbefehl eine min nach dem Einschaltbefehl simuliert - oder geht das einfacher?
ich habe nicht ganz verstanden was du meinst.
Hallo Dietmar,
Doppelpunkt ist eine gute Idee.
Danke dir für die schnelle Umsetzung.
Gruß
cerberus
Bei mir funktioniert es jetzt:
define PumpeAnAus WeekdayTimer Zirkulation 22:05|on-for-timer:120 22:10|on-for-timer:220 {fhem("set @ %")}
Protokoll:
2013.10.09 22:10:00 2: Zirkulation: changing timeout to 224 from 220
2013.10.09 22:10:00 3: FS20 set Zirkulation on-for-timer 220
2013.10.09 22:10:00 4: [PumpeAnAu] command: {fhem("set Zirkulation on-for-timer 220")}
2013.10.09 22:10:00 4: [PumpeAnAu] 10.10.2013 22:05:00
2013.10.09 22:10:00 4: [PumpeAnAu] 09.10.2013 22:10:00 ; AktDesiredTemp: 0.0 ; newDesTemperature: on-for-timer:220
2013.10.09 22:10:00 4: [PumpeAnAu] Jetzt:09.10.2013 22:10:05 -> Next: 09.10.2013 22:10:00 -> Temp: on-for-timer:220 -5
2013.10.09 22:05:00 3: FS20 set Zirkulation on-for-timer 120
2013.10.09 22:05:00 4: [PumpeAnAu] command: {fhem("set Zirkulation on-for-timer 120")}
2013.10.09 22:05:00 4: [PumpeAnAu] 09.10.2013 22:10:00
2013.10.09 22:05:00 4: [PumpeAnAu] 09.10.2013 22:05:00 ; AktDesiredTemp: 0.0 ; newDesTemperature: on-for-timer:120
2013.10.09 22:05:00 4: [PumpeAnAu] Jetzt:09.10.2013 22:05:05 -> Next: 09.10.2013 22:05:00 -> Temp: on-for-timer:120 -5
2013.10.09 22:04:27 2: Zirkulation: changing timeout to 224 from 220
2013.10.09 22:04:27 3: FS20 set Zirkulation on-for-timer 220
Die folgenden Einträge sind noch problematisch:
2013.10.09 22:04:27 2: Zirkulation: changing timeout to 224 from 220
2013.10.09 22:04:27 3: FS20 set Zirkulation on-for-timer 220
Ich prüfe noch ein wenig - dann checke ich es ein.
Hallo Dietmar,
ZitatFalls Bedarf ist es in FHEM aufzunehmen - kein Problem. Hier den Bedarf anmelden.
Bitte aufnehmen! Ansonsten können wir immer wieder erklären, dass es schon eine Zeitschaltuhr gibt, die anders heißt;)
Da immer wieder Fragen kommen z. B. nach Feiertagen zu schalten, hätte ich den Vorschlag: statt die umständlichen if-Konstrukte jedes Mal einzubauen, ein weiteres Profil für Feiertage vorzusehen.
z. B.
define zsu WeekdayTimer Licht 12345|08:00|on 67
8|09:00|on
8 entspricht Feiertag
oder
define zsu WeekdayTimer Licht Mo-Fr|08:00|on Sa-
Fe|09:30|on
Fe entspricht Feiertag
Genauso gab es schon mal Anfragen jede zweite Woche etwas zu schalten. Da könnte man sich auch ein Profil dafür überlegen.
Gruß
Damian
Hallo Damian, das sind wirklich sehr gute Vorschläge, genau so habe ich mir das auch vorgestellt. Feiertage zu berücksichtigen und z.B. gerade, ungerade Wochen. Das hatte ich ja schon mal als Frage in Heating Control gepostet.
Gruß
cerberus
Ich sag nur 57_Calendar.pm - eines meiner absoluten Lieblingsmodule innerhalb fhem.
Damit funktioniert das alles quasi out-of-the-box.
Zitat von: betateilchen schrieb am Do, 10 Oktober 2013 13:16Ich sag nur 57_Calendar.pm - eines meiner absoluten Lieblingsmodule innerhalb fhem.
Damit funktioniert das alles quasi out-of-the-box.
wenn man ein Fritte hat steht https nicht zur Verfügung - oder irre ich mich.
Zitatdefine SwitchActorOn notify MyCalendar:modeStarted.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get MyCalendar summary $uid");; if(defined $actor) { fhem("set $actor on") } }
define SwitchActorOff notify MyCalendar:modeEnded.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get MyCalendar summary $uid");; if(defined $actor) { fhem("set $actor off") } }
You can also do some logging:
define LogActors notify MyCalendar:mode(Started|Ended).* { my $reading= "%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get MyCalendar summary $uid");; Log 3 %NAME, 1, "Actor: $actor, Reading $reading" }
scheint auch nicht so einfach zu sein!
Zitat von: Damian schrieb am Do, 10 Oktober 2013 08:47Hallo Dietmar,
ZitatFalls Bedarf ist es in FHEM aufzunehmen - kein Problem. Hier den Bedarf anmelden.
Bitte aufnehmen! Ansonsten können wir immer wieder erklären, dass es schon eine Zeitschaltuhr gibt, die anders heißt;)
Da immer wieder Fragen kommen z. B. nach Feiertagen zu schalten, hätte ich den Vorschlag: statt die umständlichen if-Konstrukte jedes Mal einzubauen, ein weiteres Profil für Feiertage vorzusehen.
z. B.
define zsu WeekdayTimer Licht 12345|08:00|on 678|09:00|on
8 entspricht Feiertag
oder
define zsu WeekdayTimer Licht Mo-Fr|08:00|on Sa-Fe|09:30|on
Fe entspricht Feiertag
Genauso gab es schon mal Anfragen jede zweite Woche etwas zu schalten. Da könnte man sich auch ein Profil dafür überlegen.
Gruß
Damian
Ich checke das Modul ein und denke über die beiden Wünsche
Feiertage und nach alle n-Wochen nach.
eingecheckt!
Zitat von: Dietmar63 schrieb am Do, 10 Oktober 2013 21:48wenn man ein Fritte hat steht https nicht zur Verfügung - oder irre ich mich.
ja, ich glaube, da irrst Du Dich (zumindest teilweise).
Zitat von: rudolfkoenig schrieb am Sa, 28 September 2013 08:03Das IO::Socket::SSL Modul ist seit ueber einem Jahr Teil des FritzBox 7390 Paketes, das FB7270-er Paket enthaelt es aber nicht.
Zitat von: Dietmar63 schrieb am Do, 10 Oktober 2013 21:48scheint auch nicht so einfach zu sein!
Das sind zwei recht einfache notify die völlig unabhängig von dem funktionieren, was Du im Kalender angibst. Du musst in den notify keine Frist mehr abfragen, keine Wochentage vergleichen und wann Feiertag ist, weiss Google auch (zumindest wenn Du dort den Feiertagskalender aktiv hast).
Ausserdem: So wie Du das aus der commandref kopiert hast, wird es nicht funktionieren, wenn zwei Termine gleichzeitig im gleichen Kalender beginnen oder enden.
Hallo,
bekomme ich als Zeit auch ein {sunset(-2700,"16:00","22:00")}
eingebaut?
Und kann ich das dann auch noch als Status anzeigen, wann z.B. das Event ausgelöst wird?
Gruß Otto
nein - das ist leider zur Zeit nicht möglich.
Es ist auch recht schwierig einzubauen. Der Wunsch wurde schon im letzten Jahr geäußert. Für eine Umsetzung fehlt mir noch die Idee.
1. Schwierigkeit: Perlausdruck als Zeit parsen.
2. Schwierigkeit: Die ermittelte Zeit jeden Tag in die Liste der Schaltzeiten aufnehmen.
Ich denke aber mal weiter darüber nach. Vielleicht fällt mir ja etwas ein. Die Tage werden ja wieder länger.
Vorschlag für eine flexible Angabe der Schaltzeiten für Heating_Control und WeekdayTimer:
http://forum.fhem.de/index.php/topic,10011.msg101535.html#msg101535 (http://forum.fhem.de/index.php/topic,10011.msg101535.html#msg101535)