FHEM Forum

FHEM => Automatisierung => Thema gestartet von: yersinia am 24 September 2023, 20:42:54

Titel: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: yersinia am 24 September 2023, 20:42:54
Hallo zusammen,
ich möchte eine Steckdose an definierten Wochentagen (Mo - Fr) ein- und wieder ausschalten. Die Wochentage können sich aber von Woche zu Woche ändern (zB "Mo, Di, Do" oder "Di, Mi, Fr" usw). Bisher hatte ich das mit einem DOIF genutzt und die Definition mit der Wochentagsdefinition angepasst, wie zB:
(([06:30:00|135])
    and ([?MQTT2_Steckdose:state] eq "off")
    and ([?myholiday:state] eq "none"))
    (set MQTT2_Steckdose on)
DOELSEIF (([18:31:00])
    and ([?MQTT2_DVES_Steckdose:state] eq "on"))
    (set MQTT2_Steckdose off)
Das war mir aber auf Dauer zu mühselig, dies immer wieder über die DEF zu ändern - insbesondere für die Einbindung in FTUI3 etwas unpraktikabel.

Nach etwas Suchen habe ich das DOIF Zeitgeber-Beispiel (https://wiki.fhem.de/wiki/DOIF/Zeitgeber#Einfacher_Wecker) adaptiert und dies gefällt mir schon besser:
(([06:30:00])
    and ((([?$SELF:rl_1_Monday,"off"] eq "on") and ($wday == 1))
        or (([?$SELF:rl_2_Tuesday,"off"] eq "on") and ($wday == 2))
        or (([?$SELF:rl_3_Wednesday,"off"] eq "on") and ($wday == 3))
        or (([?$SELF:rl_4_Thursday,"off"] eq "on") and ($wday == 4))
        or (([?$SELF:rl_5_Friday,"off"] eq "on") and ($wday == 5)))
    and ([?MQTT2_Steckdose:state] eq "off")
    and ([?myholiday:state] eq "none"))
    (set MQTT2_Steckdose on)
DOELSEIF (([18:31:00])
    and ([?MQTT2_Steckdose:state] eq "on"))
    (set MQTT2_Steckdose off)
mit
attr meinDOIF readingList rl_1_Monday rl_2_Tuesday rl_3_Wednesday rl_4_Thursday rl_5_Friday
attr meinDOIF setList rl_1_Monday:on,off rl_2_Tuesday:on,off rl_3_Wednesday:on,off rl_4_Thursday:on,off rl_5_Friday:on,off
attr meinDOIF webCmd rl_1_Monday:rl_2_Tuesday:rl_3_Wednesday:rl_4_Thursday:rl_5_Friday
attr meinDOIF webCmdLabel Mo:Di:Mi:Do:Fr

Ich frage mich allerdings, ob es eine einfachere bzw andere Lösung gibt und wollte mal hier nach Input bzw anderen Sichtweisen fragen.
Ich denke, das DOIF könnte man auch kürzen, hab es aber nicht probiert - zB sowas wie (keine Ahnung ob es funktioniert; anstelle von on würden die readings entsprechend Wochentagsnummerierung erhalten):
([?"$SELF:^rl_.*$",99] == $wday)
Neben DOIF gibt es bestimmt andere Lösungen, wie zB mittels at oder myUtils Funktionen. Wie würdet ihr sowas handhaben/lösen?
Danke vorab.
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Der_Tom am 25 September 2023, 08:45:21
moin,

nunja, du sagst es ja selbst - 100 wege führen zum ziel.

da ich viele entsprechende timer habe wollte ich es ebenfalls schnell und unkompliziert haben - in meinem Fall über mswitch gelöst, massgeblich ist hier wohl das entsprechende widget für die Wochentage ( wo auch immer du es einbaust )

gruss Thomas
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: yersinia am 25 September 2023, 10:50:08
Zitat von: Der_Tom am 25 September 2023, 08:45:21in meinem Fall über mswitch gelöst, massgeblich ist hier wohl das entsprechende widget für die Wochentage ( wo auch immer du es einbaust )
Gibt es zum mswitch auch eine Einsteigerdoku? Wiki sagt, es sei veraltet, in der commandref steht nichts und die github ist sehr bedeckt.
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Der_Tom am 25 September 2023, 12:01:12
nein , gibt es nicht .

die Wikiseiten sind auch nicht von mir , sondern wurden mal von einem User angelegt , der seit Jahren inaktiv ist .

Da es sich um ein -nunja- hier eher "ungeliebtes" Modul handelt , welches einen recht überschaubaren Nutzerkreis hat habe ich mich auch nicht weiter um Doku ausserhalb des Moduls bemüht.

Es hat integrierte Hilfebuttons , mithilfe derer die meissten Fragen beantwortet werden.

Weiterhin gibt es hier einen Thread im Forum den ich im Auge habe sowie eine Whatsappgruppe in der sich die meisten User zusammengetah haben , die das Modul nutzen.

Ich wollte aber auch gar nicht aud das Modul hinaus, sondern im Grunde nur das Widget in den Raum werfen , da es - glaube ich - eher unbekannt ist.

Gruss Thomas
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Wolle02 am 25 September 2023, 18:04:42
Leider ist MSwitch wirklich etwas unbekannt und wird stiefmütterlich behandelt. In meinen Augen völlig zu unrecht, was aber viellicht auch wirklich der fehlenden Doku geschuldet ist. Wenn man aber einfach mal mit
define test_ms mswitchein Device zum rumspielen anlegt und dann ganz unten auf "Help for MSwitch" klickt tauchen überall viele "?"-Buttons auf, die zu fast jeden Feld Hilfe anbieten. Damit kommt man dann ziemlich gut klar.
Ich persönlich finde das MSwitch-Modul mega.

Deine o.g. Anforderungen dürften damit recht einfach und auch komfortabel umsetzbar sein.

Edit:
Achso ja, leider ist MSwitch ja immer noch nicht regulärer Bestandteil von FHEM. Aber hier (https://forum.fhem.de/index.php?topic=121817.0) wird im ersten Beitrag die Installation beschrieben.
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Prof. Dr. Peter Henning am 26 September 2023, 20:37:18
Das Modul YAAHM ermöglicht flexible Tages- und Wochenpläne und kann auch mit unterschiedlichen Kalendern umgehen.

LG

pah
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Damian am 26 September 2023, 21:19:09
Zitat von: Der_Tom am 25 September 2023, 12:01:12nein , gibt es nicht .

die Wikiseiten sind auch nicht von mir , sondern wurden mal von einem User angelegt , der seit Jahren inaktiv ist .

Da es sich um ein -nunja- hier eher "ungeliebtes" Modul handelt , welches einen recht überschaubaren Nutzerkreis hat habe ich mich auch nicht weiter um Doku ausserhalb des Moduls bemüht.

Es hat integrierte Hilfebuttons , mithilfe derer die meissten Fragen beantwortet werden.

Weiterhin gibt es hier einen Thread im Forum den ich im Auge habe sowie eine Whatsappgruppe in der sich die meisten User zusammengetah haben , die das Modul nutzen.

Ich wollte aber auch gar nicht aud das Modul hinaus, sondern im Grunde nur das Widget in den Raum werfen , da es - glaube ich - eher unbekannt ist.

Gruss Thomas


Man muss sich ja nicht von einigen wenigen beirren lassen. Eine Doku und das Einchecken eines fertigen Moduls kann den Nutzerkreis nur vergrößern :)
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: eisman am 26 September 2023, 21:41:20
hi,

eine Idee mit dem GoogleCalender

im kalender

fhem devicename reading on
und 1std später
fhem devicename reading off

bei mir

fhem HEIZUNG winter on; (off)

defmod no.Switch.Actor notify GoogleTermine:start:.* {\
  my $reading = "$EVTPART0";; \
  my $uid     = "$EVTPART1";; \
  my $actor   = fhem("get GoogleTermine summary $uid");; \
  my @Dev     = (split(' ', $actor));;\
  if($Dev[0] eq "fhem") {\
    fhem("set $Dev[1] $Dev[2] $Dev[3];;");;\
  }\
}

ist so eine idee

ich schalte damit die Heizung in Sommer- und Winterbetrieb...

gruss
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: yersinia am 27 September 2023, 09:16:34
Vielen Dank für die Rückmeldungen. mswitch werde ich mir mal in Ruhe ansehen, der Aufwand, diesen initial ins FHEM zu bekommen ist schon größer im Vergleich zum Rest. Zumindest auf der github Seite (https://github.com/Byte009/Fhem-MSwitch) hätte ich einen Einsteigerleitfaden bzw Link auf den Thread erwartet. ;) Support über WA ist für mich(!) keine Option.

YAAHM (https://wiki.fhem.de/wiki/Modul_YAAHM) schau ich mir ebenso an. Danke für den Hinweis.

Über (Google-)Kalender dies zu lösen finde ich dann, für den Anwendungsfall, zu komplex - dedizierte Kalendereinträge zu erstellen/modifizieren finde ich für den (meinen) Anwendungsfall übers Ziel hinausgeschossen. Aber vielen Dank für den Input. :)
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Prof. Dr. Peter Henning am 27 September 2023, 11:29:08
Mit YAAHM wäre das wie folgt zu lösen:

1. Beliebig viele unterschiedliche Wochenprofile definieren - inklusive der durch Häkchen erfolgende einfache Festlegung, ob dieses Profile auch in den Modi "Party", "Abwesenheit", "Nicht-Stören", "Urlaub" und "Feiertag" ausgeführt werden soll.

2. In das Feld "Aktion", das einen beliebigen FHEM-Befehl enthalten kann, einfach eine Bedingung aufnehmen. Die könnte beispielsweise einen Dummy "Wochentyp" abfragen:
{fhem("set Steckdose an") if (Value("Wochentyp") == 3)}
3. Klick auf "Start Wochentimer"

Der Witz bei YAAHM ist, dass dies nicht im Modul selbst geregelt wird. Sondern dass entsprechende DOIF-Devices im Hintergrund angelegt werden.

LG

pah

Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: betateilchen am 27 September 2023, 11:37:22
Bei mir sind solche Dinge auch über Calendar Einträge gelöst.
Das hat sich über Jahre als die am einfachsten zu pflegende Variante herausgestellt.

Zitat von: yersinia am 27 September 2023, 09:16:34Über (Google-)Kalender dies zu lösen finde ich dann, für den Anwendungsfall, zu komplex - dedizierte Kalendereinträge zu erstellen/modifizieren finde ich für den (meinen) Anwendungsfall übers Ziel hinausgeschossen.

So komplex, wie Du das befürchtest, ist das eigentlich gar nicht.

Zitat von: eisman am 26 September 2023, 21:41:20hi,

eine Idee mit dem GoogleCalender

Nur als Hinweis: Deine Umsetzung mittels Calendar ist aber ziemlich altes Vorgehen. Das hat sich schon vor Jahren geändert und ist inzwischen um einiges einfacher umzusetzen.
Und zwei Einträge für on und off hat man noch nie gebraucht. Jeder Eintrag sollte ja ein Beginn und ein Ende haben, das man auswerten kann.
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: Prof. Dr. Peter Henning am 27 September 2023, 14:02:18
Zitat von: betateilchen am 27 September 2023, 11:37:22Deine Umsetzung mittels Calendar ist aber ziemlich altes Vorgehen

Wir sind ja nun schon auch ältere Semester... ;D

LG

pah
Titel: Aw: Ideen für: Steckdose einschalten mit flexibler Wochentagsdefiniton
Beitrag von: eisman am 27 September 2023, 17:18:19
Zitat von: betateilchen am 27 September 2023, 11:37:22Bei mir sind solche Dinge auch über Calendar Einträge gelöst.
Das hat sich über Jahre als die am einfachsten zu pflegende Variante herausgestellt.

Zitat von: yersinia am 27 September 2023, 09:16:34Über (Google-)Kalender dies zu lösen finde ich dann, für den Anwendungsfall, zu komplex - dedizierte Kalendereinträge zu erstellen/modifizieren finde ich für den (meinen) Anwendungsfall übers Ziel hinausgeschossen.

So komplex, wie Du das befürchtest, ist das eigentlich gar nicht.

Zitat von: eisman am 26 September 2023, 21:41:20hi,

eine Idee mit dem GoogleCalender

Nur als Hinweis: Deine Umsetzung mittels Calendar ist aber ziemlich altes Vorgehen. Das hat sich schon vor Jahren geändert und ist inzwischen um einiges einfacher umzusetzen.
Und zwei Einträge für on und off hat man noch nie gebraucht. Jeder Eintrag sollte ja ein Beginn und ein Ende haben, das man auswerten kann.



es war ja nur ein beispiel.....

und für die Heizung brauche ich zwei Termine, Anfang Mai und Ende Oktober,
und sonst ist es natürliche in bestimmten fällen einer....

sonst benötigt.

ein Kalender Eintrag
  "defmod GoogleAbfall Calendar ical url https://calendar....."
  "defmod CalAbfall CALVIEW GoogleAbfall 1"
und einen notify

ich finde es nicht aufwendig.

und er verrichtet seit 3 Jahren seinen dienst....

gruss