RandomTimer - neues Modul

Begonnen von Dietmar63, 28 Juli 2013, 15:52:40

Vorheriges Thema - Nächstes Thema

Dietmar63

ok, wenns nicht geht ändere ich es wieder zurück.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Sooo,
das sieht sehr gut aus  8)
Das Problem sind wirklich die Zustände "on" und "off" - die HM-Dimmer z.b. geben aber  statt "on" "chn:off phys:100 %" aus, was mit dem RT nicht kompatibel ist.
Ich habe es jetzt für mich so gelöst, dass ich die HM-Dimmer durch den RT auf einen bestimmten Prozentwert schalten lasse:

offCmd     set Dimmer_Kueche pct 0
onCmd      set Dimmer_Kueche pct 100 


Und dann im dem entsprechenden Kanal des Dimmers ein eventMap setze:

Attributes:
eventMap   100:on 0:off


Damit bekomme ich mit verbose 4 ein wunderschönes Log  ;D

2015.12.16 17:42:09 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 17:42:09 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:730->false
2015.12.16 17:42:59 4: [zufall_arbeitszimmer_abends] IstZustand------------>off
2015.12.16 17:42:59 4: [zufall_arbeitszimmer_abends] IstZustand:off sigma-off:800 random:315->true
2015.12.16 17:42:59 4: [zufall_arbeitszimmer_abends] SollZustand------------>on
2015.12.16 17:42:59 4: [zufall_arbeitszimmer_abends] command: {fhem ("set Licht_Arbeitszimmer on")}
2015.12.16 17:42:59 3: CUL_HM set Licht_Arbeitszimmer on
2015.12.16 17:46:27 4: [zufall_kueche_abends] IstZustand------------>on
2015.12.16 17:46:27 4: [zufall_kueche_abends] IstZustand:on sigma-on:200 random:926->false
2015.12.16 17:46:27 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 17:46:27 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:907->false
2015.12.16 17:48:10 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 17:48:10 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:429->false
2015.12.16 17:50:32 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 17:50:32 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:614->false
2015.12.16 17:51:29 4: [zufall_kueche_abends] IstZustand------------>on
2015.12.16 17:51:29 4: [zufall_kueche_abends] IstZustand:on sigma-on:200 random:543->false
2015.12.16 17:53:21 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 17:53:21 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:733->false
2015.12.16 17:54:34 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 17:54:34 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:240->false
2015.12.16 17:56:33 4: [zufall_kueche_abends] IstZustand------------>on
2015.12.16 17:56:33 4: [zufall_kueche_abends] IstZustand:on sigma-on:200 random:849->false
2015.12.16 17:58:28 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 17:58:28 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:407->false
2015.12.16 17:58:36 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 17:58:36 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:224->false
2015.12.16 18:01:30 4: [zufall_kueche_abends] IstZustand------------>on
2015.12.16 18:01:30 4: [zufall_kueche_abends] IstZustand:on sigma-on:200 random:672->false
2015.12.16 18:02:36 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 18:02:36 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:550->false
2015.12.16 18:03:18 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 18:03:18 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:790->false
2015.12.16 18:06:19 4: [zufall_kueche_abends] IstZustand------------>on
2015.12.16 18:06:19 4: [zufall_kueche_abends] IstZustand:on sigma-on:200 random:139->true
2015.12.16 18:06:19 4: [zufall_kueche_abends] SollZustand------------>off
2015.12.16 18:06:19 4: [zufall_kueche_abends] command: set Dimmer_Kueche pct 0
2015.12.16 18:06:19 3: CUL_HM set Dimmer_Kueche pct 0
2015.12.16 18:06:42 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 18:06:42 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:141->true
2015.12.16 18:06:42 4: [zufall_wohnzimmer_abends] SollZustand------------>off
2015.12.16 18:06:42 4: [zufall_wohnzimmer_abends] command: set Dimmer_Wohnzimmer pct 0
2015.12.16 18:06:42 3: CUL_HM set Dimmer_Wohnzimmer pct 0
2015.12.16 18:08:16 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 18:08:16 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:572->false
2015.12.16 18:10:53 4: [zufall_wohnzimmer_abends] IstZustand------------>off
2015.12.16 18:10:53 4: [zufall_wohnzimmer_abends] IstZustand:off sigma-off:800 random:782->true
2015.12.16 18:10:53 4: [zufall_wohnzimmer_abends] SollZustand------------>on
2015.12.16 18:10:53 4: [zufall_wohnzimmer_abends] command: set Dimmer_Wohnzimmer pct 70
2015.12.16 18:10:53 3: CUL_HM set Dimmer_Wohnzimmer pct 70
2015.12.16 18:11:17 4: [zufall_kueche_abends] IstZustand------------>off
2015.12.16 18:11:17 4: [zufall_kueche_abends] IstZustand:off sigma-off:800 random:972->false
2015.12.16 18:13:05 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 18:13:05 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:843->false
2015.12.16 18:15:10 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 18:15:10 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:357->false
2015.12.16 18:16:09 4: [zufall_kueche_abends] IstZustand------------>off
2015.12.16 18:16:09 4: [zufall_kueche_abends] IstZustand:off sigma-off:800 random:940->false
2015.12.16 18:17:59 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 18:17:59 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:973->false
2015.12.16 18:19:29 4: [zufall_wohnzimmer_abends] IstZustand------------>on
2015.12.16 18:19:29 4: [zufall_wohnzimmer_abends] IstZustand:on sigma-on:200 random:613->false
2015.12.16 18:21:07 4: [zufall_kueche_abends] IstZustand------------>off
2015.12.16 18:21:07 4: [zufall_kueche_abends] IstZustand:off sigma-off:800 random:332->true
2015.12.16 18:21:07 4: [zufall_kueche_abends] SollZustand------------>on
2015.12.16 18:21:07 4: [zufall_kueche_abends] command: set Dimmer_Kueche pct 100
2015.12.16 18:21:07 3: CUL_HM set Dimmer_Kueche pct 100
2015.12.16 18:23:06 4: [zufall_arbeitszimmer_abends] IstZustand------------>on
2015.12.16 18:23:06 4: [zufall_arbeitszimmer_abends] IstZustand:on sigma-on:200 random:75->true
2015.12.16 18:23:06 4: [zufall_arbeitszimmer_abends] SollZustand------------>off
2015.12.16 18:23:06 4: [zufall_arbeitszimmer_abends] command: set Licht_Arbeitszimmer off
2015.12.16 18:23:06 3: CUL_HM set Licht_Arbeitszimmer off


