on_as_long_as_daylight (tageslicht/bewölkungsabhängige Steuerung der Rolladen)

Begonnen von habichthugo, 13 Mai 2014, 15:11:19

Vorheriges Thema - Nächstes Thema

habichthugo

Das Ganze (http://forum.fhem.de/index.php?topic=23383) noch mal ordentlich...

Ich habe eine Funktion bzw. Modul geschrieben, mit dem sich die tageslicht/bewölkungsabhängige Steuerung pro Rolladen i.A. in einer Zeile abwickeln lässt (abhängig von twilight bzw. twilight_weather), z.B.:
define MyBlindActuator:auto at +*00:01:00 { on_as_long_as_daylight('MyBlindActuator', 'MyTwilight', 100, 50, $we ? '09:00' : '07:00', '09:00', -2*60, '16:00', '23:59:59', 15*60);; }
Das bewirkt, in Kurzform, dass MyBlindActuator unter der Woche zwischen 7:00 und 9:00 Uhr tageslichtabhängig (twilight_weather >= 50) hochfährt (spätestens 9:00 Uhr; zusätzlich um 0..2 Min. zufällig variiert), am Wochenende immer um 9:00 Uhr (+0..2 Min.). Ab 16:00 Uhr fährt er dann tageslichtabhängig wieder runter (+15 Min. nach eigentlich berechnetem Zeitpunkt; dazu später).

Aufrufparameter im Detail:
on_as_long_as_daylight(
    dev_blind_actuator, # instance of an on/off device, like 'define <dev_blind_actuator> CUL_HM ...' (subType blindActuator)
    dev_twilight,       # instance of 'define <dev_twilight> Twilight ...'
    weather_influence,  # 0..100 [%]
    on_level,           # 0..100 [%]
    earliest_on,        # HH:MM[:SS]
    latest_on,          # HH:MM[:SS]
    delay_on,           # [s] < 0 => random =>(0..-<delay_on>)
    earliest_off,       # HH:MM[:SS]
    latest_off,         # HH:MM[:SS]
    delay_off,          # [s] < 0 => random => (0..-<delay_off>)
)
Die Funktion muss zyklisch aufgerufen werden (at +*00:01:00 => also jede Minute). MyBlindActuator ist z.B. ein HM-Rollladenaktor, MyTwilight eine Instanz von Twilight. Mit weather_influence (0..100%) kann man angeben wieviel Wetter/Bewölkungseinfluss man haben will (100% => nur twilight_weather; 0% => nur twilight), hier also 100%. on_level (0..100%) gibt dann den Schwellwert (gen twilight_weather bzw. twilight) vor, ab dem der Rolladen offen (on) sein sollen, hier 50%. Zwischen 00:00 Uhr und earliest_on (HH:MM[:SS]) soll der Rollladen immer geschlossen sein, hier 09:00 (Wochenende) bzw. 07:00 Uhr (unter der Woche). Bis latest_on (HH:MM[:SS], hier 9:00 Uhr) wird nun aktiv geprüft, ob der on_level erreicht/überschritten ist und ggf. der Rolladen hochgefahren (set <dev_blind_actuator> on). Sollte on_level danach wieder unterschritten werden wird er aber >nicht< wieder geschlossen. Spätestens ab latest_on wird er auf jeden Fall hochgefahren und bleibt bis earliest_off (HH:MM[:SS], hier 16:00 Uhr) offen.
Das Öffnen kann mit delay_on (+-0..24*60*60s, hier 2*60 = 120s) verzögert werden, mit positiven Werten absolut, mit negativen Werten um eine zufällige Zeit (0..-delay_on).
Ab earliest_off wird der on_level dann auf Unterschreitung geprüft und ggf. der Rollladen zugefahren (off). Sollte on_level danach wieder überschritten werden wird er aber >nicht< wieder geöffnet. Spätestens ab latest_off (HH:MM[:SS], hier 23:59:59 Uhr) wird er auf jeden Fall geschossen. delay_off siehe delay_on für's schließen.

I.A. (fhem wird nicht gestoppt) gibt es also nur ein Mal am Tag ein on und ein off, das war mir wichtig, ebenso die 'Kernzeiten', wo der Rolladen offen oder zu ist. Dazu ist der Wettereinfluss regelbar und man kann die Lichtschwelle fein justieren (u.a. z.B. bei Nordfenstern höher als im Süden). Die Delays brauche ich um Szenarien wie 'Licht 15 Min. vor schließen des Rolladen an' oder 'Rolladen zeitversetzt fahren' zu machen (letztlich 'belebtes Haus').

Es wird ein Reading 'state-on_as_long_as_daylight' ('on' oder 'off'; nur je ein Mal am Tag) in dev_blind_actuator geschrieben, und zwar ggf. schon in dem Moment, wenn das Delay abgesetzt wird (define <dev_blind_actuator>:on_as_long_as_daylight.delay at +<delay> ...). Auf 'state-on_as_long_as_daylight' kann man also mit einem notify triggern, z.B.:
define MySwitch:auto notify MyBlindActuator:state-on_as_long_as_daylight:.off set MySwitch on-till 23:00:00
Passend zu obigem Beispiel würde das also MySwitch (z.B. Licht) 15. Min. vor dem Schließen des  MyBlindActuator anschalten (und um 23:00 Uhr wieder aus).

Wer's probieren will: Anhang (99_on_as_long_as_daylight.pm) nach /opt/fhem/FHEM kopieren und laden (fhem neu starten)...

p.s.: Kürzere Stopps von FHEM sollten keine Probleme machen. Längere Abstinenz kann (noch) dazu führen, dass das jeweils nächste Schalten aus bleibt bzw. 'irgend wann' erfolgt. Also z.B. 'fhem stop' in einer on-Phase und dann 'fhem start' in einer off-Phase setzt dann z.B. morgens um 3:00 Uhr ein off ab (fährt den Rolladen zu >und< schaltet das Licht bis 23:00 Uhr ein!).

Nachtrag (10.04.2016):
Die aktuell angehängte Version sollte jetzt auch mit aktuellem FHEM wieder funktionieren. FHEM akzeptiert nun keine Namen mehr, die einen Doppelpunkt (:) enthalten, womit 'define <dev_blind_actuator>:on_as_long_as_daylight.delay ...' nur noch einen Fehler (im Log) ergab. Ansonsten habe ich noch ein paar Parameter zur Steuerung für einen Sonnenschutz ergänzt.
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

Jens_B

Danke noch mal für die ausführliche Anleitung.
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

geri

hi habichthugo!

habe deine funktion probiert aber ich bekomme folgenden logeintrag:
2014.11.05 12:30:08.480 1: PERL WARNING: print() on unopened filehandle DATEI at ./FHEM/99_on_as_long_as_daylight.pm line 65.
ich habe die in meine config folgenden code eingefügt:
define MyBlindActuator:auto at +*00:01:00 { on_as_long_as_daylight('eg_rollladen_badfenster', 'myTwilight', 100, 50, $we ? '09:00' : '07:00', '09:00', -2*60, '16:00', '23:59:59', 5*60);;;; }
und natürlich die "99_on_as_long_as_daylight.pm" hochgeladen.

kannst du dir den logeintrag erklären?

wie kann ich mehrere rollladen ansteuern?

besten dank im vorraus für deine hilfe.

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

Puschel74

Hallo,

und auch ein reload 99_on_as_long_as_daylight oder ein shutdown restart(Holzhammermethode) gemacht?
VOR dem shutdown aber unbedingt save config anklicken  ;)

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.

