Hallo,
ich habe eine Jalousiensteuerung mit DOIF und den wired-Aktoren HMW_LC_Bl1_DR realisiert. Funktioniert inzwischen auch sehr gut, lediglich mit der Winkeleinstellung der Lamellen bei händischer Einstellung der Jalousie gibt es ein Problem.
Wenn die Automatik auf einen festgelegten Beschattunglevel fährt, werden anschließend die Lamellen auf 45° gestellt. Das geht daher, da ich den Level im DOIF abfrage. Beispiel Zweig 2:
([?du_Rollo_Master] ne "aus" and [du_Tageslicht] eq "dunkel" and [21:45-22:00] and [?Jal_KU_Ost_03:level] != 0) (set Jal_KU_Ost_03 level 0) ##1 Jalousie schliessen wenn Dunkel UND 21:45 UND noch nicht zu
DOELSEIF ([?du_Rollo_Master] ne "aus" and (([Jal_KU_Ost_03:level] == 3 and [du_Beschattung_Haus_morgens] eq "ja") or ([du_Tageslicht] eq "dunkel" and [?20:00-22:00] and [Jal_KU_Ost_03:level] == 0)))
(set Jal_KU_Ost winkel 50) ##2 Lamellen stellen wenn Jalousie ganz zu
DOELSEIF ([?du_Rollo_Master] eq "an" and [du_Beschattung_Haus_morgens] eq "nein" and [Jal_KU_Ost_03:level] < 2 and ([du_Tageslicht] eq "hell" and (([07:04-09:00|1234] and !$we) or [09:04-11:30|57])))
(set Jal_KU_Ost_03 level 100) ##3 Jalousie oeffnen, wenn Beschattung nicht notwendig und Jalousie zu war
DOELSEIF ([?du_Rollo_Master] eq "an" and [du_Beschattung_Haus_morgens] eq "ja" and [Jal_KU_Ost_03:level] > 5 and ([du_Tageslicht] eq "hell" and (([07:00-14:00|1234] and !$we) or [09:04-14:00|57])))
(set Jal_KU_Ost_03 level 3) ##4 Beschattung notwendig
DOELSEIF ([23:59])
Fahre ich händisch auf einen bestimmten Level, muss ich an den Tastern "herumdrücken", bis zufällig der richtige Winkel eingestellt ist.
Soweit ich weis kann der Aktor auch short_press und long_press auswerten. Allerdings komme ich nicht weiter wegen einiger Fragen
1: Wie sind die Zeiten für ein short_press und ein long_press?
2: Kann man diese einstellen?
3: Wie frage ich das im DOIF ab? Ich vermute mit: Jal_KU_Ost_01:"short", da ich vom geschlossenen Zustand ja etwas öffnen will. Dann müsste der Zweig 2 so aussehen:
DOELSEIF (([?du_Rollo_Master] ne "aus" and (([Jal_KU_Ost_03:level] == 3 and [du_Beschattung_Haus_morgens] eq "ja") or ([du_Tageslicht] eq "dunkel" and [?20:00-22:00] and [Jal_KU_Ost_03:level] == 0))) or ([Jal_KU_Ost_01] =~ "short"))
(set Jal_KU_Ost winkel 50) ##2 Lamellen stellen wenn Jalousie ganz zu oder Taster kurz gedrückt
Wäre schön, wenn mir jemand weiterhelfen könnte.
Viele Grüße Jürgen
1: dies ist durch Register im Device geregelt
2: ja, mit entspr. set register Befehle
3: ja, wobei ich dein "da ich vom geschlossenen Zustand ja etwas öffnen will" nicht verstehe. Jal_KU_Ost_01:"short" wäre eine Ereignissteuerung, egal der Zustand
Hallo amenomade,
zu 2: das List sieht so aus:
READINGS:
2015-06-14 17:04:13 PRESS_SHORT 0
2019-09-21 10:23:42 R-input_locked no
2019-09-21 10:23:42 R-input_type pushbutton
2019-07-21 14:17:58 R-long_press_time 1.00
2019-09-21 10:23:42 R-longpress_time 1.00
2019-07-16 20:45:08 press_long 49
2019-10-05 08:10:15 press_short 44
2019-10-05 08:10:15 state press_short_44
Was bedeuten die 44 und 49? Welche Angabe bezogen auf eine Zeit ist das? Sekunden sind das nicht, aber 49 ms für Long_Press auch nicht.
Aktuell bewirkt jedes Drücken eines Tasters eine Bewegung in Richtung AUF oder ZU, unabhängig wie lange gedrückt wird. Zum Stoppen muss ich noch einmal drücken. Ich würde es gerne so einstellen, dass bei einem längeren Drücken die Jalousie ganz AUF oder ganz ZU fährt und ich das Event eines kurzen Drückens in meinem DOIF für den Aufruf eines Unterprogrammes nutze, das mir die Lamellen auf einen übergebenen Wert stellt. Somit muss ich wissen, wie lange ich "lange Drücken" muss, damit nicht das Event "press_short" gesetzt wird.
zu 3: Wenn die Jalousie herunterfährt (Richtung "Jalousie Schliessen") sind die Lamellen ganz geschlossen. Sie öffnen sich, wenn man Richtung "Jalousie Öffnen" fährt.
Gruß Jürgen
Mach mal ein "get <device> regTable"
Da bekomme ich "Unknown argument regTable....."
Es steht nur "Peersettings" und "state" zur Verfügung.
Kannst Du bitte ein vollständiges "list" liefern?
Klar, hatte ich bisher nicht da ziemlich lang
[code]Internals:
DEF 0001076C_01
FUUID 5c4c3927-f33f-6b6f-64bd-d7be1dabf45d9ecd
FW_VERSION 3.06
IODev
MODEL HMW_LC_Bl1_DR
NAME Jal_KU_Ost_01
NR 237
PeerList Jal_KU_Ost_03
STATE press_short_44
TYPE HM485
chanNo 01
device Jal_KU_Ost_00
READINGS:
2015-06-14 17:04:13 PRESS_SHORT 0
2019-09-21 10:23:42 R-input_locked no
2019-09-21 10:23:42 R-input_type pushbutton
2019-07-21 14:17:58 R-long_press_time 1.00
2019-09-21 10:23:42 R-longpress_time 1.00
2019-07-16 20:45:08 press_long 49
2019-10-05 08:10:15 press_short 44
2019-10-05 08:10:15 state press_short_44
devHash:
DEF 0001076C
FUUID 5c4c3927-f33f-6b6f-6df1-b1838b96f08eb59b
FW_VERSION 3.06
IODev HM485_LAN
MODEL HMW_LC_Bl1_DR
NAME Jal_KU_Ost_00
NR 230
STATE ACK
TYPE HM485
channel_01 Jal_KU_Ost_01
channel_02 Jal_KU_Ost_02
channel_03 Jal_KU_Ost_03
peer_act_0 channel_01 → Jal_KU_Ost_03
peer_act_1 channel_02 → Jal_KU_Ost_03
peer_sen_0 channel_03 ← Jal_KU_Ost_01
peer_sen_1 channel_03 ← Jal_KU_Ost_02
READINGS:
2019-09-21 10:23:42 R-central_address 00000001
2019-09-21 10:23:42 R-logging_time 2.00
2019-09-21 10:24:04 configStatus OK
2019-10-05 08:11:28 state ACK
cache:
linkParams:
actuator:
address_start 854
address_step 6
channel_param channel
channels 01 02
count 28
peer_param actuator
type link
parameter:
actuator:
hidden 1
operations none
logical:
type address
physical:
HASH(0x3411230)
HASH(0x3411308)
channel:
hidden 1
operations none
logical:
default 255
max 255
min 0
type integer
physical:
interface eeprom
size 1
type integer
address:
index 0
sensor:
address_start 18
address_step 38
channel_param channel
channels 03
count 22
peer_param sensor
type link
parameter:
channel:
hidden 1
operations none
logical:
default 255
max 255
min 0
type integer
physical:
interface eeprom
size 1
type integer
address:
index 5
long_action_type:
logical:
type option
option:
HASH(0x33f96d8)
HASH(0x33f9720)
physical:
interface eeprom
size 0.1
type integer
address:
index 22
long_driving_mode:
logical:
type option
option:
HASH(0x33f9978)
HASH(0x33f99c0)
HASH(0x33f9a08)
HASH(0x33f9a50)
physical:
interface eeprom
size 0.2
type integer
address:
index 22.4
long_jt_off:
logical:
type option
option:
HASH(0x33f9cd8)
HASH(0x33f9d38)
HASH(0x33f9d80)
HASH(0x33f9dc8)
HASH(0x33f9e10)
HASH(0x33f9e58)
HASH(0x33f9ea0)
HASH(0x33f9ee8)
HASH(0x33f9f30)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 37.4
long_jt_offdelay:
logical:
type option
option:
HASH(0x33fa268)
HASH(0x33fa2b0)
HASH(0x33fa2f8)
HASH(0x33fa340)
HASH(0x33fa388)
HASH(0x33fa3d0)
HASH(0x33fa430)
HASH(0x33fa478)
HASH(0x33fa4c0)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 36
long_jt_on:
logical:
type option
option:
HASH(0x33fa7d8)
HASH(0x33fa820)
HASH(0x33fa868)
HASH(0x33fa8b0)
HASH(0x33fa8f8)
HASH(0x33fa958)
HASH(0x33fa9a0)
HASH(0x33fa9e8)
HASH(0x33faa30)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 35.4
long_jt_ondelay:
logical:
type option
option:
HASH(0x33fad48)
HASH(0x33fad90)
HASH(0x33fadf0)
HASH(0x33fae38)
HASH(0x33fae80)
HASH(0x33faec8)
HASH(0x33faf10)
HASH(0x33faf58)
HASH(0x33fafa0)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 34
long_jt_rampoff:
logical:
type option
option:
HASH(0x33ff8a8)
HASH(0x33ff8f0)
HASH(0x33ff938)
HASH(0x33ff980)
HASH(0x33ff9c8)
HASH(0x33ffa10)
HASH(0x33ffa58)
HASH(0x33ffaa0)
HASH(0x33ffb00)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 37
long_jt_rampon:
logical:
type option
option:
HASH(0x33ffe18)
HASH(0x33ffe60)
HASH(0x33ffea8)
HASH(0x33ffef0)
HASH(0x33fff50)
HASH(0x33fff98)
HASH(0x33fffe0)
HASH(0x3400028)
HASH(0x3400070)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 35
long_jt_refoff:
logical:
type option
option:
HASH(0x3400388)
HASH(0x34003d0)
HASH(0x3400418)
HASH(0x3400460)
HASH(0x34004a8)
HASH(0x34004f0)
HASH(0x3400538)
HASH(0x3400580)
HASH(0x34005e0)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 36.4
long_jt_refon:
logical:
type option
option:
HASH(0x3400918)
HASH(0x3400960)
HASH(0x34009a8)
HASH(0x34009f0)
HASH(0x3400a50)
HASH(0x3400a98)
HASH(0x3400ae0)
HASH(0x3400b28)
HASH(0x3400b70)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 34.4
long_max_time_first_dir:
conversion:
factor 10
offset 0
type float_integer_scale
logical:
default 0.5
max 25.4
min 0
type float
unit s
special_value:
id not_used
value 25.5
physical:
endian little
interface eeprom
size 1
type integer
address:
index 33
long_multiexecute:
logical:
default 1
type boolean
physical:
interface eeprom
size 0.1
type integer
address:
index 22.2
long_off_level:
conversion:
factor 200
type float_integer_scale
logical:
default 0
max 1
min 0
type float
unit 100%
physical:
interface eeprom
size 1
type integer
address:
index 23
long_off_time:
conversion:
1:
factors 0.1,1,60,1000
type float_configtime
value_size 1.6
2:
type integer_integer_map
value_map:
device_value 49152
mask 49152
parameter_value 65535
logical:
default 16383000
max 982980
min 0
type float
unit s
special_value:
id not_used
value 16383000
physical:
endian little
interface eeprom
size 2
type integer
address:
index 31
long_off_time_mode:
logical:
type option
option:
HASH(0x3402d88)
HASH(0x3402dd0)
physical:
interface eeprom
size 0.1
type integer
address:
index 22.6
long_offdelay_time:
conversion:
1:
factors 0.1,1,60,1000
type float_configtime
value_size 1.6
2:
type integer_integer_map
value_map:
device_value 49152
mask 49152
parameter_value 65535
logical:
default 0
max 982980
min 0
type float
unit s
physical:
endian little
interface eeprom
size 2
type integer
address:
index 27
long_on_level:
conversion:
factor 200
type float_integer_scale
logical:
default 1
max 1
min 0
type float
unit 100%
physical:
interface eeprom
size 1
type integer
address:
index 24
long_on_time:
conversion:
1:
factors 0.1,1,60,1000
type float_configtime
value_size 1.6
2:
type integer_integer_map
value_map:
device_value 49152
mask 49152
parameter_value 65535
logical:
default 16383000
max 982980
min 0
type float
unit s
special_value:
id not_used
value 16383000
physical:
endian little
interface eeprom
size 2
type integer
address:
index 29
long_on_time_mode:
logical:
type option
option:
HASH(0x3404a90)
HASH(0x3404ad8)
physical:
interface eeprom
size 0.1
type integer
address:
index 22.7
long_ondelay_time:
conversion:
1:
factors 0.1,1,60,1000
type float_configtime
value_size 1.6
2:
type integer_integer_map
value_map:
device_value 49152
mask 49152
parameter_value 65535
logical:
default 0
max 982980
min 0
type float
unit s
physical:
endian little
interface eeprom
size 2
type integer
address:
index 25
long_toggle_use:
logical:
type option
option:
HASH(0x3404d30)
HASH(0x3404d78)
physical:
interface eeprom
size 0.1
type integer
address:
index 22.3
sensor:
hidden 1
operations none
logical:
type address
physical:
HASH(0x3405060)
HASH(0x3405138)
short_action_type:
logical:
type option
option:
HASH(0x34052b8)
HASH(0x3405300)
physical:
interface eeprom
size 0.1
type integer
address:
index 6
short_driving_mode:
logical:
type option
option:
HASH(0x3405558)
HASH(0x34055a0)
HASH(0x34055e8)
HASH(0x3405650)
physical:
interface eeprom
size 0.2
type integer
address:
index 6.4
short_jt_off:
logical:
type option
option:
HASH(0x34058d8)
HASH(0x3405938)
HASH(0x3405980)
HASH(0x34059c8)
HASH(0x3405a10)
HASH(0x3405a58)
HASH(0x3405aa0)
HASH(0x3405ae8)
HASH(0x3405b30)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 21.4
short_jt_offdelay:
logical:
type option
option:
HASH(0x3405e48)
HASH(0x3405e90)
HASH(0x3405ed8)
HASH(0x3405f20)
HASH(0x3405f68)
HASH(0x3405fb0)
HASH(0x3406010)
HASH(0x3406058)
HASH(0x34060a0)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 20
short_jt_on:
logical:
type option
option:
HASH(0x34063b8)
HASH(0x3406400)
HASH(0x3406448)
HASH(0x3406490)
HASH(0x34064d8)
HASH(0x3406538)
HASH(0x3406580)
HASH(0x34065c8)
HASH(0x3406610)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 19.4
short_jt_ondelay:
logical:
type option
option:
HASH(0x3406948)
HASH(0x3406990)
HASH(0x34069f0)
HASH(0x3406a38)
HASH(0x3406a80)
HASH(0x3406ac8)
HASH(0x3406b10)
HASH(0x3406b58)
HASH(0x3406ba0)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 18
short_jt_rampoff:
logical:
type option
option:
HASH(0x3406eb8)
HASH(0x3406f00)
HASH(0x3406f48)
HASH(0x3406f90)
HASH(0x3406fd8)
HASH(0x3407020)
HASH(0x3407068)
HASH(0x34070b0)
HASH(0x3407110)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 21
short_jt_rampon:
logical:
type option
option:
HASH(0x3407428)
HASH(0x3407470)
HASH(0x34074b8)
HASH(0x3407500)
HASH(0x3407560)
HASH(0x34075a8)
HASH(0x34075f0)
HASH(0x34085c8)
HASH(0x3408610)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 19
short_jt_refoff:
logical:
type option
option:
HASH(0x3408928)
HASH(0x3408970)
HASH(0x34089b8)
HASH(0x3408a00)
HASH(0x3408a48)
HASH(0x3408a90)
HASH(0x3408ad8)
HASH(0x3408b20)
HASH(0x3408b80)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 20.4
short_jt_refon:
logical:
type option
option:
HASH(0x3408e98)
HASH(0x3408ee0)
HASH(0x3408f28)
HASH(0x3408f70)
HASH(0x3408fd0)
HASH(0x3409018)
HASH(0x3409060)
HASH(0x34090a8)
HASH(0x34090f0)
physical:
endian little
interface eeprom
read_size 1
size 0.4
type integer
address:
index 18.4
short_max_time_first_dir:
conversion:
factor 10
offset 0
type float_integer_scale
logical:
default 25.5
max 25.4
min 0
type float
unit s
special_value:
id not_used
value 25.5
physical:
endian little
interface eeprom
size 1
type integer
address:
index 17
short_off_level:
conversion:
factor 200
type float_integer_scale
logical:
default 0
max 1
min 0
type float
unit 100%
physical:
interface eeprom
size 1
type integer
address:
index 7
short_off_time:
conversion:
1:
factors 0.1,1,60,1000
type float_configtime
value_size 1.6
2:
type integer_integer_map
value_map:
device_value 49152
mask 49152
parameter_value 65535
logical:
default 16383000
max 982980
min 0
type float
unit s
special_value:
id not_used
value 16383000
physical:
endian little
interface eeprom
size 2
type integer
address:
index 15
short_off_time_mode:
logical:
type option
option:
HASH(0x340b170)
HASH(0x340b1b8)
physical:
interface eeprom
size 0.1
type integer
address:
index 6.6
short_offdelay_time:
conversion:
1:
factors 0.1,1,60,1000
type float_configtime
value_size 1.6
2:
type integer_integer_map
value_map:
device_value 49152
mask 49152
parameter_value 65535
logical:
default 0
max 982980
min 0
type float
unit s
physical:
endian little
interface eeprom
size 2
type integer
Also... anscheinend sind einige Register doch da. Nun ja... ich kenne HM Wired nicht so gut.
Gibt es die Möglichkeit, attr expert zu setzen?
Gibt es einen "set <dev> getConfig" Befehl?
Beides nein. Sowohl bei *_01 als auch *_03 nicht.
Und auf _00?
Was sagt denn set Jal_KU_Ost_01 ?
und set Jal_KU_Ost_00 ?
?
Eigentlich sehe ich gerade, dass die Register wahrscheinlich eher auf dem Device sind.
Also set getConfig und get regTable eher auf _00 aufrufen.
Gibt es auch auf dem *_00 nicht.
Ich denke, ich muss mal im wired-Forum suchen. Es dreht sich ja weniger um die Abfrage im DOIF las um die Frage, wie ich short und long-press einstellen bzw. unterscheiden kann.
Danke
Also, wegen DOIF, einfach im Eventmonitor die Events schauen. Die Zeile mit short oder long markieren, und auf "create/modify Device" klicken, DOIF auswählen,...
Danke für die Anleitung. Habe jetzt die Abfragen der Taster auslesen können. Jetzt muss ich nur noch die Logik im wired-device ändern.
long_press bewirkt aktuell direkt im device, nicht im DOIF, ein Fahren der Jaousie, solange ich den Taster drücke. short_press fährt solange, bis entweder noch einmal gedrückt wird oder die Jalousie unten/oben ist.
Das möchte ich auf long_press legen, damit ich short_press für den Lamellenwinkel nehmen kann. Dazu muss aber die Funktion short_press im device abgeschalten werden, da ja sonst diese AKtion und gleichzeitig der Befehl vom DOIF ausgeführt werden.
Zumindest soweit ich das verstehe.
Ja, da musst Du tatsächlich irgendwelche Register ändern.
Aber das Modul sollte es können. Schau mal z.B. hier. https://forum.fhem.de/index.php/topic,75301.msg670969.html#msg670969
Hallo Anemomade,
komme leider jetzt erst wieder dazu, weiter zu machen.
Leider geht der Link von Dir zum Index und nicht zu einem Thread.
Grüße Jürgen