Also ich glaube dank deiner Hilfe und der neuen Version läuft bei mir jetzt alles so wie gewünscht.
Vielen Dank

Gruß

oelidoc

PS: muss tagsüber auch mal arbeiten - deswegen konnte ich nicht früher antworten...

Dietmar63

ja und jetzt wird es kompliziert, weil wir ein Lösung bauen müssen, die nicht nur manchal geht , sonder immer.
Vorschlag?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Hallo Dietmar63,

Zitat von: Dietmar63 am 16 Dezember 2015, 22:41:56
ja und jetzt wird es kompliziert, weil wir ein Lösung bauen müssen, die nicht nur manchal geht , sonder immer.
Vorschlag?

ich verstehe nicht so ganz, was du damit meinst. Bei mir funktioniert jetzt alles wie gewünscht. Meinst du, dass jetzt andere vielleicht Probleme mit dem Modul bekommen haben?
Ich habe leider überhaupt keine Ahnung von Programmierung oder gar Perl - ich fürchte, ich kann dir da keine große Hilfe sein....
Aber natürlich probiere ich gerne was für dich aus oder teste neue Versionen.

Gruß

oelidoc

Dietmar63

Ja genau das ist jetzt das Problem.
Bei dir funktioniert es.

Ich weiß noch nicht was ich ändern muss, damit RT mit möglichst vielen Varianten an Geräten zusammen arbeitet.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

oelidoc

Na ja, mein Problem war ja ganz offensichtlich, dass meine Geräte nicht nur "on" und "off" lieferten. Nachdem ich meine Geräte auf "on" und "off" als Schaltzustände umgebogen habe, kann der RT ja auch wieder korrekt schalten.
Vielleicht reicht ja auch ein Hinweis in der CommandRef, dass der RT nur korrekt auf diese beiden Zustände reagiert und daher die Geräte entsprechend angepasst werden müssen.

Gruß

oelidoc

Dietmar63

ja, habe ich mir auch schon so gedacht.

Wahrscheinlich werde ich wenn Value() etwas anderes als on/off liefert, eine FM ins Log schreiben.
Wenn dann die Probleme Überhand nehmen sollten, muss ich mir was einfallen lassen.