geri

Zitat von: Puschel74 am 05 November 2014, 12:45:12
Hallo,

und auch ein reload 99_on_as_long_as_daylight oder ein shutdown restart(Holzhammermethode) gemacht?
VOR dem shutdown aber unbedingt save config anklicken  ;)

grüße
hi!

einen restart hatte ich bereits mehrfach gemacht, aber ein reload nicht. habs mal gemacht und dann folgende einträge iom log erhalten:
2014.11.05 13:13:50.781 1: PERL WARNING: print() on unopened filehandle DATEI at ./FHEM/99_on_as_long_as_daylight.pm line 65.
2014.11.05 13:13:32.805 1: PERL WARNING: Subroutine on_as_long_as_daylight redefined at ./FHEM/99_on_as_long_as_daylight.pm line 16.
2014.11.05 13:13:32.796 1: PERL WARNING: Subroutine ch_auto_state redefined at ./FHEM/99_on_as_long_as_daylight.pm line 52.
2014.11.05 13:13:32.790 1: PERL WARNING: Subroutine at_delay redefined at ./FHEM/99_on_as_long_as_daylight.pm line 37.
2014.11.05 13:13:32.786 1: PERL WARNING: Subroutine _twilight redefined at ./FHEM/99_on_as_long_as_daylight.pm line 31.
2014.11.05 13:13:32.779 1: PERL WARNING: Subroutine on_as_long_as_daylight_Initialize redefined at ./FHEM/99_on_as_long_as_daylight.pm line 11.


gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

habichthugo

Zitat von: geri am 05 November 2014, 13:16:41
einen restart hatte ich bereits mehrfach gemacht, aber ein reload nicht. habs mal gemacht und dann folgende einträge iom log erhalten:
2014.11.05 13:13:50.781 1: PERL WARNING: print() on unopened filehandle DATEI at ./FHEM/99_on_as_long_as_daylight.pm line 65.
2014.11.05 13:13:32.805 1: PERL WARNING: Subroutine on_as_long_as_daylight redefined at ./FHEM/99_on_as_long_as_daylight.pm line 16.
2014.11.05 13:13:32.796 1: PERL WARNING: Subroutine ch_auto_state redefined at ./FHEM/99_on_as_long_as_daylight.pm line 52.
2014.11.05 13:13:32.790 1: PERL WARNING: Subroutine at_delay redefined at ./FHEM/99_on_as_long_as_daylight.pm line 37.
2014.11.05 13:13:32.786 1: PERL WARNING: Subroutine _twilight redefined at ./FHEM/99_on_as_long_as_daylight.pm line 31.
2014.11.05 13:13:32.779 1: PERL WARNING: Subroutine on_as_long_as_daylight_Initialize redefined at ./FHEM/99_on_as_long_as_daylight.pm line 11.

Zeile 65 (print DATEI "my $now = $hour + $min/60 + $sec/3600\n"; ) einfach rausschmeissen (Reste von Testcode). Was die 'redefined' sollen, weiss ich nicht.
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

habichthugo

Zitat von: geri am 05 November 2014, 12:35:50
wie kann ich mehrere rollladen ansteuern?
Na einfach pro Rolladen einen Eiltrag a la 'define MyBlindActuator:auto at +*00:01:00 { on_as_long_as_daylight(...'.
Natürlich mit jeweils anderem Namen, statt 'MyBlindActuator:auto'. Bei dir z.B. 'eg_rollladen_badfenster:auto', oder 'eg_rollladen_badfenster_auto', oder 'eg_rollladen_badfenster_fahrad'...;)
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

betateilchen

Das "redefined" tritt immer dann auf, wenn eine bereits geladene Moduldatei neu geladen wird und ist völlig normal.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

geri

Zitat von: habichthugo am 05 November 2014, 14:08:25
Zeile 65 (print DATEI "my $now = $hour + $min/60 + $sec/3600\n"; ) einfach rausschmeissen (Reste von Testcode). Was die 'redefined' sollen, weiss ich nicht.
danke, so klappt es ohne logeinträge.

Zitat von: betateilchen am 05 November 2014, 14:32:10
Das "redefined" tritt immer dann auf, wenn eine bereits geladene Moduldatei neu geladen wird und ist völlig normal.
danke für den hinweis.

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

