WeekDayTimer auf mehrere Device

Begonnen von Puschel74, 21 Februar 2014, 23:31:39

Vorheriges Thema - Nächstes Thema

Puschel74

Hallo zusammen,

ich hoffe ich bin mit meiner Frage hier richtig  8)

Ich habe mehrere Telefone im Haus die jedes an einer HM-LC-SW1-PL2 stecken.
Bisher werden die über
define Ladeschaltung_Telefone at *21:50:00 {
    if ($wday=5) {
    fhem ("set Ladestation_.* Laden")
  }
}

jeden Freitag ab 21:50 eingeschaltet.
Ausgeschaltet werden sie über
define Telefon_Laden notify Ladestation_.* {
  if ($EVENT eq "Laden") {
    fhem("define $NAME"."_aus at +03:00:00 set $NAME off");
  }
  if ($EVENT eq "Aus") {
    fhem("delete $NAME"."_aus") if (Value("$NAME"."_aus") ne "");
  }
}

Hier wird die jeweilige Steckdose 3 Stunden nach dem einschalten wieder ausgeschaltet - das funktioniert auch für jede Steckdose.

Nun wollte ich das
a) um einen zusätzlichen Tag erweitern - das ist ja nicht das Problem if (($wday=1) || ($wday=4))
b) mit weekdayTimer lösen
Und bei Punkt b hänge ich da bei dem define:
define Telefon_Laden_alle weekdayTimer Ladestation_.* Fr|11:00|Laden set @ %
das kommt:
Zitatinvalid Device, given Device <Ladestation_.*> not found

Klar, weekdayTimer kann mit .* nichts anfangen aber  -
wo ist mein Fehler?

Oder geht das so nicht?
weekdayTimer sollte eigentlich nur einschalten - das auschalten setze ich per at ab da die Steckdosen auch noch "extern" mal aktiviert werden.

Für Tipps, Tricks oder nen schupps in die richtige Richtung bin ich mal wieder dankbar.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

#2
Zitatdefine Ladeschaltung_Telefone at *21:50:00 {
    if ($wday=5) {
    fhem ("set Ladestation_.* Laden")
  }
}

Bist du sicher, dass fhem ("set Ladestation_.* Laden") wirklich funktioniert? War mir bisher jedenfalls nicht bekannt.

WD prüft bei der Definition das device auf Existenz. Da es Ladestation_.* an sich nicht gibt, wird die Definition abgelehnt.
Wenn obiger Befehl wirklich alle Geräte mit Ladestation_  beginnend einschaltet, dann kann WD dies prinzipiell auch, vorausgesetzt, ich entferne die Prüfung.

Wenn du dir erst einmal selbst helfen willst, bevor ich es ändere und einchecke:
Du musst nur Zeile 104 in (nicht wundern) Heating_Control auskommentieren und mit reload 98_Heating_Control das Modul nachladen:
#return "invalid Device, given Device <$device> not found" if(!$defs{$device});

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Hallo,

ZitatBist du sicher, dass fhem ("set Ladestation_.* Laden") wirklich funktioniert?
Zumindest findet sich das im Logfile:
Zitat2014.02.21 21:50:00 3: Ladeschaltung geprüft Wochentag ist 5
2014.02.21 21:50:00 2: CUL_HM set Ladestation_Bar on
2014.02.21 21:50:00 2: CUL_HM set Ladestation_EG on
2014.02.21 21:50:00 2: CUL_HM set Ladestation_GZ on
2014.02.21 21:50:00 2: CUL_HM set Ladestation_OG_Schlaf on
und es hat auch im Keller an beiden Ladestationen brav *Piep* gemacht  ;D

ZitatDu musst nur Zeile 104 in (nicht wundern) Heating_Control
Na da kann ich ja lange nach WeekdayTimer in der Maintainer.txt suchen  ::)

Ok. Werd ich nachher mal versuchen - jetzt ist erstmal noch einkaufen angesagt.

Melde mich später nochmal und danke schonmal für die Hilfe.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

#4
Hallo,

ein
define Telefon_Laden_alle weekdayTimer Ladestation_.* Sa|12:50|Laden set @ %
hat, wie nicht anders zu erwarten, um 12:50:06 Uhr alle Ladestationen eingeschaltet  ;D

Perfekt - danke dir Dietmar63.
Da ich aber nicht weiß welche "Nebenwirkungen" bzw. Konsequenzen sich aus dieser Änderung ergeben - das weisst nur du - werde ich mal schauen was ich noch alles auf WeekDayTimer umstellen kann um zu schauen was passiert.

Grüße

Edith: Ich weiß ja nicht ob das möglich ist bzw. wieviel Aufwand das bedeutet aber aufgrund Rudis Beitrag hier http://forum.fhem.de/index.php/topic,11886.0.htmlkönntest du evtl. noch $NAME und $EVENT anstelle von @ und % ermöglichen?
Momentan bringt mir der WDD
Zitat2014.02.22 13:07:00 3: Please define $NAME first
Ich lass es mal mit @ und % laufen - danke dennoch  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dietmar63