Eine Idee wäre, eine Funktion defineren zu können, die dann on/off liefern muss, ähnlich onCmd offCmd, und dann als Perlfunktion. 
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

jmike

Hi Dietmar.

Erstmal ein "Dankeschön" für den RandomTimer.
Konnte mir damit sehr einfach eine nette Anwesenheitssimulation mit etlichen Abhängigkeiten bauen.

Eine Sache habe ich allerdings vermisst. Nämlich das Auslösen von Aktionen wenn der RandomTimer startet bzw. endet.

Mit den internals geht das ja leider (aus meiner Sicht) nicht. Habe mir also Readings dafür eingebaut, (Zeile 165 off,175 off, 207 on):
fhem("setreading ".$hash->{NAME}." state on");

Mit "event-on-change-reading state" kann ich mich nun z.b. per pushover über das aktivieren/deaktivieren informieren lassen.

Eventuell ist das ja auch für andere Interessant und ein Gedanke für einen RFE (request for enhancement) wert ;)

Grüße
Mike

Dietmar63

wolltest du den Code anhängen?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

jmike

Hi Dietmar.

Wusste nicht dass es erwünscht ist  8)

Hier mal ein diff,
diff 98_RandomTimer.pm 98_RandomTimerChanged.pm
164a165
>        fhem("setreading ".$hash->{NAME}." state off");
173a175
>          fhem("setreading ".$hash->{NAME}." state off");
200a203
>          fhem("setreading ".$hash->{NAME}." state off");


und das File ist attached.

Änderungen basieren auf dem RandomTimer der mit FHEM 5.7 geliefert wird:

# head 98_RandomTimer.pm
$Id: 98_RandomTimer.pm 9334 2015-09-30 18:51:19Z dietmar63 $


So tut es was ich möchte aber eventuell gibt es aber weitere Readings zu füttern bzw. anders umzusetzen.
Ist ja auch kein "muss", sondern nur Feedback :)

Grüße
Mike

Dietmar63

ich versuche mal zu verstehen was es genau macht und nehme es dann ggf. auf.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Take-Off

Hallo Dietmar,

erstmal Danke für das tolle Modul. Genau nach soetwas habe ich gesucht um es mit meiner Alarmanlage zu koppeln.
Allerdings habe ich ebenfalls das Problem dass meine Aktoren nicht "on" und "off" zurückliefern. RT schaltet also zuverlässig ein, aber nicht wieder aus.

Hast du dafür mittlerweile eine Lösung gefunden bzw. kann ich etwas tun um das Modul bei mir anzupassen?
Da ich nur Aktoren mit "Ein" und "Aus" schalten möchte müsste das doch theoretisch änderbar sein oder?

Grüße  :)
FHEM auf Raspberry Pi4
CUL868, CUL433, HM-CFG-USB2, HMW-LGW

RitterSport

Hallo,

eine Verständnissfrage zu switchmode.
Aus der Beschreibung in der commandref würde ich lesen das 800/200 bedeuten würde, das 80% der on cmd gesendet wird und zu 20% der off cmd.
-> Die Lampe bleibt tendenziell länger an?

Mit dem beigefügten screenshot meiner Konfiguration sollte also fast immer der bei on cmd hinterlegt Befehl "set@on" gesendet werden?

Danke für Aufklärung :-)

Dietmar63

RT berücksichtigt beim Schalten immer den aktuellen Zustand.

Mit der Einstellung 640/999 wird im Zustand aus mit 64% Wahrscheinlichkeit eingeschaltet und mit 99,9% Wahrscheinlichkeit der Zustand an ausgeschaltet.

Mit verbose 5 kannst du das Verhalten loggen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

RitterSport

@Dietmar
Danke für die schnelle Rückantwort.
Nochmals gefragt:
"Mit der Einstellung 640/999 wird im Zustand aus mit 64% Wahrscheinlichkeit eingeschaltet der on cmd und mit 99,9% Wahrscheinlichkeit der Zustand an off cmd ausgeschaltet " ???
Mich wundert der Hinweis sigmaoff/sigmaon. Damit hätte ich es genaus andersherum verstanden.

Ich möchte etwas anschalten(64%),in diesem Fall Rollläden ein Stückrunter alle 2h, aber sie sollen definitiv danach wieder hoch, bevor sie wieder irgendwann runter gehen.

Danke für das Modul und die Arbeit