Frage zu Random Timer

Begonnen von Michi240281, 04 Januar 2014, 20:37:41

Vorheriges Thema - Nächstes Thema

Dietmar63

ja, alle Module, die mit 99 beginnen werden automatisch beim Start geladen.
Wenn du Änderungen vornimmst, egal an welchem Modul musst du neu starten(umständlich) oder mit reload <modulname_ohne_.pm> nachladen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Michi240281

#16
Ah ok!

Update: Der RT wurde erneut nicht gestartet! Ein "reload 99_myUtils" brachte im log die Rückmeldung: Error: reload 99_myUtils; module deactivated!!!!!!!

Woran könnte das denn schon wieder liegen?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Michi240281

#17
Habs jetzt hinbekommen, dass die 99_myUtils eingeladen wird! Da fehlte wohl noch was an Inhalt!

Der RT funktioniert nun auch, allerdings nur mit folgendem Code:

define Zufall_Vase RandomTimer *{sunset_abs(-4000)} Vase 18:30 500
attr Zufall_Vase disableCond (!isAbwesend())


Mit folgendem Code funktioniert er nicht! Ich verstehe nicht warum! Unter "Everything" wird er genauso so mit Startzeit angezeigt wie bei der ersten Variante, allerdings startet er nicht, er macht also die Vase nicht an! Hat jmd ne Idee, woran das liegen könnte?

define Zufall_Vase RandomTimer *{sunset("CIVIL",0,"15:00","18:00")} Vase 18:30 500
attr Zufall_Vase disableCond (!isAbwesend())


Also mit der sunset_abs Funktion funzt der RT, aber mit sunset(CIVIL....) nicht!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Michi240281

Zitat von: Michi240281 am 09 Januar 2014, 21:27:36
Habs jetzt hinbekommen, dass die 99_myUtils eingeladen wird! Da fehlte wohl noch was an Inhalt!

Der RT funktioniert nun auch, allerdings nur mit folgendem Code:

define Zufall_Vase RandomTimer *{sunset_abs(-4000)} Vase 18:30 500
attr Zufall_Vase disableCond (!isAbwesend())


Mit folgendem Code funktioniert er nicht! Ich verstehe nicht warum! Unter "Everything" wird er genauso so mit Startzeit angezeigt wie bei der ersten Variante, allerdings startet er nicht, er macht also die Vase nicht an! Hat jmd ne Idee, woran das liegen könnte?

define Zufall_Vase RandomTimer *{sunset("CIVIL",0,"15:00","18:00")} Vase 18:30 500
attr Zufall_Vase disableCond (!isAbwesend())


Also mit der sunset_abs Funktion funzt der RT, aber mit sunset(CIVIL....) nicht!

Jemand ne Idee? Würde den RT nämlich lieber mit der 2. Variante verwenden!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

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

Michi240281

Zitat von: Dietmar63 am 11 Januar 2014, 11:44:49
http://forum.fhem.de/index.php?topic=14010.msg124382#msg124382

Bei mir geht der RT mit sunset(CIVIL...) auch am nächsten Tag nicht! Die Startzeit steht zwar da, genau wie bei sunset_abs, aber der RT wird nicht aktiv, sprich er schaltet die Geräte nicht ein.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Dietmar63

Wenn du {sunset("CIVIL",0,"15:00","18:00")} auf der Oberfläche von fhem eingibst kommt zur Zeit 41:12:38 dabei heraus. RT interpretiert die Ergebnisse als abolute Zeiten.

Nachts so gegen 0:30 Uhr werden die ss/sr  des aktuellen Tages ermittelt.

verbose 5 - dann bekommst du logging.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Harald

Hallo Michi240281,

wie Du in dem von Dietmar angegebenen Link siehst, habe ich damit auch Probleme gehabt.

Ich verwende *{sunset_abs("HORIZON=3",0,"15:00","21:00")}, so wie Dietmar es mir empfohlen hat und es klappt prima.

