FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: cerberus am 06 Oktober 2013, 21:24:16

Titel: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 06 Oktober 2013, 21:24:16
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
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: betateilchen am 07 Oktober 2013, 09:58:00
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*
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 07 Oktober 2013, 21:00:42
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
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: stromer-12 am 08 Oktober 2013, 18:46:42
Sollte doch jetzt schon mit Heating Control funktionieren.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 08 Oktober 2013, 19:20:27
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.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 08 Oktober 2013, 20:17:11
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
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: det. am 08 Oktober 2013, 20:53:23
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?
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 08 Oktober 2013, 21:01:45
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
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 08 Oktober 2013, 21:07:15
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.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: betateilchen am 09 Oktober 2013, 09:48:28
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)
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: det. am 09 Oktober 2013, 17:15:05
Hallo Dietmar,
Test hat auch bei mir super funktioniert"
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 09 Oktober 2013, 20:19:30
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 @ %");}
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 09 Oktober 2013, 21:01:11
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.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 09 Oktober 2013, 21:04:12
Hallo Dietmar,

Doppelpunkt ist eine gute Idee.

Danke dir für die schnelle Umsetzung.

Gruß
cerberus
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 09 Oktober 2013, 22:45:47
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.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Damian am 10 Oktober 2013, 08:47:36
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 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




Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: cerberus am 10 Oktober 2013, 13:00:57
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
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: betateilchen am 10 Oktober 2013, 13:16:46
Ich sag nur 57_Calendar.pm - eines meiner absoluten Lieblingsmodule innerhalb fhem.
Damit funktioniert das alles quasi out-of-the-box.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 10 Oktober 2013, 21:48:58
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!
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 10 Oktober 2013, 21:51:58
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.
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 10 Oktober 2013, 23:39:55
eingecheckt!
Titel: Aw: Modul für Schaltzeiten z.B. FS20
Beitrag von: betateilchen am 11 Oktober 2013, 10:37:39
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.
Titel: Antw:Modul für Schaltzeiten z.B. FS20
Beitrag von: Otto am 13 Oktober 2013, 15:50:16
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
Titel: Antw:Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 13 Oktober 2013, 20:53:24
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.
Titel: Antw:Modul für Schaltzeiten z.B. FS20
Beitrag von: Dietmar63 am 21 Oktober 2013, 21:54:55
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)