Autor Thema: RandomTimer - neues Modul  (Gelesen 113970 mal)

Offline Olly

  • Full Member
  • ***
  • Beiträge: 293
Aw: RandomTimer - neues Modul
« Antwort #15 am: 08 August 2013, 22:42:42 »
Hallo,

ich würde gerne das Modul RandomTimer nutzen um Funksteckdosen zu schalten, dabei möchte ich aber für Wochenenden eine andere Abschaltzeit verwenden.
Wie muss ich denn die Abfrage if($we) mit dem RandomTimer-define verknüpfen, damit das klappt?

Für einen Stups in die richtige Richtung wäre ich dankbar

Gruß

     Olly
Raspberry Pi Model B 512MB; CSM 868MHz FHEMduino; FHEM5.8
BananaPi 1GB; miniCUL 433MHz; LaCrosseGateway; FHEM 5.8

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #16 am: 09 August 2013, 06:49:29 »
fhem.cfg


define ZufallsTimerTisch      RandomTimer  *{sunset_abs()} StehlampeTisch  {abschaltZeit($we)} 480


99_utils

sub abschaltZeit ($) {
  my ($we) = @_;

  if ($we) {
    return "22:00:00";
  } else {
    return "23:00:00";
  }
}


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

Offline Olly

  • Full Member
  • ***
  • Beiträge: 293
Aw: RandomTimer - neues Modul
« Antwort #17 am: 09 August 2013, 09:36:53 »
Hallo Dietmar,

vielen Dank für die schnelle Antwort.
Werde das mal in meine Config einfügen und dann dieses Wochenende ausprobieren.

Gruß

    Olly
Raspberry Pi Model B 512MB; CSM 868MHz FHEMduino; FHEM5.8
BananaPi 1GB; miniCUL 433MHz; LaCrosseGateway; FHEM 5.8

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #18 am: 13 August 2013, 19:37:54 »
lüppt?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Olly

  • Full Member
  • ***
  • Beiträge: 293
Aw: RandomTimer - neues Modul
« Antwort #19 am: 13 August 2013, 21:07:43 »
Ups, fast vergessen.

Ja, funktioniert prima. Werde jetzt mal ein paar Geräte "randomisieren".
Und dann kann der Urlaub kommen ;-)

nochmal Danke und Gruß

    Olly
Raspberry Pi Model B 512MB; CSM 868MHz FHEMduino; FHEM5.8
BananaPi 1GB; miniCUL 433MHz; LaCrosseGateway; FHEM 5.8

Offline Matthias

  • Full Member
  • ***
  • Beiträge: 283
Aw: RandomTimer - neues Modul
« Antwort #20 am: 15 August 2013, 16:05:05 »
Nur zur Info: Es gibt auch ein HOL-Modul in Contrib (http://sourceforge.net/p/fhem/code/3706/tree/trunk/fhem/contrib/98_HOL.pm), das Geräte zufällig schaltet.

Viele Grüße,
Matthias

Offline klaus.schauer

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 976
Aw: RandomTimer - neues Modul
« Antwort #21 am: 21 August 2013, 10:51:29 »
Die Option switchmode scheint bei mir nicht zu funktionieren. Mit

attr random_timer_test switchmode 500/500

wird trotzdem bei Internals

SIGMAOFF 800
SIGMAON 200
SWITCHMODE 800/200

angezeigt.

Nachtrag: Die Werte scheinen erst nach Aktivierung der Routine gesetzt zu werden. Jedenfalls sind sie jetzt bei einer Routine in Ordnung, die augenblicklich aktiv ist.

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Aw: RandomTimer - neues Modul
« Antwort #22 am: 21 August 2013, 14:42:57 »
Zitat
Nachtrag: Die Werte scheinen erst nach Aktivierung der Routine gesetzt zu werden. Jedenfalls sind sie jetzt bei einer Routine in Ordnung, die augenblicklich aktiv ist.

so ist es.
Immer erst dann, wenn die Entscheidung an/aus getroffen werden muss, wird das Attribut gelesen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:RandomTimer - neues Modul
« Antwort #23 am: 16 Oktober 2013, 22:55:53 »
RandomTimer um disable erweitert - eingecheckt.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Schnup

  • Gast
Antw:RandomTimer - neues Modul
« Antwort #24 am: 01 Januar 2014, 16:28:27 »
Hallo,
ich versuche den RandomTimer einzusetzen, habe aber ein paar Probleme mit der englischen Beschreibung.

1. Unter "Deskrition" steht: "Every (timeToSwitch seconds +-10%) it trys to switch device on/off."
Das habe ich für mich so übersetzt: "Die Dauer wird mit einer zufälligen Abweichung von +-10% eingehalten.
Wenn ich die Funktion richtig verstehe variiert doch das Attribut "switchmode" mit seinen beiden Parametern die EIN/AUS-Schaltdauer.
Was bedeutet die Angabe +-10% in diesem Zusammenhang?

2. Attribut "disableCond"
"In the disableCond-Attibute a condition can be specified, that must be true to have the Randomtimer work.
The Condition must be put into round brackets. The best way is to define a function in 99_utils."
Das klingt für mich widersprüchlich, wenn ich eine DisableCondition auf TRUE setze, um den Timer zu aktivieren.
Kann ich das Attribut nicht auch direkt setzen, z.B.: "attr disableCond true"?

Schnup

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:RandomTimer - neues Modul
« Antwort #25 am: 01 Januar 2014, 17:33:00 »
Melde mich nachher
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:RandomTimer - neues Modul
« Antwort #26 am: 01 Januar 2014, 23:58:43 »
Zitat
1. Unter "Deskrition" steht: "Every (timeToSwitch seconds +-10%) it trys to switch device on/off."
Das habe ich für mich so übersetzt: "Die Dauer wird mit einer zufälligen Abweichung von +-10% eingehalten.
Wenn ich die Funktion richtig verstehe variiert doch das Attribut "switchmode" mit seinen beiden Parametern die EIN/AUS-Schaltdauer.
Was bedeutet die Angabe +-10% in diesem Zusammenhang?

timeToSwitch definiert die Zeit zwischen zwei Schaltvorgängen. Sie wird mit einer zufälligen Abweichung von 10% eingehalten.

switchmode verändert die Wahrscheinlichkeit mit der ein- bzw. ausgeschaltet wird. 800/200 bedeutet, dass mit 80%er Wahrscheinlichkeit eingeschaltet wird, wenn das Gerät ausgeschaltet ist, und dass mit 20%er Wahrscheinlichkeit ausgeschaltet wird, wenn das Gerät eingeschaltet ist. Dahinter steckt die Überlegung, dass ich nur selten auschalten will. Das Verhalten kann mit switchmode angepasst werden.

Zitat
2. Attribut "disableCond"
"In the disableCond-Attibute a condition can be specified, that must be true to have the Randomtimer work.
The Condition must be put into round brackets. The best way is to define a function in 99_utils."
Das klingt für mich widersprüchlich, wenn ich eine DisableCondition auf TRUE setze, um den Timer zu aktivieren.
Kann ich das Attribut nicht auch direkt setzen, z.B.: "attr disableCond true"?

Da ist in der Beschreibung wohl ein kleiner Fehler unterlaufen. Sollte wohl heißen: ... must be true to set the Randomtimer out of work. ...

disableCond muss ein gültiger Perlausdruck in () folgen. Wenn er zu true evaluiert, ist der Timer abgeschaltet.
http://www.perlmonks.org/?node=what%20is%20true%20and%20false%20in%20Perl%3F

attr disableCond ("true")
attr disableCond (0)
attr disableCond (1)
sollte gehen
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Harald

  • Sr. Member
  • ****
  • Beiträge: 633
Antw:RandomTimer - neues Modul
« Antwort #27 am: 04 Januar 2014, 10:37:53 »
Hallo zusammen,

gibt es ein Wiki oder sonst etwas, wo ich genauere Infos über das Modul und dessen Verwendung (möglichst in Deutsch) finden kann?
Ich habe z.B. immer noch nicht verstanden, was "timeToSwitch" genau bewirkt. Außerdem verstehe ich die Beschreibung so, dass man ein "Dummy" verwenden soll. Hier steht aber in einem Beitrag, dass kein Dummy erforderlich ist.
Zitat
Die Definition enthält neuerdings kein dummy mehr.
Man muss, wenn man den RT über dummy an-/abschalten will, eine disableCondition per attr setzen.

Viele Grüße und alles Gute für 2014

Harald
« Letzte Änderung: 04 Januar 2014, 23:33:27 von Harald »
Router:AVM7490 1&1 FW:FRITZ!OS 06.51 Anbindung:1&1 16/50 Mb/s, WLAN-Repeater 300E OS 6.04
ELV MAX!Cube, 7xThermostat, ECO, Raspberry Pi B mit Wheezy auf Festplatte,
CUL-V3_1.61, JeeLink v3_10.1c, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA
ELV MAX!1.4.5, MAX!Buddy, -Backup, FHEM 5.7 auf RasPi

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:RandomTimer - neues Modul
« Antwort #28 am: 04 Januar 2014, 23:48:44 »
Es gibt kein wiki und keine Doku auf Deutsch.

timeToSwitch definiert die Zeit die wiederholt vergeht, bis eine neue Ein-/Ausschaltung   durchgeführt wird. Wenn du 900 angibst, wird alle 15 Minuten (+-10%) geprüft, ob geschaltet werden muss.

RT hat eine längere Geschichte hinter sich. Ursprüglich konnte man in der Definition ein dummy angeben, das auf ja/nein geprüft wurde. Dieses Vorgehen ist aber nicht so flexibel wie die Definition einer Funktion, die true/false  liefern muss. In der Funktion kannst du dann alles mögliche prüfen.

Probier einfach mal verschiedene timeToSwitch aus und setze für die RT das verbose Attribut auf 5, dann bekommst du im fhem-Log debug Informationen, die dir  die Funktionsweise näherbringen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Schnup

  • Gast
Antw:RandomTimer - neues Modul
« Antwort #29 am: 05 Januar 2014, 12:59:31 »
Hallo Dietmar,

herzlichen Dank für Deine Antwort und alles Gute für 2014.

Den Zusammenhang zwischen der "zufälligen Abweichung" bei timeToSwitch und der "Wahrscheinlichkeit" bei switchmode habe ich allerdings noch nicht richtig verstanden.

Um das Licht im Treppenraum bei Abwesenheit zu steuern setze ich: timeToSwitch 20 Sek. und switchmode 100/800
Damit bleibt das Licht immer nur kurz eingeschaltet und sollte über einen wesentlich größeren Zeitraum ausgeschaltet bleiben.

Bisher habe das Attribut switchmode 100/800  so ausgelegt:
 -> 100  bestimmt die zufällige Abweichung der Einschaltzeit, variiert also timeToSwitch um 10%
 -> 800  bestimmt die zufällige Abweichung der Auszeit, variiert also timeToSwitch um 80%


Schnup