geri

Zitat von: habichthugo am 05 November 2014, 14:14:44
Na einfach pro Rolladen einen Eiltrag a la 'define MyBlindActuator:auto at +*00:01:00 { on_as_long_as_daylight(...'.
Natürlich mit jeweils anderem Namen, statt 'MyBlindActuator:auto'. Bei dir z.B. 'eg_rollladen_badfenster:auto', oder 'eg_rollladen_badfenster_auto', oder 'eg_rollladen_badfenster_fahrad'...;)
dachte es gibt einen weg alle rollladen in einen eintrag um code zu sparen.  ;)

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

habichthugo

Zitat von: geri am 05 November 2014, 16:08:22
dachte es gibt einen weg alle rollladen in einen eintrag um code zu sparen.  ;)
Nö, wobei mir diese Form das zu machen auch nicht wirklich gefällt. Als eigenes Modul ware besser, aber noch habe ich andere Baustellen...
Aber eine Zeile pro Rolladen ware bei mir so oder so fällig, da ich jeden Rolladen anders steuere.
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

geri

Zitat von: habichthugo am 05 November 2014, 16:42:32
Nö, wobei mir diese Form das zu machen auch nicht wirklich gefällt. Als eigenes Modul ware besser, aber noch habe ich andere Baustellen...
Aber eine Zeile pro Rolladen ware bei mir so oder so fällig, da ich jeden Rolladen anders steuere.
hi!
habe es jetzt mit "structure" versucht. es läuft super.

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

habichthugo

CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

geri

Zitat von: habichthugo am 06 November 2014, 17:34:26
?
eine "structure" aller rollladen = 1 zeile in der config
und diese in deine code = 1 zeile in der config

ist weniger code als jeden einzeln ein zeile zu spendieren. und ich kann die "structure" auch für andere aktionen nutzen. ;-)

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

habichthugo

Zitat von: geri am 06 November 2014, 18:39:51
eine "structure" aller rollladen = 1 zeile in der config
und diese in deine code = 1 zeile in der config
Ok, structure ist ein Erweiterungsmodul, aber im Wiki für mich nicht verständlich beschrieben. Kannst du mal anschaulich zeigen, was das soll?
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

geri

#15
Zitat von: habichthugo am 07 November 2014, 08:26:42
Ok, structure ist ein Erweiterungsmodul, aber im Wiki für mich nicht verständlich beschrieben. Kannst du mal anschaulich zeigen, was das soll?
hi!

habe alle rollladen die ich gemeinsam steuern will in eine "structure" gepackt.
sieht bei mir so aus:### Rollladen Structure Alle ###
define RollladenAlle structure room eg_rollladen_badfenster,eg_rollladen_esszimmerfenster,eg_rollladen_kuechenfenster,eg_rollladen_terrassentuer
attr RollladenAlle devStateIcon on:up off:down
attr RollladenAlle eventMap on:up off:down
attr RollladenAlle room Rollladen


dann habe ich deine rollladensteuerung mit "twilight" eingearbeitet.
### Rollladen Twilight Steuerung ###
define RollladenAlle:auto at +*00:01:00 { on_as_long_as_daylight('RollladenAlle', 'myTwilight', 100, 50, $we ? '09:00' : '07:00', '09:00', -2*60, '16:00', '23:59:59', 5*60);;;; }
attr RollladenAlle:auto room Rollladen


zusätzlich habe ich noch zwei tasten auf einem HM-PB-6-WM55 mit der "structure" verknüpft.
### Alle Rollladen auf und ab auf HM_PB_6_WM55_Btn_01 und Btn_02###
define PB_6_WM55_Btn_01_auf notify HM_PB_6_WM55_Btn_01 set RollladenAlle up
attr PB_6_WM55_Btn_01_auf room Rollladen
define PB_6_WM55_Btn_02_ab notify HM_PB_6_WM55_Btn_02 set RollladenAlle down
attr PB_6_WM55_Btn_02_ab room Rollladen


das ganze sieht derzeit auf der weboberfläche wie im anhang aus. jetzt kann ich auf der weboberfläche alle rollladen auf und zu machen und mit einer verbedienung und automatisch nach twilight läuft es auch.

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

habichthugo

Zitat von: geri am 07 November 2014, 10:07:23
habe alle rollladen die ich gemeinsam steuern will in eine "structure" gepackt.
sieht bei mir so aus:
Danke für die Erklärung.
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

jove01

Hallo  habichthugo

Dein Modul hat mich von der Beschreibung begeistert. Es scheint bezüglich der Steuerung von Rolladen etc. eine bessere Alternative zu sunset und twilight zu sein.

Was mich nur irritiert ist, dass dieses Modul leider so wenig Anhänger gefunden hat und scheinbar nicht "offiziell" über contrib gewartet wird. (keine Software ist fehlerfrei; oder ?)

Ist das hier eingebundene Modul auf dem aktuellen Stand ? Ich würde es gerne nutzen.

Gibt es neuere Erfahrungen/Hinweise, die ich beachten sollte ?

Danke
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

jove01

Hallo

inzwische habe ich für eine Rollade mein at für runter bzw. rauf durch dein Modul ersetzt.

Gibt es irgendeine Möglichkeit zu sehen, wann die zu erwartenden Aktionen durchgeführt werden ? Ohne dieser Info läßt sich die Steuerung kaum justieren.

Ist das Triggern jede Minute sinnvoll (Systemlast) und erforderlich ?

Gruß
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

habichthugo

Das ist kein richtiges Modul, sondern nur eine Funktion. Mittlerweile habe ich zwar schon ein richtiges Modul geschrieben (für die Ansteuerung meiner IO-Karte zur Heizungssteuerung auf Arduino-Basis), aber das hier entsprechend umzuschreiben, dazu bin ich noch nicht gekommen. Funktioniert ja  ;D

Wann die Aktionen eintreten könnte 'man' bestenfalls grob schätzen, denn die Tageslichtwerte verändern sich ja fliessend (und ggf. wetterabhängig). Du kannst dir die Parameter ($dev_twilight bzw. twilight_weather / twilight) aber ansehen und auch grafisch (über der Zeit) aufbereiten. Am Ende ist es aber schlicht Gefühlssache, wo man die Grenze zwischen hell und dunkel zieht. Einfach mal morgens oder abends 'ne Zeit lang aus dem/den Fenster(n) sehen bzw. Lichteinfall angucken und parallel dazu die twilight-Werte verfolgen, dann bekommst du ein Gefühl dafür...

Du kannst den Trigger auf eine beliebige Zeit setzen (und bei mehreren auch gegeneinander versetzen, damit ggf. nicht alle gleichzeitig ausgelöst warden). Eine Minute war/ist für mich halt ein guter Kompromiss und fuktioniert bei mir problemlos. Viel kürzer bringt nichts und könnte tatsächlich zu Lastproblemen führen. Sehr viele länger wird dann halt 'ungenau'.

Aber wenn dann sind eher die twilight-Werte nicht so das Pralle. Ist halt alles nur gerechnet und passt nie so ganz auf die lokalen Verhältnisse. Aber auch die Anbringung eines lokalen Helligkeitssensors ist eben nicht ganz trivial...
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

jove01

Hallo habichthugo

Danke dir für die Info. Im Moment komme ich nicht dazu, werde aber zum gegebenen Zeitpunkt posten, wie ich weitergemacht habe.

Vg
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

jove01

hallo habichthugo

nachdem ich das Modul so einigermaßen verstanden habe, eine Anmerkung:
Bei mir scheinen on und off entgegengesetzt zu dir zu wirken. Muss ich wohl im Modul ändern.

Verstanden habe ich aber nicht
Zitaton_level (0..100%) gibt dann den Schwellwert (gen twilight_weather bzw. twilight) vor, ab dem der Rolladen offen (on) sein sollen
. Könntest du den bitte nochmals erklären.

Danke
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

habichthugo

Zitat von: jove01 am 07 April 2015, 22:24:09
hallo habichthugo

nachdem ich das Modul so einigermaßen verstanden habe, eine Anmerkung:
Bei mir scheinen on und off entgegengesetzt zu dir zu wirken. Muss ich wohl im Modul ändern.

Verstanden habe ich aber nicht . Könntest du den bitte nochmals erklären.

Danke
Ja, das ist so eine Sache mit on und off bei Rolladen. Bei mir ist on gleich offen bzw. oben und off zu bzw. unten. Entsprechend gehen die Dinger hoch, wenn ich den Taster oben (Config-Taste oben, links) betätige (soweit bei mir überhaupt 'normal' verbaut) und umgekehrt. Das ist m.E. schon in der Anschlussanleitung falsch beschrieben.
twilight_weather bzw. twilight sind Werte zwischen 0 und 100%. Die kannst du zunächst mal mixen (weather_influence), erhälst aber auch wieder einen Wert zwischen 0 und 100% (Bei weather_influence = 100 wirkt z.B. nur noch twilight_weather). 0 heist dabei ganz dunkel, 100% halt ganz hell. Mit dem on_level bestimmst du jetzt nur noch, ab welchem Wert die Rolladen on (offen) sein sollen, also z.B. ab 50% Helligkeit.
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

jove01

Hallo
ich bin dabei meine Steuerung auf Deine Logik umzustellen. Also nochmals vielen Dank! :)

Dennoch habe ich 2 Verständnisfragen
Zitat
Es wird ein Reading 'state-on_as_long_as_daylight' ('on' oder 'off'; nur je ein Mal am Tag) in dev_blind_actuator geschrieben, und zwar ggf. schon in dem Moment, wenn das Delay abgesetzt wird (define <dev_blind_actuator>:on_as_long_as_daylight.delay at +<delay> ...). Auf 'state-on_as_long_as_daylight' kann man also mit einem notify triggern, z.B.:
Code: [Auswählen]

define MySwitch:auto notify MyBlindActuator:state-on_as_long_as_daylight:.off set MySwitch on-till 23:00:00

Passend zu obigem Beispiel würde das also MySwitch (z.B. Licht) 15. Min. vor dem Schließen des  MyBlindActuator anschalten (und um 23:00 Uhr wieder aus).

Sind die 15 Minuten ein Schreibfehler, denn
Zitat'16:00', '23:59:59', 5*60);; }
sind doch 5 Minuten. Oder habe ich etwas falsch verstanden.

Die Steuerung des Lichts erfolgt immer in Anhängigkeit des Schreibens des Readings. Wenn man einen größeren Abstand Licht - Rollo bei gleicher Dunkelheit möchte, dann muss man an allen Parametern spielen ?

Die 2. Frage;
Zitatmit delay_on (+-0..24*60*60s, hier 2*60 = 120s)
2 Stunden (wenn es Sinn machen würde) könnte man dann mit 2*1*60 oder ?

Eine Abhängigkeit für morgens macht wohl keinen Sinn !?

Danke
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

jove01