Wenn Du sunset(.... schreibst und FHEM wird durch irgend etwas neu gestartet (z.B. Abspeichern der fhem.cfg, reload .... o.ä.), wird timespec_start + 24 Std. berechnet und RT nimmt dann dies als Startzeit. Schreibst Du sunset_abs(.... werden die 24 Std. nicht hinzugezählt und die vorher definierte Startzeit bleibt. Bei der Verwendung von sunset(... scheint es nur so, als ob RT nicht funktionierte. Der Startpunkt wird nur ggf. verschoben. Sieh Dir mal in der commandref die Beschreibung zu SUNRISE_EL an (auch wenn's in englisch ist). Dort habe ich auch nach dem Hinweis von Dietmar die Erklärung gefunden.
Seit dem klappt's prima mit dem RT  ;)

Viele Grüße und viel Erfolg

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Harald

#23
Hallo Michi240281,

in meiner fhem.cfg steht##############################################################################
#
#                 ELRO-Steckdosen schalten
# funktionieren mit diesen Adressen auch mit der Fernbedienung
#
define Verreist dummy
attr Verreist room ELRO
attr Verreist webCmd ja:nein
#
define Urlaub dummy
attr Urlaub room ELRO
attr Urlaub webCmd ja:nein
#
define Normal dummy
attr Normal room ELRO
attr Normal webCmd ja:nein
#

define myTwilight Twilight 51.518056 6.342778 1 652005
attr myTwilight room ELRO
#
define Dose1 IT 0FF000FFFF FF F0
attr Dose1 IODev CUL_0
attr Dose1 model itswitch
attr Dose1 room ELRO
attr Dose1 verbose 5
define Dose1Wohn RandomTimer *{sunset_abs("HORIZON=+2",0,"15:00","22:00")} Dose1 23:10:00 900
attr Dose1Wohn disableCond (!isVerreist())
attr Dose1Wohn room ELRO
attr Dose1Wohn switchmode 999/000
attr Dose1Wohn verbose 5

und in der 99_myUtils.pm
sub isUrlaub         () { return(YesNo("Urlaub"));}
sub isVerreist       () { return(YesNo("Verreist"));}
sub isNormal         () { return(YesNo("Normal"));}

sub YesNo ($) {

  my ($dummy) = @_;
  my $state = ReadingsVal($dummy, "state", "nein");
  if ($state eq "nein") {
    return 0;
  }
  return 1;
}


Und hier ein Versuch, Deine Frage aus #14 zu beantworten:
Die Anweisung in der fhem.cfg "isVerreist()" ruft das in der 99_myUtils.pm definierte Unterprogramm "sub isVerreist()" auf. Solche Anweisungen rufen immer irgend welche Unterprogramme in irgendwelchen Modulen oder in der fhem.pl auf. Diese Unterprogramme ermitteln bestimmte Werte, die bei der Rückkehr ins Hauptprogramm (in diesem Falle fhem.cfg) zur Verfügung stehen und ausgewertet werden können, hier 0 (return 0) bzw. 1 (return 1).
Diese Unterprogramme erkennt FHEM beim Start (99er Module) oder beim Aufruf der entsprechenden Funktion. Du brauchst also in Deiner fhem.cfg nichts zusätzliches veranlassen.

Das ist nur eine sehr vereinfachte Beschreibung und ich hoffe, dass ich Dir nicht falsches geschrieben habe. Falls doch, möge bitte ein Wissender das richtig stellen.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Michi240281

Zitat von: Harald am 11 Januar 2014, 18:08:28
Hallo Michi240281,

wie Du in dem von Dietmar angegebenen Link siehst, habe ich damit auch Probleme gehabt.

Ich verwende *{sunset_abs("HORIZON=3",0,"15:00","21:00")}, so wie Dietmar es mir empfohlen hat und es klappt prima.

Wenn Du sunset(.... schreibst und FHEM wird durch irgend etwas neu gestartet (z.B. Abspeichern der fhem.cfg, reload .... o.ä.), wird timespec_start + 24 Std. berechnet und RT nimmt dann dies als Startzeit. Schreibst Du sunset_abs(.... werden die 24 Std. nicht hinzugezählt und die vorher definierte Startzeit bleibt. Bei der Verwendung von sunset(... scheint es nur so, als ob RT nicht funktionierte. Der Startpunkt wird nur ggf. verschoben. Sieh Dir mal in der commandref die Beschreibung zu SUNRISE_EL an (auch wenn's in englisch ist). Dort habe ich auch nach dem Hinweis von Dietmar die Erklärung gefunden.
Seit dem klappt's prima mit dem RT  ;)

Viele Grüße und viel Erfolg

Harald

Hallo Harald,

vielen Dank für deine Hinweise.

Bei mir ist es nur leider so, dass der RT mit der sunrise(CIVIL.....) Funktion die Startzeit zwar berechnet hat (wenn das auch um +24Std verschoben ist), jedoch hat der RT auch am darauffolgenden Tag einfach nicht die Geräte eingeschaltet.

Ob ich also sunrise_abs oder sunrise(CIVIL....) verwende, die Startzeit wird in beiden Fällen angezeigt, nur gehen die verlinkten Geräte nur mit sunrise_abs auch an.

Hast du eine Idee, woran das liegen könnte?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Michi240281

#25
Zitat von: Harald am 11 Januar 2014, 18:37:56
Hallo Michi240281,

in meiner fhem.cfg steht##############################################################################
#
#                 ELRO-Steckdosen schalten
# funktionieren mit diesen Adressen auch mit der Fernbedienung
#
define Verreist dummy
attr Verreist room ELRO
attr Verreist webCmd ja:nein
#
define Urlaub dummy
attr Urlaub room ELRO
attr Urlaub webCmd ja:nein
#
define Normal dummy
attr Normal room ELRO
attr Normal webCmd ja:nein
#

define myTwilight Twilight 51.518056 6.342778 1 652005
attr myTwilight room ELRO
#
define Dose1 IT 0FF000FFFF FF F0
attr Dose1 IODev CUL_0
attr Dose1 model itswitch
attr Dose1 room ELRO
attr Dose1 verbose 5
define Dose1Wohn RandomTimer *{sunset_abs("HORIZON=+2",0,"15:00","22:00")} Dose1 23:10:00 900
attr Dose1Wohn disableCond (!isVerreist())
attr Dose1Wohn room ELRO
attr Dose1Wohn switchmode 999/000
attr Dose1Wohn verbose 5

und in der 99_myUtils.pm
sub isUrlaub         () { return(YesNo("Urlaub"));}
sub isVerreist       () { return(YesNo("Verreist"));}
sub isNormal         () { return(YesNo("Normal"));}

sub YesNo ($) {

  my ($dummy) = @_;
  my $state = ReadingsVal($dummy, "state", "nein");
  if ($state eq "nein") {
    return 0;
  }
  return 1;
}


Und hier ein Versuch, Deine Frage aus #14 zu beantworten:
Die Anweisung in der fhem.cfg "isVerreist()" ruft das in der 99_myUtils.pm definierte Unterprogramm "sub isVerreist()" auf. Solche Anweisungen rufen immer irgend welche Unterprogramme in irgendwelchen Modulen oder in der fhem.pl auf. Diese Unterprogramme ermitteln bestimmte Werte, die bei der Rückkehr ins Hauptprogramm (in diesem Falle fhem.cfg) zur Verfügung stehen und ausgewertet werden können, hier 0 (return 0) bzw. 1 (return 1).
Diese Unterprogramme erkennt FHEM beim Start (99er Module) oder beim Aufruf der entsprechenden Funktion. Du brauchst also in Deiner fhem.cfg nichts zusätzliches veranlassen.

Das ist nur eine sehr vereinfachte Beschreibung und ich hoffe, dass ich Dir nicht falsches geschrieben habe. Falls doch, möge bitte ein Wissender das richtig stellen.

Viele Grüße

Harald

Vielen Dank auch für diese Infos! Gut zu wissen!  :)
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Michi240281

@ Harald:

Ich habe es mal mit "Horizon" probiert, scheint gut zu funktionieren! Danke dafür!  :)

Eine Frage hätte ich da noch (hab auch noch garnicht ausprobiert was passieren würde): Wenn der RT abgelaufen ist, sind die entsprechenden Geräte dann "on" oder off"? Falls die auf "Off" stehen, kann man das irgendwie ändern, sodass die Geräte "on" bleiben?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Harald

Hmm, da bin ich mir nicht ganz sicher. Das habe ich noch nicht versucht. Bei mir sind die Geräte nach Ablauf der Zeit aus und das möchte ich auch so. Probiere es doch einfach aus.

Tut mir leid, das ich Dir da nicht viel weiter helfen kann.

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

Michi240281

Hast Recht, gerade getestet! Nach Ablauf sind die Geräte aus!

Ich meine ich hätte irgendwo gelesen, dass man das auch ändern kann! Kann da vllt jmd weiterhelfen?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Dietmar63

ZitatFalls die auf "Off" stehen, kann man das irgendwie ändern
nein - kann man im Moment nicht. Aber du kannst ein notify auf den RT definierten:

define AfterRTtimeOn            notify randonTimer:off                          {fhem("set Geraet on")}
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm