Hallo,
ich komme mit meiner Erweiterung der Rolladensteuerung nicht klar. Die Positionsansteuerung geht nicht und ich finde den Fehler nicht.
Der Rolladen im Arbeitszimmer wird mit einem DOIF gesteuert. Die Zeitsteuerung geht auch sehr gut.
# Rolladen soll variabel je nach Sonnenauf- untergang fahren, wobei montags, mittwochs und donnerstags früher UP,
# Dienstags, Freitags, Samstags und Sonntags später UP. Zusätzlich wenn Außentemperatur für 5 min. über 28°: Rolladen
# auf 30 % fahren
define di_AZ_Rollo DOIF ([17:00-22:00] and [du_Tageslicht] eq "dunkel") (set AZ_Rolladen down) \
DOELSEIF ([du_Tageslicht] eq "hell" and [Ga_UniSen_25:temperature] > 28) (set AZ_Rolladen 30) \
DOELSEIF ([du_Tageslicht] eq "hell" and [07:00-09:00|134] or [08:45-09:30|257]) (set AZ_Rolladen up)
attr di_AZ_Rollo room Arbeitszimmer
attr di_AZ_Rollo wait 0:300:0
## ---
Die Temperaturabhängige Steuerung geht, aber der Rolladen fährt immer ganz zu, egal welche %-Zahl eingestellt wird.
Das zeigt das List:
ZitatInternals:
CFGFN ./FHEM/Arbeitszimmer.cfg
CUL_0_MSGCNT 22
CUL_0_RAWMSG A0D17A41025724731AE2606013C00::-69:CUL_0
CUL_0_RSSI -69
CUL_0_TIME 2015-08-22 13:18:03
DEF 257247
IODev CUL_0
LASTInputDev CUL_0
MSGCNT 22
NAME AZ_Rolladen
NR 348
STATE 30
TYPE CUL_HM
lastMsg No:17 - t:10 s:257247 d:31AE26 06013C00
protLastRcv 2015-08-22 13:18:03
protSnd 22 last_at:2015-08-22 13:18:03
protState CMDs_done
rssi_CUL_0 avg:-69.27 min:-72 max:-67 lst:-67 cnt:11
rssi_at_CUL_0 avg:-71.45 min:-75 max:-68 lst:-69 cnt:22
Readings:
2015-08-22 13:17:41 CommandAccepted yes
2015-05-03 19:32:47 D-firmware 2.2
2015-05-03 19:32:47 D-serialNr KEQ1021297
2015-05-03 19:33:14 PairedTo 0x31AE26
2015-02-18 12:19:18 R-confBtnTime permanent
2015-05-03 19:33:15 R-driveDown 20 s
2015-02-18 12:19:19 R-driveTurn 0.5 s
2015-05-03 19:31:32 R-driveUp 21 s
2015-02-18 12:19:18 R-intKeyVisib invisib
2015-02-18 12:19:18 R-localResDis off
2015-02-18 12:19:18 R-pairCentral 0x31AE26
2015-02-18 12:19:19 R-sign off
2015-02-18 12:19:19 R-statusInfoMinDly 3 s
2015-02-18 12:19:19 R-statusInfoRandom 0 s
2015-02-18 12:19:19 R-transmitTryMax 6
2015-08-22 13:18:03 deviceMsg 30 (to CUL_0)
2015-08-22 13:18:03 level 30
2015-08-22 13:18:03 motor stop:30
2015-08-22 13:18:03 pct 30
2015-07-27 09:17:22 powerOn 2015-07-27 09:17:22
2015-08-22 13:18:03 recentStateType info
2015-08-22 13:18:03 state 30
2015-08-22 13:18:03 timedOn off
Helper:
HM_CMDNR 23
cSnd 1131AE262572470201A0,1131AE2625724702013C
dlvlCmd ++A01131AE2625724702013C
mId 006A
rxType 1
Dir:
cur stop
rct down
Io:
newChn +257247,00,00,00
nextSend 1440242283.79178
prefIO
rxt 0
vccu
p:
257247
00
00
00
Mrssi:
mNo 17
Io:
CUL_0 -67
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
prs 1
Rpt:
IO CUL_0
flg A
ts 1440242283.69817
ack:
HASH(0x322a3b0)
17800231AE2625724700
Rssi:
Cul_0:
avg -69.2727272727273
cnt 11
lst -67
max -67
min -72
At_cul_0:
avg -71.4545454545455
cnt 22
lst -69
max -68
min -75
Attributes:
IODev CUL_0
autoReadReg 5_readMissing
devStateIcon Auf:Offen:off Zu:Geschlossen:on
event-on-change-reading state
eventMap on:Auf off:Zu
expert 1_on
firmware 2.2
fp_UG1024 640,989,1,Rolladen,
group Jalousie
model HM-LC-Bl1PBU-FM
peerIDs 00000000,
room Arbeitszimmer
serialNr KEQ1021297
subType blindActuator
webCmd Auf:Zu
Sieht jemand, wo der Fehler liegt?
Grüße bmwfan
das ist aber nicht das list vom DOIF des Rollladen..! :-\
schau mal mein list vom DOIF des Rollladen Wohnzimmer bei Beschattung an... übrigens ich fahre auch auf % nämlich auf 50
Internals:
CFGFN ./FHEM/Wohnzimmer.cfg
DEF ([RolloWZmodus] eq "Beschattung" and ([[du_RolloZeit_hoch]|8] or [[du_RolloZeit_hoch_WoE]|7]) and [?RollladenWZ] ne "on")
(set RollladenWZ on)
DOELSEIF([RolloWZmodus] eq "Beschattung" and ([di_Temperatur] eq "warm" and [07:15-15:45] and [di_Helligkeit] eq "hell"))
(set RollladenWZ 50)
DOELSEIF ([RolloWZmodus] eq "Beschattung" and ([di_Temperatur] eq "kalt" and [15:45-{sunset_abs("CIVIL",-1240,"15:46","16:20")}] or [di_Helligkeit] eq "dunkel" or [[du_RolloZeitWZ_hoch_B]|78]))
(set RollladenWZ on)
DOELSEIF ([RolloWZmodus] eq "Beschattung" and [{sunset_abs("CIVIL",-100,"16:35","22:20")}])
(set RollladenWZ off)
NAME di_RollladenWZ_B
NR 392
NTFY_ORDER 50-di_RollladenWZ_B
STATE cmd_4
TYPE DOIF
Readings:
2015-08-22 19:43:13 Device di_Temperatur
2015-08-22 21:09:46 cmd_event timer_8
2015-08-22 21:09:46 cmd_nr 4
2015-08-22 19:43:13 e_di_Temperatur_STATE kalt
2015-08-22 21:09:46 state cmd_4
2015-08-22 19:34:18 timer_1_c1 23.08.2015 07:15:00|8
2015-08-22 19:34:18 timer_2_c1 23.08.2015 07:30:00|7
2015-08-22 19:34:18 timer_3_c2 23.08.2015 07:15:00
2015-08-22 19:34:18 timer_4_c2 23.08.2015 15:45:00
2015-08-22 19:34:18 timer_5_c3 23.08.2015 15:45:00
2015-08-22 19:34:18 timer_6_c3 23.08.2015 16:19:59
2015-08-22 19:34:18 timer_7_c3 23.08.2015 16:00:00|78
2015-08-22 21:09:46 timer_8_c4 23.08.2015 21:07:22
Condition:
0 InternalDoIf('RolloWZmodus','STATE','') eq "Beschattung" and (DOIF_time_once($hash,$hash->{timer}{0},$wday,"8") or DOIF_time_once($hash,$hash->{timer}{1},$wday,"7")) and InternalDoIf('RollladenWZ','STATE','') ne "on"
1 InternalDoIf('RolloWZmodus','STATE','') eq "Beschattung" and (InternalDoIf('di_Temperatur','STATE','') eq "warm" and DOIF_time($hash,$hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"") and InternalDoIf('di_Helligkeit','STATE','') eq "hell")
2 InternalDoIf('RolloWZmodus','STATE','') eq "Beschattung" and (InternalDoIf('di_Temperatur','STATE','') eq "kalt" and DOIF_time($hash,$hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"") or InternalDoIf('di_Helligkeit','STATE','') eq "dunkel" or DOIF_time_once($hash,$hash->{timer}{6},$wday,"78"))
3 InternalDoIf('RolloWZmodus','STATE','') eq "Beschattung" and DOIF_time_once($hash,$hash->{timer}{7},$wday,"")
Days:
0 8
1 7
6 78
Devices:
0 RolloWZmodus
1 RolloWZmodus di_Temperatur di_Helligkeit
2 RolloWZmodus di_Temperatur di_Helligkeit
3 RolloWZmodus
all RolloWZmodus di_Temperatur di_Helligkeit
Do:
0:
0 set RollladenWZ on
1:
0 set RollladenWZ 50
2:
0 set RollladenWZ on
3:
0 set RollladenWZ off
Helper:
globalinit 1
last_timer 8
sleeptimer -1
Internals:
0 RolloWZmodus:STATE
1 RolloWZmodus:STATE di_Temperatur:STATE di_Helligkeit:STATE
2 RolloWZmodus:STATE di_Temperatur:STATE di_Helligkeit:STATE
3 RolloWZmodus:STATE
all RolloWZmodus:STATE di_Temperatur:STATE di_Helligkeit:STATE
Itimer:
all du_RolloZeit_hoch du_RolloZeit_hoch_WoE du_RolloZeitWZ_hoch_B
Readings:
Realtime:
0 07:15:00
1 07:30:00
2 07:15:00
3 15:45:00
4 15:45:00
5 16:19:59
6 16:00:00
7 21:07:22
State:
Time:
0 [du_RolloZeit_hoch]
1 [du_RolloZeit_hoch_WoE]
2 07:15:00
3 15:45:00
4 15:45:00
5 {sunset_abs("CIVIL",-1240,"15:46","16:20")}
6 [du_RolloZeitWZ_hoch_B]
7 {sunset_abs("CIVIL",-100,"16:35","22:20")}
Timecond:
0 0
1 0
2 1
3 1
4 2
5 2
6 2
7 3
Timer:
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
Timerfunc:
Timers:
0 0 1
1 2 3
2 4 5 6
3 7
Trigger:
Attributes:
do always
group Rollläden
wait 900:900
Versuch es mal mit position 30.
Gesendet von iPhone mit Tapatalk
Zitat von: mike1969bln am 23 August 2015, 09:16:44
Versuch es mal mit position 30.
nein, dass ist denke ich nicht das Problem, wenn würde noch gehen
(set AZ_Rolladen pct 30)
hast du alles richtig geschrieben, heißen dein Rollläden auch "AZ_Rolladen" Groß/Kleinschreibung beachten...!
Gib doch mal den Befehl ein über die FHEM Commandozeile, dann sollte der Rollladen auch dahin fahren, wenn nicht nochmals pairen, vorher auf Werkseinstellungen zurück setzen...
Genau probiere doch manuell set Rolladen 30 wohin fährt er da?
Sind die Zeiten den genau ermittelt? 30 ist schon ziemlich zu, da ja für 0 noch die Schließung der Lücken im Behang mitzählt.
Mir fällt noch auf set Rolladen up oder set Rolladen down fährt um 10 % und nicht auf und zu. Wenn Du es nicht verbogen hast...
Was ich aber aus dem List nicht erkennen kann.
Gruß Otto
Zitat von: Otto123 am 23 August 2015, 11:51:54
Was ich aber aus dem List nicht erkennen kann.
Gruß Otto
das ist ja auch die cfg und nicht das list des DOIF..!! ;) und Recht haste... 30 ist bei mir auch schon fast zu.... ;)
Zitat von: moonsorrox am 23 August 2015, 11:57:50
das ist ja auch die cfg und nicht das list des DOIF..!! ;) und Recht haste... 30 ist bei mir auch schon fast zu.... ;)
Ist mir klar, aber ich sehe nicht, dass er up und down "verbogen" hat.
Und wenn das DOIF schon mal down (10%) gemacht hat, dann sind es nur noch 20%, da ist der Behang nur noch mit Lücke.
Gruß Otto
ich gebe hier mal einen Hinweis...!
ZitatMögliche Schaltoperationen
Der Aktor versteht folgende Aktionen:
set <name> on -> Schaltet den Aktor ein
set <name> off -> Schaltet den Aktor aus
set <name> toggle -> Ändert den logischen Zustand des Aktors, d.h. ein eingeschalteter Aktor wird ausgeschaltet. Im Falle der 10% geöffneten Jalousie wird diese geschlossen.
set <name> <Zweistellige Zahl> -> Schaltet den Aktor ein und öffnet die Jalousie um <Zweistellige Zahl>%. 100% entspricht dabei einem "on"
set <name> up/down <Prozentangabe[0 bis 100]> -> Öffnet oder schließt die Jalousie um den prozentualen Wert, berechnet aus definierter Laufzeit. Keine Angabe => 10%
oder hier (http://www.fhemwiki.de/wiki/HM-LC-BL1-FM_Funk-Jalousieaktor) mal insgesamt durchlesen... :D
Hallo an alle,
danke für die vielen Tips.
Ich habe nur das list des Rolladenaktors eingestellt, da ich auch den Code des DOIF eingestellt habe. Anbei das list. Habe jetzt auch zur Sicherheit up in on und down in off geändert.
Internals:
CFGFN ./FHEM/Arbeitszimmer.cfg
DEF ([17:00-22:00] and [du_Tageslicht] eq "dunkel") (set AZ_Rolladen off)
DOELSEIF ([du_Tageslicht] eq "hell" and [Ga_UniSen_25:temperature] > 32) (set AZ_Rolladen 30)
DOELSEIF ([du_Tageslicht] eq "hell" and [07:00-09:00|134] or [08:45-09:30|257]) (set AZ_Rolladen on)
NAME di_AZ_Rollo
NR 356
NTFY_ORDER 50-di_AZ_Rollo
STATE initialized
TYPE DOIF
Readings:
2015-08-23 12:45:49 e_Ga_UniSen_25_temperature 28.1
2015-08-23 12:38:45 state initialized
2015-08-23 12:38:45 timer_1_c1 23.08.2015 17:00:00
2015-08-23 12:38:45 timer_2_c1 23.08.2015 22:00:00
2015-08-23 12:38:45 timer_3_c3 24.08.2015 07:00:00|134
2015-08-23 12:38:45 timer_4_c3 24.08.2015 09:00:00|134
2015-08-23 12:38:46 timer_5_c3 24.08.2015 08:45:00|257
2015-08-23 12:38:46 timer_6_c3 24.08.2015 09:30:00|257
Condition:
0 DOIF_time($hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('du_Tageslicht','STATE','') eq "dunkel"
1 InternalDoIf('du_Tageslicht','STATE','') eq "hell" and ReadingValDoIf('Ga_UniSen_25','temperature','') > 32
2 InternalDoIf('du_Tageslicht','STATE','') eq "hell" and DOIF_time($hash->{realtime}{2},$hash->{realtime}{3},$wday,$hms,"134") or DOIF_time($hash->{realtime}{4},$hash->{realtime}{5},$wday,$hms,"257")
Days:
2 134
3 134
4 257
5 257
Devices:
0 du_Tageslicht
1 du_Tageslicht Ga_UniSen_25
2 du_Tageslicht
all du_Tageslicht Ga_UniSen_25
Do:
0 set AZ_Rolladen off
1 set AZ_Rolladen 30
2 set AZ_Rolladen on
Helper:
last_timer 6
sleeptimer -1
Internals:
0 du_Tageslicht:STATE
1 du_Tageslicht:STATE
2 du_Tageslicht:STATE
all du_Tageslicht:STATE
Itimer:
Readings:
1 Ga_UniSen_25:temperature
all Ga_UniSen_25:temperature
Realtime:
0 17:00:00
1 22:00:00
2 07:00:00
3 09:00:00
4 08:45:00
5 09:30:00
State:
Time:
0 17:00:00
1 22:00:00
2 07:00:00
3 09:00:00
4 08:45:00
5 09:30:00
Timecond:
0 0
1 0
2 2
3 2
4 2
5 2
Timer:
0 0
1 0
2 0
3 0
4 0
5 0
Timerfunc:
Timers:
0 0 1
2 2 3 4 5
Trigger:
Attributes:
room Arbeitszimmer
wait 0:300:0
Folgendes habe ich auf Grund der Tips ausprobiert:
set AZ_Rolladen up: Fährt komplett auf, nicht nur 10 %
set AZ_Rolladen down: Fährt komplett zu, nicht nur 10 %
set AZ_Rolladen on: Fährt komplett auf
set AZ_Rolladen XX, wobei XX 80, 50 oder 30 war. Jedesmal fährt der Rolladen, wenn er offen war, komplett zu. War er zu, fährt er komplett auf, d.h. die Vorgabe einer Stellung ignoriert er komplett.
@otto123: Wüßte nicht, wie es "verbogen" werden kann. Hatte den Aktor angeschlossen und gepairt. Das wars auch schon, da er dann sofort funktioniert hat.
@moonsorrox: Mit dem Wiki-Artikel habe ich die Fahrzeiten bestimmt und eingegeben. Da "up" auch den Rolladen ganz geöffnet hat, habe ich mir da keine weiteren Gedanken gemacht, warum er nicht nur 10 % fährt.
Sollte ich zur Sicherheit ein Firmwareupdate des Aktors machen? Ich bin da immer vorsichtig, da ich mir bei einem PC mit einem Firmwareupdate mal was zerschossen hatte. Gibt es noch andere Ansätze? Es muss ja gehen, wie man am Beispiel von moonsorrox sieht.
Zitat von: bmwfan am 23 August 2015, 12:48:48
@otto123: Wüßte nicht, wie es "verbogen" werden kann. Hatte den Aktor angeschlossen und gepairt. Das wars auch schon, da er dann sofort funktioniert hat.
Du kannst Befehle mit EventMap ersetzen/verändern. Hast Du ja auch getan. (Auf/Zu) aber ich sehe nicht, dass Du up / down ersetzt hast.
Es muss irgendetwas verbogen sein, das Verhalten ist nicht normal. "Irgendwer" fährt Deinen Rolladen auf ganz zu, egal wieviel zu. Hast Was sagt Deine Log, die Schaltbefehle der Rolladen werden per Standard geloggt.
Firmware ist ok, habe ich auch
Gruß Otto
Schande über mein Haupt. :-[
Ursache gefunden. Da ich früher einfache Rolladentaster eingebaut hatte, habe ich dahinter eine Siemens Logo, die mir die zeitabhängige Steuerung, eine (zusätzliche, ich steh auf Sicherheit) Verriegelung der Taster und eine Relaisentkoppelung gemacht hat. In der Siemens Logo war noch die Logik, aus einem Tasterimpuls einen Zustand zu machen und ein Zeitglied zum Ablauf der Fahrzeit mit gegenseitiger Verriegelung zu starten, implementiert. Somit konnte, egal welcher Impuls vom Aktor kam, nie eine andere Reaktion als öffnen oder schliessen erfolgen.
Wenn ich das ausschalte muss ich aber wissen, wie denn der Aktor das Potential auf der Leitung setzt.
Beispiele:
Rolladen offen: set AZ_Rolladen 50 wird der Schließerkontakt für die Hälfte der drive-down-Zeit gesetzt?
Rolladen geschlossen: set AZ_Rolladen 50 wird der Schließerkontakt für die Hälfte der drive-up-Zeit gesetzt?
Wie ist es wenn man den Aktor direkt betätigt? Ein Tasterdruck setzt z.B. Schließerkontakt, aber wie lange? Die eingestellte drive-up oder drive-down Zeit? Dann könnte ich auf die Logo komplett verzichten und nur eine Relaisentkopplung zum Motor machen.
Ich hoffe meine Fragen sind verständlich.
Gruß bmwfan
Zitat von: bmwfan am 23 August 2015, 13:06:44
Schande über mein Haupt. :-[
Ursache gefunden. Da ich früher einfache Rolladentaster eingebaut hatte, habe ich dahinter eine Siemens Logo, die mir die zeitabhängige Steuerung, eine (zusätzliche, ich steh auf Sicherheit) Verriegelung der Taster und eine Relaisentkoppelung gemacht hat. In der Siemens Logo war noch die Logik, aus einem Tasterimpuls einen Zustand zu machen und ein Zeitglied zum Ablauf der Fahrzeit mit gegenseitiger Verriegelung zu starten, implementiert. Somit konnte, egal welcher Impuls vom Aktor kam, nie eine andere Reaktion als öffnen oder schliessen erfolgen.
Da lag ich doch ziemlich richtig 8)
Zitat
Wenn ich das ausschalte muss ich aber wissen, wie denn der Aktor das Potential auf der Leitung setzt.
Beispiele:
Rolladen offen: set AZ_Rolladen 50 wird der Schließerkontakt für die Hälfte der drive-down-Zeit gesetzt?
Rolladen geschlossen: set AZ_Rolladen 50 wird der Schließerkontakt für die Hälfte der drive-up-Zeit gesetzt?
Genauso, alles andere macht keinen Sinn.
Zitat
Wie ist es wenn man den Aktor direkt betätigt? Ein Tasterdruck setzt z.B. Schließerkontakt, aber wie lange? Die eingestellte drive-up oder drive-down Zeit?
Der Taster am Aktor macht bei "short press" on und off - siehe Wiki!
ZitatDann könnte ich auf die Logo komplett verzichten und nur eine Relaisentkopplung zum Motor machen.
So ist es. Welche Relaisentkopplung willst Du noch machen? Es ist ein Rolladenaktor, der macht genau wozu er bestimmt ist. Das bedeutet er hat die typische Relaisentkopplung für Rolladen. Sonst hättest Du ja einfache Aktoren nehmen können.
Gruß Otto
Gruß Otto
@Otto123:
Jetzt bin ich dazu gekommen, die Logo umzuprogrammieren. Es geht alles wie beschrieben und gewünscht!
Eine Relaisentkoppelung mache ich trotzdem, da ich über die Leitungen von den Aktoren zum Schaltschrank keine größeren Lasten ziehen will. Die Ansteuerung von Relais geht noch, nicht aber der Strom von den Rolladenmotoren.