sorry,
ich dachte, ich hätte die peinliche Frage/Post rechtzeitig gelöscht :-[

Läuft alles Prima. Nochmals Danke für das klasse Coding (Modul ist ja leider nicht)

Vielleicht noch eine kurze Beschreibung meiner überarbeiten Konfiguration.

1. Über einen Wandtaster kann ich die Automatik ein- und Ausschalten. (Eine bessere Idee habe ich noch nicht, da meine Frau zum Rauchen auf die Terasse geht. Ein Türkontakt macht keinen Sinn, da im Winter dann die Türe natürlich zugemacht wird.)

2. Ein Notify setzt dann ein Dummy aktiv oder inaktiv.

3. Über in Dummy  kann ich also auch über das Web-Frontend steuern und kontrollieren.

4. Ein DOIF prüft diesen Dummy und setzt dein at aktiv oder inaktiv

([du_RolloAutomatik_Terrasse] eq "aktiv") (set at_Rollo_Terrasse_hoch_runter active) DOELSE (set at_Rollo_Terrasse_hoch_runter inactive)


4. Dein at steuert dann letztlich den Rollo

5. (Wenn wir zu Bett gehen, wird über den Taster die Automatik aktiviert und das Rollo (hier Terasse) geht runter.)

Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

habichthugo

Zitat von: jove01 am 16 April 2015, 17:14:59
sorry,
ich dachte, ich hätte die peinliche Frage/Post rechtzeitig gelöscht :-[
Und ich dachte, der ist wegen der Wartungsarbeiten am Portal verschütt gegangen. Sorry, habe es gelöscht.
Zitat von: jove01 am 16 April 2015, 17:14:59
(Eine bessere Idee habe ich noch nicht, da meine Frau zum Rauchen auf die Terasse geht. Ein Türkontakt macht keinen Sinn, da im Winter dann die Türe natürlich zugemacht wird.)
Ich habe bei mir Terrassen und Balkontür gar nicht automatisiert. Das sollte man sich gut überlegen. Auf dem Balkon steht man sonst sehr dumm da...
p.s.: Von Homematic gibt es auch Fenstergriffsensoren (HM-Sec-RHS). Vielleicht löst das dein Problem. Ich würde dann aber zusätzlich noch bei niedrigem Batteriestand des Sensors die Automatik außer Kraft setzen.
p.p.s.: Auch das Thema Fluchtweg immer mit bedenken!
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)

jove01

Hallo

nach langer Zeit eines gut laufenden Moduls funktioniert dieses Modul nicht mehr !

Ich hatte vor einigen Tagen ein FHEM-Update durchgeführt, seitdem werden die Rollos nicht mehr bewegt. Die Readings werden allerdings korrekt gesetzt. Also scheint im FHEM-Kernel etwas geändert worden zu sein, dass die Befehle so wie bisher nicht mehr funktionieren.

Nach meiner Meinung kommen die beiden Stellen in Frage:

        my $strdelay = h2hms_fmt($delay/3600);
{Log 1, ('define: '.$strdelay)}
        return "define $dev_blind_actuator:on_as_long_as_daylight.delay at +$strdelay"



            fhem("setreading $dev_blind_actuator ${\reading_auto_state} $auto_state");
            my $at_delay = at_delay(($auto_state eq 'on') ? $delay_on : $delay_off);
            fhem("$at_delay set $dev_blind_actuator $auto_state");
{Log 1, ('at: '.$at_delay .$dev_blind_actuator .$auto_state)}


Die Log bringt als Ergebnis

2016.02.02 11:33:46 1: define: 00:01:00

2016.02.02 11:33:46 1: at: define HM_Rollo_Flur_unten:on_as_long_as_daylight.delay at +00:01:00HM_Rollo_Flur_untenon


Ich hoffe, ein Kundiger kann mir hier weiterhelfen.

Danke
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

habichthugo

Zitat von: jove01 am 02 Februar 2016, 11:51:31
Hallo

nach langer Zeit eines gut laufenden Moduls funktioniert dieses Modul nicht mehr !
...
Jetzt sollte es wieder gehen (neue Version siehe erster Beitrag).
CUL (CC1101-USB-Lite module-V3) + 5*fht80b + 6*Mumbi-Funksteckdosen (=Elro AB440); HM-LAN + 11*HM-LC-Bl1PBU-FM Rollladenaktor + 1*HM-LC-Sw1PBU-FM Funklichtschalter + 2*HM-RC-12-W; Raspbian (Raspberry Pi Model B Rev 1 ECN0001 256MB)