Ich glaube nicht dass der Aufwand hoch ist.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

@Puschel:
$NAME $EVENT + device kann als regexp angegeben werden: Ladestation.*.

Es war nicht schwer den Wunsch umzusetzen, nur schwer zu finden, wie Rudi es gemacht hat.
Teste es mal, ob es funktioniert.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Hallo,

nun klappt es einwandfrei mit
Ladestation_.* 15|20:16|Laden set $NAME $EVENT
Danke.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Puschel74

Hallo,

ich häng meine nächste Frage grad mal hier dran  ;D

Ich hab in der Firma einen RasPi mit FHEM und Weekdaytimer in Verwendung um Lampen zeitgesteuert ein- und ausschalten zu lassen.
Erstmal nur auf Dummys da ich die restliche Hardware noch nicht habe (siehe http://forum.fhem.de/index.php/topic,19437.0.html)

Ich habe dafür per Dummys auch eine "Freigabe" realisiert und der jeweilige WDT ist auch auf inactive aber die zugehörigen Lampen werden dennoch hochgedimmt und eingeschaltet.
Hier der Code für das zukünftige Device:
define 219A dummy
attr 219A devStateIcon On:black_FS20.on Off:black_FS20.off
attr 219A group Beleuchtung
attr 219A room 2_Obergeschoss
attr 219A setList dim:slider,0,6.25,100
attr 219A webCmd On:dim:Off

Und hier für den WDT:
define Schaltuhr_219A_ein weekdayTimer 219A 1234567|06:00|dim15% 1234567|06:05|dim30% 1234567|06:10|dim45% 1234567|06:15|dim50% 1234567|06:20|dim65% 1234567|06:25|dim80% 1234567|06:30|on
attr Schaltuhr_219A_ein room 2_OG_ZS
define Schaltuhr_219A_aus weekdayTimer 219A 1234567|17:30|dim80% 1234567|17:35|dim65% 1234567|17:40|dim50% 1234567|17:45|dim45% 1234567|17:50|dim30% 1234567|17:55|dim15% 1234567|18:00|off
attr Schaltuhr_219A_aus room 2_OG_ZS

Wobei das noch der "alte" Code ist.
Mittlerweile habe ich hochdimmen/einschalten und runterdimmen/ausschalten in einen WDT gepackt mit der Abfrage des Freigabedummy am Ende.
Wenn ich es richtig im Kopf habe sollte das jetzt so aussehen:
define Schaltuhr_219A weekdayTimer 219A 1234567|06:00|dim15% 1234567|06:05|dim30% 1234567|06:10|dim45% 1234567|06:15|dim50% 1234567|06:20|dim65% 1234567|06:25|dim80% 1234567|06:30|on 1234567|17:30|dim80% 1234567|17:35|dim65% 1234567|17:40|dim50% 1234567|17:45|dim45% 1234567|17:50|dim30% 1234567|17:55|dim15% 1234567|18:00|off (ReadingsVal("219A_Freigabe","state","off") eq "on")
attr Schaltuhr_219A_ein room 2_OG_ZS

Wie gesagt steht der WDT auch auf inactive aber die Dummys werden dennoch geschalten.

Ich reiche morgen Screenshots und die genauen Codes (auch des Freigabe_Dummy) nach da ich weiß das eine Fehlersuche in so einem Fall wie das stochern im Heuhaufen sein kann.
Ich wollte nur das ich nicht vergesse morgen noch was zu posten  ;D

Aber evtl. weiß ja jemand (Dietmar63)auf Anhieb das das mit Dummys nicht klappt.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dietmar63

#9
WDT kann alles schalten!

Im Grunde wird nur Textersatz durchgeführt und an fhem übergeben.

Wenn nichts angegben ist, dann wird set <device> <parameter> ausgeführt, eventuell mit Bedigung.
Wenn du ein Perlausdruck angibst, kann du fast alles ausführen lassen.

Wenn etwas nicht so funktioniert wie erwartet, dann hilft dir verbose 5 weiter.

Der Status <inactive> ist ein wenig schwierig korrekt zu bestimmen. Eigentlicht stammt der Code aus Heating_Control.
Eventuell muss ich den Code für die Ermittlung von <active> noch ein wenig schärfen und ggf. <undefined> ergänzen.
Grüße
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Hallo,

danke schonmal für die Antwort.

Aber, wie gesagt, der WDT wird mir als <inactive> angezeigt und das Dimmen wird dennoch ausgeführt.
Oder hab ich bei inactive nur eine falsche Erwartung?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Jens_B

#11
Hallo zusammen,
ich habe das ganze darüber gelöst indem ich über den weekdaytimer eine structure schalte. Liegt in dieser Vorgehensweise, wie sie hier gezeigt wird ein Vorteil?
Über $NAME $EVENT und .* hat es bei mir nicht funktioniert.
Sorry, ich kann gerad keinen Code anhängen, übers iPhone.



Gesendet von meinem iPhone mit Tapatalk
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

Puschel74

Hallo,

ZitatÜber $NAME $EVENT und .* hat es bei mir nicht funktioniert.
Was hat nicht funktioniert?
Fehlermeldung?

Bei mir funktioniert ein $NAME $EVENT einwandfrei für unsere 4 Telefone.

Hast du die 98_Heating_Control.pm aus Dietmars Beitrag genommen? http://forum.fhem.de/index.php/topic,20571.msg141381.html#msg141381
Per update habe ich diese Änderung auch noch nicht bekommen - die Datei musste ich händisch ersetzen.

Ob diese Variante einen Vorteil hat?
Naja - ich brauch kein structure ergo ein Modul weniger.
Ob man das als Vorteil sehen kann weiß ich nicht.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Jens_B

Achso, ich habe das in der Hearing Control pm natürlich nicht händisch angepasst, mein Fehler. Dachte es wäre schon über ein fhem Update gekommen...

Gruß
Jens



Gesendet von meinem iPhone mit Tapatalk
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax

Jens_B

Zitat von: Puschel74 am 25 Februar 2014, 19:51:36
Hallo,

ich häng meine nächste Frage grad mal hier dran  ;D

Ich hab in der Firma einen RasPi mit FHEM und Weekdaytimer in Verwendung um Lampen zeitgesteuert ein- und ausschalten zu lassen.
Erstmal nur auf Dummys da ich die restliche Hardware noch nicht habe (siehe http://forum.fhem.de/index.php/topic,19437.0.html)

Ich habe dafür per Dummys auch eine "Freigabe" realisiert und der jeweilige WDT ist auch auf inactive aber die zugehörigen Lampen werden dennoch hochgedimmt und eingeschaltet.
Hier der Code für das zukünftige Device:
define 219A dummy
attr 219A devStateIcon On:black_FS20.on Off:black_FS20.off
attr 219A group Beleuchtung
attr 219A room 2_Obergeschoss
attr 219A setList dim:slider,0,6.25,100
attr 219A webCmd On:dim:Off

Und hier für den WDT:
define Schaltuhr_219A_ein weekdayTimer 219A 1234567|06:00|dim15% 1234567|06:05|dim30% 1234567|06:10|dim45% 1234567|06:15|dim50% 1234567|06:20|dim65% 1234567|06:25|dim80% 1234567|06:30|on
attr Schaltuhr_219A_ein room 2_OG_ZS
define Schaltuhr_219A_aus weekdayTimer 219A 1234567|17:30|dim80% 1234567|17:35|dim65% 1234567|17:40|dim50% 1234567|17:45|dim45% 1234567|17:50|dim30% 1234567|17:55|dim15% 1234567|18:00|off
attr Schaltuhr_219A_aus room 2_OG_ZS

Wobei das noch der "alte" Code ist.
Mittlerweile habe ich hochdimmen/einschalten und runterdimmen/ausschalten in einen WDT gepackt mit der Abfrage des Freigabedummy am Ende.
Wenn ich es richtig im Kopf habe sollte das jetzt so aussehen:
define Schaltuhr_219A weekdayTimer 219A 1234567|06:00|dim15% 1234567|06:05|dim30% 1234567|06:10|dim45% 1234567|06:15|dim50% 1234567|06:20|dim65% 1234567|06:25|dim80% 1234567|06:30|on 1234567|17:30|dim80% 1234567|17:35|dim65% 1234567|17:40|dim50% 1234567|17:45|dim45% 1234567|17:50|dim30% 1234567|17:55|dim15% 1234567|18:00|off (ReadingsVal("219A_Freigabe","state","off") eq "on")
attr Schaltuhr_219A_ein room 2_OG_ZS

Wie gesagt steht der WDT auch auf inactive aber die Dummys werden dennoch geschalten.


Hallo Puschel,
ich habe hier eine ähnliche Sache für meine Rollladen eingerichtet, auf/zu mit Abfrage auf einen Dummy "Zeitsteuerung". Das funktioniert wie gewünscht. Der Code sieht folgendermaßen aus:
ROLLLADEN_GAST_TEST 1234567|07:30|auf 1234567|{sunset_abs(-1800,"17:00","22:00")}|zu ( (!$we) && (Value("ZEITSTEUERUNG") eq "an"))

Wenn "Zeitsteuerung" auf "aus" steht wird nicht geschaltet, Wenn Zeitsteuerung auf "an" wird geschaltet.

Gruß
Jens
RaspberryPi 4 (Raspian Buster)FHEM+Homebridge
HMLAN für Homematic
Z-Wave USB Stick
Shelly Devices
Fritz!Box 7590Ax