FHEM Forum

FHEM => Automatisierung => Thema gestartet von: superverbleit am 06 Dezember 2025, 10:06:35

Titel: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 06 Dezember 2025, 10:06:35
Hallo Zusammen,

ich würde gerne meine KNX Jalousien über das AutoShuttersControl steuern.
Eigentlich ganz einfach, abends will ich die Jalousie runter fahren (ab). Morgens will ich die Jalousie an eine bestimmte Position fahren (z.B. 50% halb hoch) und die Lamellen an eine bestimmte Position stellen, z.B. 60%.

Dazu habe ich folgendes device definiert (eigentlich wie ein Rolllo), nur mit dem Zusatzattribut ASC_SlatPosCmd_SlatDevice
Hier das list:
Internals:
   DEF        2/1/207:dpt5.001:Pos.Status 2/4/200:dpt5.001:Pos.Absolute:nosuffix
   FUUID      5dfcf3ae-f33f-5687-034a-9ed97a3902dc74ea
   IODev      KNX
   NAME       DG.Treppenhaus.Jalousie.Position
   NR         227
   STATE      0 %
   TYPE       KNX
   model      dpt5
   GADDETAILS:
     Pos.Absolute:
       CODE       024c8
       MODEL      dpt5.001
       NO         2
       OPTION     
       RDNAMEGET  Pos.Absolute
       RDNAMESET  Pos.Absolute
       SETLIST    :slider,0,1,100
     Pos.Status:
       CODE       021cf
       MODEL      dpt5.001
       NO         1
       OPTION     
       RDNAMEGET  Pos.Status-get
       RDNAMESET  Pos.Status-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     021cf      Pos.Status
     024c8      Pos.Absolute
   Helper:
   READINGS:
     2025-12-06 09:28:39   ASC_Enable      on
     2025-12-06 09:31:20   ASC_Time_DriveDown 06.12.2025 - 17:30
     2025-12-06 09:31:20   ASC_Time_DriveUp 07.12.2025 - 08:06
     2025-12-06 09:28:43   IODev           KNX
     2025-12-06 08:10:29   Pos.Absolute    0 %
     2025-12-06 08:10:28   Pos.Status-get  0 %
     2025-12-06 09:28:40   associatedWith  AutoShuttersControl
     2025-12-06 08:10:28   last-sender     1.1.2
     2025-12-06 08:10:28   state           0 %
Attributes:
   ASC        1
   ASC_BrightnessSensor Aussenbereich.DachOst.Lux 150:15
   ASC_Closed_Pos 100
   ASC_CommandTemplate set $name Pos.Absolute $pos
   ASC_Down   astro
   ASC_Drive_Delay 300
   ASC_Open_Pos 50
   ASC_Pos_Reading Pos.Status-get
   ASC_SlatPosCmd_SlatDevice DG.Treppenhaus.Jalousie.Lamelle Pos.Absolute
   ASC_Time_Down_Early 17:30
   ASC_Time_Down_Late 22:00
   ASC_Time_Up_Early 06:30
   ASC_Time_Up_Late 08:30
   ASC_Time_Up_WE_Holiday 08:00
   ASC_Up     astro
   IODev      KNX
   group      Jalousien
   icon       fts_shutter_updown
   room       Flur_DG
   userattr   ASC_Adv:on,off ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BlockingTime_afterManual ASC_BlockingTime_beforeDayOpen ASC_BlockingTime_beforeNightClose ASC_BrightnessSensor ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_CommandTemplate ASC_Down:time,astro,brightness,roommate ASC_DriveUpMaxDuration ASC_Drive_Delay ASC_Drive_DelayStart ASC_ExternalTrigger ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_PrivacyDownValue_beforeNightClose ASC_PrivacyDown_Pos ASC_PrivacyUpValue_beforeDayOpen ASC_PrivacyUp_Pos ASC_RainProtection:on,off ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_AbsentDelay ASC_Self_Defense_Mode:absent,gone,off ASC_Shading_BetweenTheTime ASC_Shading_InOutAzimuth ASC_Shading_MinMax_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_SunnyCloudy ASC_Shading_WaitingPeriod ASC_Shutter_IdleDetection ASC_ShuttersPlace:window,terrace,awning,EG_window ASC_SlatPosCmd_SlatDevice ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_TempSensor ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness,roommate ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindParameters ASC_WindProtection:on,off ASC_WindowRec ASC_WindowRec_PosAfterDayClosed:open,lastManual ASC_WindowRec_subType:twostate,threestate
   webCmd     Pos.Absolute
   widgetOverride Pos.Absolute:slider,0,1,100

Und hier noch das zugehörige Lamellendevice:
Internals:
   DEF        2/1/208:dpt5.001:Pos.Status 2/4/201:dpt5.001:Lamelle.Absolute:nosuffix
   FUUID      5dfcf3ae-f33f-5687-2e06-6a4631dc552337b3
   IODev      KNX
   NAME       DG.Treppenhaus.Jalousie.Lamelle
   NR         228
   STATE      0 %
   TYPE       KNX
   model      dpt5
   GADDETAILS:
     Lamelle.Absolute:
       CODE       024c9
       MODEL      dpt5.001
       NO         2
       OPTION     
       RDNAMEGET  Lamelle.Absolute
       RDNAMESET  Lamelle.Absolute
       SETLIST    :slider,0,1,100
     Pos.Status:
       CODE       021d0
       MODEL      dpt5.001
       NO         1
       OPTION     
       RDNAMEGET  Pos.Status-get
       RDNAMESET  Pos.Status-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     021d0      Pos.Status
     024c9      Lamelle.Absolute
   Helper:
   READINGS:
     2025-12-06 09:28:43   IODev           KNX
     2025-10-25 12:54:48   Lamelle.Absolute 50 %
     2025-12-06 08:10:28   Pos.Status-get  0 %
     2025-10-25 12:54:48   Pos.Status-set  60 %
     2025-12-06 08:10:28   last-sender     1.1.2
     2025-12-06 08:10:28   state           0 %
Attributes:
   IODev      KNX
   eventMap   /Lamelle.Absolute 0:Pos_0%/Lamelle.Absolute 30:Pos_30%/Lamelle.Absolute 50:Pos_50%/Lamelle.Absolute 65:Pos_65%/Lamelle.Absolute 75:Pos_75%/Lamelle.Absolute 100:Pos_100%
   group      Jalousien
   icon       fts_blade_s
   room       Flur_DG
   webCmd     Pos_0%:Pos_30%:Pos_50%:Pos_65%:Pos_75%:Pos_100%

Soweit so gut, leider finde ich jetzt nicht das passende Attribut für die Lamellenposition, früher gab es da wohl ein Attribut ASC_SlatPosMorning.

Hat da von euch jemand eine Idee.
Danke schon mal für euren Support.

Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 06 Dezember 2025, 10:42:17
Allgemein gilt für Jalousien, dass der Dreh-Level mit Doppelpunkt von der Behanghöhe zu trennen ist, hier auszugsweise ein Beispiel für ZWave, ebenfalls mit 2 getrennten Devices für Behanghöhe und Drehwinkel:
define Jalousie_WZ ZWave bla
attr Jalousie_WZ ASC 2
attr Jalousie_WZ ASC_Closed_Pos 0:0
attr Jalousie_WZ ASC_ComfortOpen_Pos 80:0
attr Jalousie_WZ ASC_DriveUpMaxDuration 65
attr Jalousie_WZ ASC_Open_Pos 99:99
attr Jalousie_WZ ASC_Pos_Reading dim
attr Jalousie_WZ ASC_SlatPosCmd_SlatDevice dim:ZWave_SWITCH_MULTILEVEL_8.02
attr Jalousie_WZ ASC_Ventilate_Pos 75:30
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Damu am 06 Dezember 2025, 17:26:39
Hab das mit EnOcean und einem ReadingsProxy versucht.
Geht leider nicht, wenn ich auf position 10 gehe geht wirklich auf position 10 aber in der Anzeige und im Status ist immer noch position 0.
Wenn ich jetzt auf position 20 gehe, wird auf position 20 gefahren, in der Anzeige steht aber jetzt position 10.

Das mit den Jalosie und der Lammelen_steuerung ist nicht gut gelöst
Damit das einigermasen funktioniert brauch ich Pro Jalosie
2 ReadingsProxy (1 x Jalosie 1 x Lamelle)
4 x cmdalias (1 x closes, 1 x opens, 1 x position 100, 1 x position 0) damit es bei open und close die Lammele richtig dreht
1 x cmdalias mit 1 x Dummy und 1 x Doif damit es beim runterfahren von position 0 0 auf position 1-100 100 die lamellen auf 100 dreht.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 06 Dezember 2025, 17:39:21
Verstehe ich nicht.

Das mit dem 2. Device ist optional! Es geht auch mit dem passenden Befehl auf den Jalousie-Aktor.

Bei Bedarf zeige ich ein zwave-list.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Damu am 06 Dezember 2025, 18:26:11
Habe auch Z-Wave aber bei den Storen neu EnOcean.
Das mit den 2 Device für Jalosie und Lamelle ist schon io.
Wie ist den das bei Z-Wave gelöst?
Geschlossen ist 0:0, Offen 99:99?
Wenn zb von Offen 99:99 auf 50 runter fährst muss es ja wieder auf 50:99? (es sind ja zwei Device).
Oder geht Z-Wave da auf 50:0?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 08 Dezember 2025, 17:38:13
Ich habe es jetzt auch mal folgendermaßen ausprobiert, eigentlich ja ganz simpel.

Folgende 2 Attribute geändert:

attr DG.Treppenhaus.Jalousie.Position ASC_Open_Pos 50:60attr DG.Treppenhaus.Jalousie.Position ASC_Closed_Pos 100:100
Morgens soll zum Test die Jalousie auf Höhe 50% fahren, dann die Lamellen auf 60% stellen ( damit ich es auch sehen kann).
Abends soll die Jalousie ganz runter (100%) und die Lamelle zu gehen (100%).

Leider passiert mit der Lamellenverstellung nichts.

Ich sehe auch im ASC Log nichts zu einer Lamellen Aktion:
ASC_DEBUG!!! 2025.12.08 08:07:28 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NICHT versetztes fahren
ASC_DEBUG!!! 2025.12.08 08:07:28 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NoDelay: NEIN
ASC_DEBUG!!! 2025.12.08 08:07:28 - FnShuttersCommandSet: DG.Treppenhaus.Jalousie.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür

Müsste da was geloggt werden, zumindest der Versuch?

Ebenso im Log File Lamelle erscheint nichts sinniges, nur das hier vom Zeitraum her:
2025-12-08_08:08:03 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-08_08:08:03 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 0 %
2025-12-08_08:08:03 DG.Treppenhaus.Jalousie.Lamelle 0 %
2025-12-08_08:08:05 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-08_08:08:05 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 100 %
2025-12-08_08:08:05 DG.Treppenhaus.Jalousie.Lamelle 100 %

Hier noch das Log der Jalousie (hoch/runter):
2025-12-08_08:07:28 DG.Treppenhaus.Jalousie.Position last-sender: fhem
2025-12-08_08:07:28 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 %
2025-12-08_08:07:28 DG.Treppenhaus.Jalousie.Position 50 %
2025-12-08_08:08:03 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-08_08:08:03 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 47 %
2025-12-08_08:08:03 DG.Treppenhaus.Jalousie.Position 47 %
2025-12-08_08:08:04 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 47 %
2025-12-08_08:08:05 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-08_08:08:05 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 50 %
2025-12-08_08:08:05 DG.Treppenhaus.Jalousie.Position 50 %
2025-12-08_08:08:06 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 %

Irgendwie wird die Lamellenverstellung ignoriert, denke ich.
Hab ich noch irgendwas falsch gemacht?
Wie ist das generell? Wird zuerst die Position angefahren, dann die Lamelle verstellt, müsste ja so sein, oder?
Vor dem Doppelpunkt ist die Pos (hoch/runter), nach dem Doppelpunkt die Lamelle?
Das mit dem attr ASC_SlatPosCmd_SlatDevice müsste ja auch passen, vermute ich mal?

Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 08 Dezember 2025, 18:48:04
Zitat von: Damu am 06 Dezember 2025, 18:26:11Das mit den 2 Device für Jalosie und Lamelle ist schon io.
Bin da nicht so sicher, was KNX angeht. Da sollte sich eigentlich auch die Lamellen-Steuerung direkt in das Shutter-Gerät integrieren lassen, eben als 2. Reading

Prinzipiell ist das imo ähnlich wie bei der "alten" Fibaro-Serie (@ZWave). Mir gefällt das in dem Punkt jedenfall besser wie die neue Serie (dazu gehört das bereits gepostete list von neulich). Bei den alten ist einfach das Kommando am selben Gerät anders:
define Jalousie_Links ZWave blablub
attr Jalousie_Links ASC_Closed_Pos 0:0
attr Jalousie_Links ASC_Open_Pos 99:99
attr Jalousie_Links ASC_Pos_Reading dim
attr Jalousie_Links ASC_SlatPosCmd_SlatDevice positionSlat
attr Jalousie_Links eventMap { usr=>{'dim.100'=>'dim 99' } }
attr Jalousie_Links userReadings positionSlat:power..0.0.W {ReadingsVal($name,'position',0) =~ m,Slat.([0-9]+),?$1:undef}, \
dim:power..0.0.W {my $pos = ReadingsVal($name,'state',0) =~ m,dim, ? ReadingsNum($name,'state',0) : ReadingsNum($name,'dim',0);; my $pos1 = ReadingsNum($name,'position',0);; $pos = $pos1 if abs($pos - $pos1) > 2 || $pos < 3 && ReadingsNum($name,'positionSlat',0) > 2;; if ($pos < 3) { $pos = 1 if ReadingsNum($name,'positionSlat',0) > 2;; $pos = 2 if ReadingsNum($name,'positionSlat',0) > 45;; };; return $pos }
#     2025-12-08 17:40:29   dim             0
#     2020-08-30 11:52:44   model           FIBARO System FGRM222 Roller Shutter Controller 2
#     2025-12-08 16:40:29   position        Blind 0 Slat 0
#     2025-12-08 17:40:29   positionSlat    0

Prinzipiell sendet ASC den "slat"-Command auch unmittelbar raus, bei meinen ZWave-Aktoren ist das ok, und anscheinend auch für viele andere Hardware-Typen wie HMCCU.* usw..

Falls das mit dem unmittelbaren Senden (wirklich) ein Problem ist, müßte es ggf. verzögert werden. Ich hatte dazu als Würgaround auch mal was für CUL_HM gebastelt, weil die normelen Rollladenaktoren keine Lamellen konnten - die sind zwischenzeitlich aber durch die Fibaro ersetzt...
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 08 Dezember 2025, 19:33:48
re KNX: Zwei devices oder EINS für Jalousie / Slat:
   ist völlig egal (Geschmackssache), Beispiel dazu gibts im wiki: (https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele)  u.a."2 Slider mit Rückmeldung".

Was das unmittelbare senden der slat-position betrifft: Das könnte tatsächlich ein Problem sein, abhängig von der Hardware/Firmware im KNX-Aktor! Meine verbauten MDT Aktoren berücksichtigen das jedoch!
Die Jalousie hat ja grundsätzlich nur einen Motor für beide Funktionen:
ein "Jalousie position 50" fährt runter bis Position erreicht ist, die slat ist geschlossen. Anschließend fährt die Jal ganz kurz rauf und öffnet damit die slat...
Wenn das die Hardware/Firmware im Aktor nicht berücksichtigt, könnte man sich mit eine notify auf position-status... behelfen.
Evtl lässt sich das auch im ASC-device lösen, siehe "ASC_SlatPosCmd_SlatDevice" ?
l.g. erwin
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 09 Dezember 2025, 06:39:33
Ob 2 oder 1 Device ist aktuell noch nicht mein Problem.
Ich sehe leider keine Ansteuerung meiner Lamelle (60%) im Log-File, siehe mein Kommentar.
Irgendwie müssen meine Attribute nicht korrekt sein, oder?
Müsste das auch im ASC Debug Log protokolliert sein?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 09 Dezember 2025, 07:37:58
Zitat von: superverbleit am 09 Dezember 2025, 06:39:33Irgendwie müssen meine Attribute nicht korrekt sein, oder?
Falls du das ASC_SlatPosCmd_SlatDevice im Nachgang zu meinem ersten Beitrag nicht verändert hast: Nein.

Siehe dazu auch die commandref:
ZitatASC_SlatPosCmd_SlatDevice - Angaben zu einem Slat (Lamellen) CMD und - sofern diese Lamellen über ein anderes Device gesteuert werden - zum Slat Device. Beispiele: attr ROLLO ASC_SlatPosCmd_SlatDevice slatPct oder attr ROLLO ASC_SlatPosCmd_SlatDevice dim:ROLLOSLATDEVICE. Die Angabe des Devices ist nur erforderlich, wenn zur Steuerung der Lamellen ein anderes Device verwendet wird. Damit das ganze dann auch greift, muss in den 6 Positionsangaben ASC_Open_Pos, ASC_Closed_Pos, ASC_Ventilate_Pos, ASC_ComfortOpen_Pos, ASC_Shading_Pos und ASC_Sleep_Pos ein weiterer Parameter für die Lamellenstellung mit angegeben werden.

Dass man ERST den command (dim bzw. positionSlat für ZWave) und dann - mit Doppelpunkt getrennt - das Device angeben muss (bei zweien), ist halt historisch so gewachsen, eben weil es (nur) bei ZWave diese Besonderheit gibt, dass da aus technischen Gründen zwei Devices gebildet werden.

Für KNX würde ich keine zwei Devices bilden - und einmal mehr - "ALLGEMEIN ÜBLICHE" setter-Namen verwenden, da das ROLLO-TYPE ist (ASC-Attribut 1), wäre es vermutlich sinnvoll, sich an ROLLO zu orientieren, das für die Behanghöhe "pct" verwendet (mit der Bedeutung 0=oben). Eventuell stört auch das commandTemplate, und das bekommst du damit uU. weg.

@erwin: ASC erwartet, dass das "Lese-Reading" und das "set"-Reading ein und denselben Namen haben.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 09 Dezember 2025, 08:50:06
Zitat@erwin: ASC erwartet, dass das "Lese-Reading" und das "set"-Reading ein und denselben Namen haben.
...kein Problem: bei jeder definition "nosuffix" setzen.
...siehe auch mein ASC-Beispiel im wiki (https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele)
l.g. erwin
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 10 Dezember 2025, 10:34:48
Ich habe das attr ASC_SlatPosCmd_SlatDevice so gewählt:
ASC_SlatPosCmd_SlatDevice DG.Treppenhaus.Jalousie.Lamelle Pos.Absolute
Ohne Doppelpunkt.

@Beta-User: Stimmt das dann trotzdem so, meinst ja?

Ich habe ja nur das attr ASC_Open_Pos z.B. mit 50:60 gewählt, bzw. ASC_Closed_Pos 100:100

Das der ASC Log gar nichts von den Lamellen meldet, ist ja schon auch komisch, oder?
Auch im Lamellen Device Log sehe ich ja nichts.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 10 Dezember 2025, 10:40:57
Zitat von: superverbleit am 10 Dezember 2025, 10:34:48Ohne Doppelpunkt.

@Beta-User: Stimmt das dann trotzdem so, meinst ja?
Nein! Bei getrennten Devices erst den "set", dann das Device, zu trennen mit Doppelpunkt.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 12 Dezember 2025, 17:27:31
Hab das attr ASC_SlatPosCmd_SlatDevice jetzt folgendermaßen abgeändert:
attr DG.Treppenhaus.Jalousie.Position ASC_SlatPosCmd_SlatDevice Pos.Absolute:DG.Treppenhaus.Jalousie.Lamelle

Ist das attr so dann richtig?

Zur Erinnerung: Morgens soll er auf 50% auf fahren und die Lamellen auf Pos 60% stellen.
                Abends wieder runter 100% und Lamelle auf 100%.

attr DG.Treppenhaus.Jalousie.Position ASC_Open_Pos 50:60
attr DG.Treppenhaus.Jalousie.Position ASC_Closed_Pos 100:100

Leider ist das Ganze immer noch ohne Erfolg, hier die Logs von heute morgen und gestern Abend:

ASC Log:
ASC_DEBUG!!! 2025.12.11 17:30:02 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - versetztes fahren
ASC_DEBUG!!! 2025.12.11 17:30:02 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NoDelay: NEIN
ASC_DEBUG!!! 2025.12.11 17:30:02 - FnShuttersCommandSet: DG.Treppenhaus.Jalousie.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür
ASC_DEBUG!!! 2025.12.11 17:32:40 - FnSetCmdFn: DG.Treppenhaus.Jalousie.Position - Rollo wird gefahren, aktuelle Position: 50, Zielposition: 100. Grund der Fahrt: night close
ASC_DEBUG!!! 2025.12.12 08:11:37 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - versetztes fahren
ASC_DEBUG!!! 2025.12.12 08:11:37 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NoDelay: NEIN
ASC_DEBUG!!! 2025.12.12 08:11:37 - FnShuttersCommandSet: DG.Treppenhaus.Jalousie.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür
ASC_DEBUG!!! 2025.12.12 08:12:33 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - versetztes fahren
ASC_DEBUG!!! 2025.12.12 08:12:33 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NoDelay: NEIN
ASC_DEBUG!!! 2025.12.12 08:12:33 - FnShuttersCommandSet: DG.Treppenhaus.Jalousie.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür
ASC_DEBUG!!! 2025.12.12 08:12:33 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - versetztes fahren
ASC_DEBUG!!! 2025.12.12 08:12:33 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NoDelay: NEIN
ASC_DEBUG!!! 2025.12.12 08:12:33 - FnShuttersCommandSet: DG.Treppenhaus.Jalousie.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür
ASC_DEBUG!!! 2025.12.12 08:16:59 - FnSetCmdFn: DG.Treppenhaus.Jalousie.Position - Rollo wird gefahren, aktuelle Position: 100, Zielposition: 50. Grund der Fahrt: day open
ASC_DEBUG!!! 2025.12.12 08:18:32 - FnSetCmdFn: DG.Treppenhaus.Jalousie.Position - Abbruch aktuelle Position ist gleich der Zielposition 50=50

Device Auf/Ab Log:
2025-12-11_17:32:40 DG.Treppenhaus.Jalousie.Position last-sender: fhem
2025-12-11_17:32:40 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 100 %
2025-12-11_17:32:40 DG.Treppenhaus.Jalousie.Position 100 %
2025-12-11_17:33:21 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-11_17:33:21 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 100 %
2025-12-11_17:33:21 DG.Treppenhaus.Jalousie.Position 100 %
2025-12-11_17:33:23 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 100 %
2025-12-11_17:33:24 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-11_17:33:24 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 97 %
2025-12-11_17:33:24 DG.Treppenhaus.Jalousie.Position 97 %
2025-12-11_17:33:25 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 97 %
2025-12-12_08:16:59 DG.Treppenhaus.Jalousie.Position last-sender: fhem
2025-12-12_08:16:59 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 %
2025-12-12_08:16:59 DG.Treppenhaus.Jalousie.Position 50 %
2025-12-12_08:17:34 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-12_08:17:34 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 47 %
2025-12-12_08:17:34 DG.Treppenhaus.Jalousie.Position 47 %
2025-12-12_08:17:35 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 47 %
2025-12-12_08:17:36 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-12_08:17:36 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 50 %
2025-12-12_08:17:36 DG.Treppenhaus.Jalousie.Position 50 %
2025-12-12_08:17:37 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 %


Device Lamelle:
2025-12-11_17:33:22 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-11_17:33:22 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 100 %
2025-12-11_17:33:22 DG.Treppenhaus.Jalousie.Lamelle 100 %
2025-12-11_17:33:24 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-11_17:33:24 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 0 %
2025-12-11_17:33:24 DG.Treppenhaus.Jalousie.Lamelle 0 %
2025-12-12_08:17:34 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-12_08:17:34 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 0 %
2025-12-12_08:17:34 DG.Treppenhaus.Jalousie.Lamelle 0 %
2025-12-12_08:17:36 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-12_08:17:36 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 100 %
2025-12-12_08:17:36 DG.Treppenhaus.Jalousie.Lamelle 100 %


Irgendwas passiert ja auch, aber nicht das, was ich will :( .
Auch sind im Log Aktionen doppelt drin, oder?

Komischerweise war die Lamellenposition gestern Abend auf 0%.
Heute morgen nicht 60%, sondern auch 100%.

Versteht ihr das?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 12 Dezember 2025, 17:46:57
...das sieht für mich so aus, als ob die Befehle für die Lamelle an das falsche deviceDG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 % gesendet werden und NICHT ans LamellenDevice.
Am Lamellendevice sieht man nur die "gets", die der Aktor auch schickt, falls nur "Position" verstellt wird.
Je nachdem ob Position relativ "hinauf" oder "runter" gefahren wird, steht die Lamelle entweder auf 0% oder 100% !
l.g. erwin
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 12 Dezember 2025, 18:31:40
Das eventMap macht es m.E. nicht durchsichtiger...

Muss das sein?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 12 Dezember 2025, 19:49:57
Das eventMap nehme ich halt, um die default Positionen der Lamelle abzudecken.

50 ist aber schon richtig an der Stelle der Position der Jalousie selbst (nicht die Position der Lamelle).
attr DG.Treppenhaus.Jalousie.Position ASC_Open_Pos 50:60
Eigentlich müsste ja über dieses attr attr DG.Treppenhaus.Jalousie.Position ASC_Open_Pos 50:60 60 an die Lamelle geschickt werden, richtig?
50 ist die Position der Jalousie.

Hatte hier noch ein Fehler im Kommentar, es muss natürlich richtiger weiße so heißen (ist/war auch so umgesetzt).
attr DG.Treppenhaus.Jalousie.Position ASC_SlatPosCmd_SlatDevice Lamelle.Absolute:DG.Treppenhaus.Jalousie.Lamelle

Bin vorhin, als die Jalousie runter ging daneben gestanden, also erst nachdem die Jalousie unten war (so 2-3 Sekunden später), ging die Lamelle nochmals auf 0%, nachdem sie richtig auf 100% gestanden ist.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 12 Dezember 2025, 19:57:21
60 ist halt nicht im eventMap der Lamelle, oder...?

Teste doch einfach mal was passiert, wenn du beide Kommandos direkt nacheinander über das mehrzeilige Kommandofeld absetzt...
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 12 Dezember 2025, 20:26:06
In der eventMap ist 60 nicht drin
Internals:
   DEF        2/1/208:dpt5.001:Pos.Status 2/4/201:dpt5.001:Lamelle.Absolute:nosuffix
   FUUID      5dfcf3ae-f33f-5687-2e06-6a4631dc552337b3
   IODev      KNX
   KNX_MSGCNT 54
   KNX_RAWMSG C01102w021d0ff
   KNX_TIME   2025-12-12 20:20:02
   LASTInputDev KNX
   MSGCNT     54
   NAME       DG.Treppenhaus.Jalousie.Lamelle
   NR         228
   STATE      100 %
   TYPE       KNX
   eventCount 57
   model      dpt5
   GADDETAILS:
     Lamelle.Absolute:
       CODE       024c9
       MODEL      dpt5.001
       NO         2
       OPTION     
       RDNAMEGET  Lamelle.Absolute
       RDNAMESET  Lamelle.Absolute
       SETLIST    :slider,0,1,100
     Pos.Status:
       CODE       021d0
       MODEL      dpt5.001
       NO         1
       OPTION     
       RDNAMEGET  Pos.Status-get
       RDNAMESET  Pos.Status-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     021d0      Pos.Status
     024c9      Lamelle.Absolute
   Helper:
   READINGS:
     2025-12-06 09:28:43   IODev           KNX
     2025-12-11 21:24:50   Lamelle.Absolute 100 %
     2025-12-12 20:20:02   Pos.Status-get  100 %
     2025-10-25 12:54:48   Pos.Status-set  60 %
     2025-12-12 20:20:02   last-sender     1.1.2
     2025-12-12 20:20:02   state           100 %
Attributes:
   IODev      KNX
   eventMap   /Lamelle.Absolute 0:Pos_0%/Lamelle.Absolute 30:Pos_30%/Lamelle.Absolute 50:Pos_50%/Lamelle.Absolute 65:Pos_65%/Lamelle.Absolute 75:Pos_75%/Lamelle.Absolute 100:Pos_100%
   group      Jalousien
   icon       fts_blade_s
   room       Flur_DG
   webCmd     Pos_0%:Pos_30%:Pos_50%:Pos_65%:Pos_75%:Pos_100%

Hab jetzt folgendes über das Kommandofeld gemacht:
set DG.Treppenhaus.Jalousie.Position Pos.Absolute 50
set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute 60

Resultat:

Log File Jalousie
2025-12-12_20:19:24 DG.Treppenhaus.Jalousie.Position last-sender: fhem
2025-12-12_20:19:24 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 %
2025-12-12_20:19:24 DG.Treppenhaus.Jalousie.Position 50 %
2025-12-12_20:19:59 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-12_20:19:59 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 47 %
2025-12-12_20:19:59 DG.Treppenhaus.Jalousie.Position 47 %
2025-12-12_20:20:00 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 47 %
2025-12-12_20:20:02 DG.Treppenhaus.Jalousie.Position last-sender: 1.1.2
2025-12-12_20:20:02 DG.Treppenhaus.Jalousie.Position Pos.Status-get: 50 %
2025-12-12_20:20:02 DG.Treppenhaus.Jalousie.Position 50 %
2025-12-12_20:20:03 DG.Treppenhaus.Jalousie.Position Pos.Absolute: 50 %

Log File Lamelle:
2025-12-12_20:19:59 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-12_20:19:59 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 0 %
2025-12-12_20:19:59 DG.Treppenhaus.Jalousie.Lamelle 0 %
2025-12-12_20:20:02 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-12_20:20:02 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 100 %
2025-12-12_20:20:02 DG.Treppenhaus.Jalousie.Lamelle 100 %

Die 60% scheinen so nicht zu funktionieren....

Schick ich den Lamellen Befehl einzeln, kommt das an:
2025-12-12_20:24:08 DG.Treppenhaus.Jalousie.Lamelle last-sender: fhem
2025-12-12_20:24:08 DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute: 60 %
2025-12-12_20:24:08 DG.Treppenhaus.Jalousie.Lamelle 60 %
2025-12-12_20:24:09 DG.Treppenhaus.Jalousie.Lamelle last-sender: 1.1.2
2025-12-12_20:24:09 DG.Treppenhaus.Jalousie.Lamelle Pos.Status-get: 60 %
2025-12-12_20:24:09 DG.Treppenhaus.Jalousie.Lamelle 60 %
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 12 Dezember 2025, 20:32:31
Dann ist die Frage, ob überhaupt der Lamellenbefehl rausgehen darf, solange der Motor läuft, oder erst danach...

Nachtrag noch: vielleicht gibt es die Möglichkeit, Perl-Anweisungen vorzugeben, ich meine, dazu mal vor langem mal Code beigesteuert zu haben. Bitte selbst suchen...

Edit: https://forum.fhem.de/index.php?topic=123670.0
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 13 Dezember 2025, 08:34:08
ZitatDann ist die Frage, ob überhaupt der Lamellenbefehl rausgehen darf, solange der Motor läuft, oder erst danach...
Das hatte ich in #7 angesprochen: testen ob Set position und set Lamellen unmittelbar hintereinander funktioniert, direkt in den KNX-devices, ohne ASC Einfluss. Damit könnten wir ein mögliches Problem ausschließen.
l.g. erwin
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Damu am 13 Dezember 2025, 13:58:43
Zitat von: erwin am 13 Dezember 2025, 08:34:08
ZitatDann ist die Frage, ob überhaupt der Lamellenbefehl rausgehen darf, solange der Motor läuft, oder erst danach...
Das hatte ich in #7 angesprochen: testen ob Set position und set Lamellen unmittelbar hintereinander funktioniert, direkt in den KNX-devices, ohne ASC Einfluss. Damit könnten wir ein mögliches Problem ausschließen.
l.g. erwin
Das würde mich aber auch Interesieren.
So schnell wie FHEM (ASC) die Befehle abarbeiten kann, kann niemand per Hand.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 14 Dezember 2025, 01:15:35
ZitatSo schnell wie FHEM (ASC) die Befehle abarbeiten kann, kann niemand per Hand.
Per Hand vielleicht nicht, aber in einem at, notify oder 99_myUtils verpackt sehr wohl.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Damu am 14 Dezember 2025, 19:23:15
Zitat2025-12-12_20:24:09 DG.Treppenhaus.Jalousie.Lamelle 60 %
Das % stört das nicht?
Bei ZWave gibt es da ein Attribut um das zu entfernen.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 14 Dezember 2025, 22:21:54
ZitatDas % stört das nicht?
Dem KNX set cmd stört das nicht, der filtert das automatisch - ob es ASC stört ? Denke eher nicht, weil sonst würde auch das pos cmd nicht funktionieren...
..Aber man könnte das % verhindern, wenn man möchte, Dpt-definition! steht alles im help KNX.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 15 Dezember 2025, 17:12:33
Ich habe es heute mal ausprobiert, in meinem alten DOIF.
Hier der Code
([{sunrise("REAL",0,"07:30","08:45")}|WE] and [Aussenbereich.DachOst.Lux:state:d] > 150)
  (set Stefan_Pushnachricht msg 'Rollladen: Gehen hoch')
  (set EG.Essz.Jalousie.TerrasseLinks AufAb up)
  (set EG.Essz.Jalousie.TerrasseRechts AufAb up)
  (set EG.Essz.Jalousie.Sitzfenster.Position Pos.Absolute 50)
  (set EG.Essz.Jalousie.Sitzfenster.Lamelle Lamelle.Absolute 60)
  (set EG.Wohnz.Jalousie.Eck.Lamelle Lamelle.Absolute 60)
  (set EG.Wohnz.Jalousie.FrontLinks.Lamelle Lamelle.Absolute 60)
  (set EG.Wohnz.Jalousie.FrontRechts.Lamelle Lamelle.Absolute 60)
DOELSEIF ([{sunrise("REAL",0,"06:20","08:30")}|AT] and [Aussenbereich.DachOst.Lux:state:d] > 150)
  (set Stefan_Pushnachricht msg 'Rollladen: Gehen hoch')
  (set EG.Essz.Jalousie.TerrasseLinks AufAb up)
  (set EG.Essz.Jalousie.TerrasseRechts AufAb up)
  (set EG.Essz.Jalousie.Sitzfenster.Position Pos.Absolute 50)
  (set EG.Essz.Jalousie.Sitzfenster.Lamelle Lamelle.Absolute 60)
  (set EG.Wohnz.Jalousie.Eck.Lamelle Lamelle.Absolute 60)
  (set EG.Wohnz.Jalousie.FrontLinks.Lamelle Lamelle.Absolute 60)
  (set EG.Wohnz.Jalousie.FrontRechts.Lamelle Lamelle.Absolute 60)

Zu beachten sind:
(set EG.Essz.Jalousie.Sitzfenster.Position Pos.Absolute 50)
(set EG.Essz.Jalousie.Sitzfenster.Lamelle Lamelle.Absolute 60)

Es hat so funktioniert, zuerst wurde die Jalousie auf 50% angefahren, dann die Lamelle auf 60% gestellt.
Aktor ist ein MDT JAL-0810.02.

Jalousie Log:
2025-12-15_08:16:08 EG.Essz.Jalousie.Sitzfenster.Position last-sender: fhem
2025-12-15_08:16:08 EG.Essz.Jalousie.Sitzfenster.Position Pos.Absolute-set: 50 %
2025-12-15_08:16:08 EG.Essz.Jalousie.Sitzfenster.Position 50 %
2025-12-15_08:16:37 EG.Essz.Jalousie.Sitzfenster.Position last-sender: 1.1.4
2025-12-15_08:16:37 EG.Essz.Jalousie.Sitzfenster.Position Pos.Status-get: 46 %
2025-12-15_08:16:37 EG.Essz.Jalousie.Sitzfenster.Position 46 %
2025-12-15_08:16:38 EG.Essz.Jalousie.Sitzfenster.Position Pos.Absolute: 46 %
2025-12-15_08:16:39 EG.Essz.Jalousie.Sitzfenster.Position last-sender: 1.1.4
2025-12-15_08:16:39 EG.Essz.Jalousie.Sitzfenster.Position Pos.Status-get: 48 %
2025-12-15_08:16:39 EG.Essz.Jalousie.Sitzfenster.Position 48 %
2025-12-15_08:16:40 EG.Essz.Jalousie.Sitzfenster.Position Pos.Absolute: 48 %

Lamellen Log:
2025-12-15_08:16:08 EG.Essz.Jalousie.Sitzfenster.Lamelle last-sender: fhem
2025-12-15_08:16:08 EG.Essz.Jalousie.Sitzfenster.Lamelle Lamelle.Absolute-set: 60 %
2025-12-15_08:16:08 EG.Essz.Jalousie.Sitzfenster.Lamelle 60 %
2025-12-15_08:16:37 EG.Essz.Jalousie.Sitzfenster.Lamelle last-sender: 1.1.4
2025-12-15_08:16:37 EG.Essz.Jalousie.Sitzfenster.Lamelle Pos.Status-get: 0 %
2025-12-15_08:16:37 EG.Essz.Jalousie.Sitzfenster.Lamelle 0 %
2025-12-15_08:16:39 EG.Essz.Jalousie.Sitzfenster.Lamelle last-sender: 1.1.4
2025-12-15_08:16:39 EG.Essz.Jalousie.Sitzfenster.Lamelle Pos.Status-get: 60 %
2025-12-15_08:16:39 EG.Essz.Jalousie.Sitzfenster.Lamelle 60 %

Was ist dann der Unterschied zum Senden via "Kommandos direkt nacheinander über das mehrzeilige Kommandofeld".
Das ging ja nicht?

Ich schaue mir jetzt mal noch das an, was Beta-User mit den Pearl Anweisungen gemeint hat.
Ansonsten wäre mein Plan B, Abends fahre ich eigtl. immer nur Jalousie runter. Das funktioniert ja wunderbar mit ASC, morgens verstelle ich entweder die Jalousie Position oder nur die Lamelle. Nicht beides gleichzeitig. Da könnte ich ja so tun, als ob die Lamelle die Position der Jalousie wäre. Dann müsste das ja auch klappen. Die eigentliche Beschattung (Anpassen der Jalousie Position oder Lamelle) mache ich dann mittags via at Befehl.

Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 15 Dezember 2025, 18:16:39
Zitat von: superverbleit am 15 Dezember 2025, 17:12:33Ich schaue mir jetzt mal noch das an, was Beta-User mit den Pearl Anweisungen gemeint hat.
Es ging darum, das ASC-commandTemplate-Attribut zu füllen. Du musst dabei aber beachten: Wird es (irgendwie) gesetzt, gibt es KEINE separaten Anweisungen mehr an die Lamellen. (Das war ein Teil deiner ursprünglichen Konfiguration und damit mit des Problems!) Ergo muss man es dort machen, und u.a. dafür ist/war es auch gedacht.

Man KANN dort Perl verwenden, (z.B. auch um zu prüfen, ob überhaupt gefahren werden soll), aber zwingend ist es nicht. Es sollte z.B. auch gehen, FHEM-Syntax zu verwenden und eine (fhem-) sleep-Anweisung dazuwischenzuschalten, um sicherzustellen, dass das nicht "zu gleichzeitig" passiert (DOIF verwende ich nicht, von daher kann ich auch nicht sagen, was da bei der Abarbeitung der (anscheinend ja getrennten?) Anweisungen passiert).
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 15 Dezember 2025, 20:56:50
my 2 ct: (inspiriert von cmd-ref) - untestet
attr <device> ASC_CommandTemplate {myASCsub($name,$pos,$slatpos,$cause);}
# ...und in der 99_myUtils:
sub myACSsub {
  my ($name,$pos,$slatpos,$cause) = @_;
  fhem("set $name position $pos");
  if ($slatpos ne '-1') {
    fhem("set <Slatdevname> slatposition $slatpos");
  }
  return;
}

Was/wie spielt eigentlich das attr ASC_slatPosCmd_SlatDevice da mit? lt. cmd.ref sollte das ja auch funktionieren!
l.g. erwin
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 16 Dezember 2025, 08:24:33
Zitat von: erwin am 15 Dezember 2025, 20:56:50my 2 ct: (inspiriert von cmd-ref) - untestet
attr <device> ASC_CommandTemplate {myASCsub($name,$pos,$slatpos,$cause);}
# ...und in der 99_myUtils:
sub myACSsub {
  my ($name,$pos,$slatpos,$cause) = @_;
  fhem("set $name position $pos");
  if ($slatpos ne '-1') {
    fhem("set <Slatdevname> slatposition $slatpos");
  }
  return;
}
Das wäre eine "bare metal" Implementierung.

ZitatWas/wie spielt eigentlich das attr ASC_slatPosCmd_SlatDevice da mit? lt. cmd.ref sollte das ja auch funktionieren!
l.g. erwin
Wenn ASC_CommandTemplate gesetzt ist, spielt das andere Attribut schlicht keine Rolle mehr.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 16 Dezember 2025, 09:34:43
Ich habe ja attr DG.Treppenhaus.Jalousie.Position ASC_SlatPosCmd_SlatDevice Lamelle.Absolute:DG.Treppenhaus.Jalousie.Lamellegesetzt und aber
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate set $name Pos.Absolute $pos .
Wenn ich also ASC_CommandTemplate gesetzt habe, ist das attr ASC_SlatPosCmd_SlatDevice nicht mehr relevant.
Dann konnte das ja bei mir so oder so nicht funktionieren, oder?
ASC_CommandTemplate brauche ich aber, damit mein KNX Befehl sauber funktioniert.
Somit ist das ja mit meinem 2. Device zur Lamellenansteuerung schwierig, oder?

Wie bringe ich das dann meinem ASC_CommandTemplate bei, das es 2 Devices zur Ansteuerung braucht, eins für Jalousienposition und eins zur Lamellenansteuerung.

So was funktioniert dann ja für mich auch nicht, mit 2 devices:
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate set $name datapoint 4.LEVEL_2 $slatLevel 4.LEVEL Pos.Absolute $level.

Dann geht das bei mir nur so, wie ihr es mit 99_myUtils beschrieben habt, richtig?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 16 Dezember 2025, 09:48:42
ZitatDann geht das bei mir nur so, wie ihr es mit 99_myUtils beschrieben habt, richtig?
nicht ganz, du kannst natürlich den perlcode auch direkt in das ASC_CommandTemplate einpacken... würde ich aber davon abraten!
Gründe: -Viele Fehlermöglichkeiten beim erstellen.
-gilt dann nur für diese eine Jalousie, jedoch die sub in 99_myUtils kannst du von jeder Jal aufrufen!
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 16 Dezember 2025, 09:58:00
Und mal noch Fragen zu eurer Funktion:

Bei mir würde das dann folgendermaßen aussehen:

attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate {myASCsub($name,$pos,$slatpos,$cause);}
Woher kommen dann pos und slatpos?

Hierher?
attr DG.Treppenhaus.Jalousie.Position ASC_Open_Pos 50:60
attr DG.Treppenhaus.Jalousie.Position ASC_Closed_Pos 100:90

Also morgens ist pos=50 und slatpos=60, abends pos=100 und slatpos=90. Richtig?

Und die KNX Anpassungen für eure Funktion wären dann noch folgende:
# ...und in der 99_myUtils:
sub myACSsub {
  my ($name,$pos,$slatpos,$cause) = @_;
  fhem("set $name Pos.Absolute $pos");
  if ($slatpos ne '-1') {
    fhem("set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos");
  }
  return;
}

Wenn ich eine zeitliche Verzögerung für fhem("set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos"); will (die Lamellen), könnte ich es ja auch noch folgendermaßen abändern:
fhem("define Lamellendelay at +00:02:00 set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos");.

Dann würde auf jeden Fall die Position angefahren und nach 2 Minuten "delay" die Lamelle verstellt, richtig?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 16 Dezember 2025, 10:04:20
Lt cmd-ref werden die Variablen $pos und $slatpos ddurch das ASC-device gesetzt.
Die "Verzögerung" würde ich anders implementieren, ist aber offensichtlich für deinen Aktor nicht nötig.
     fhem("sleep 120 quiet;set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos");
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 16 Dezember 2025, 10:13:17
Es sollte auch funktionieren, beide fhem-Kommandos in commandTemplate einzubauen - ohne Perl, halt wie sonst auch üblich durch Semikolon getrennt (vielleicht doppelt).
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: erwin am 16 Dezember 2025, 10:31:12
...noch eine kleine Verbesserung: der device-name Lamelle wird vom Position device abgeleitet...
sub myASCsub {
  my ($name,$pos,$slatpos,$cause) = @_;
  fhem("set $name Pos.Absolute $pos");
  if ($slatpos ne '-1') {
    my $lname = $name =~ s/Position$/Lamelle/rxms;
    fhem("set $lname Lamelle.Absolute $slatpos");
  }
  return;
}
Damit ist die sub für alle Jal geeignet, falls die Namenskonvention immer so ist.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 16 Dezember 2025, 10:33:33
Zum ausprobieren könnte ich es ja mal ohne die Funktion probieren.
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate set $name Pos.Absolute $pos; set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos;

Mit Verzögerung:
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate set $name Pos.Absolute $pos; sleep 120 quiet; set DG.Treppenhaus.Jalousie.Lamelle Lamelle.Absolute $slatpos;
Wenn ich es via Funktion implementiere, wie kann ich dann den Namen des Lamellendevices mit übergeben?

Ich bräuchte ja dann so was:

attr <device> ASC_CommandTemplate {myASCsub($name,$nameLamelle,$pos,$slatpos,$cause);}
# ...und in der 99_myUtils:
sub myACSsub {
  my ($name,$pos,$slatpos,$cause) = @_;
  fhem("set $name Pos.Absolute $pos");
  if ($slatpos ne '-1') {
    fhem("set $nameLamelle Lamelle.Absolute $slatpos");
  }
  return;
}

Ist das via ASC attr möglich?
Sonst passt es ja erst wieder nur auf ein device, dann macht die Funktion auch keinen Sinn.
Gerade erst gesehen, das Erwin meine Frage schon beantwortet hat. 8) Danke.
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 21 Dezember 2025, 13:28:33
Hallo Leute,
ich bin jetzt endlich dazugekommen, die Funktion in 99_Utils.pm umzusetzen.
Leider bekomme ich noch Fehler im Logfile, bzw. der Aufruf tut nicht richtig, kann mir da jemand weiterhelfen?

Das hier ist ja die Funktion:
sub
myASCsub
{
  my ($name,$pos,$slatpos,$cause) = @_;
  fhem("set $name Pos.Absolute $pos");
  if ($slatpos ne '-1') {
    my $lname = $name =~ s/Position$/Lamelle/rxms;
    fhem("sleep 120 quiet;set $lname Lamelle.Absolute $slatpos");
  }
  return;
}

Aufgerufen via attr ASC_CommandTemplate:
attr DG.Treppenhaus.Jalousie.Position ASC_CommandTemplate {myASCsub($name,$pos,$slatpos,$cause)}
Hier nochmals das aktuelle list:
Internals:
   DEF        2/1/207:dpt5.001:Pos.Status 2/4/200:dpt5.001:Pos.Absolute:nosuffix
   FUUID      5dfcf3ae-f33f-5687-034a-9ed97a3902dc74ea
   IODev      KNX
   KNX_MSGCNT 4
   KNX_RAWMSG C01102w021cf00
   KNX_TIME   2025-12-21 08:52:10
   LASTInputDev KNX
   MSGCNT     4
   NAME       DG.Treppenhaus.Jalousie.Position
   NR         227
   STATE      0 %
   TYPE       KNX
   eventCount 8
   model      dpt5
   GADDETAILS:
     Pos.Absolute:
       CODE       024c8
       MODEL      dpt5.001
       NO         2
       OPTION     
       RDNAMEGET  Pos.Absolute
       RDNAMESET  Pos.Absolute
       SETLIST    :slider,0,1,100
     Pos.Status:
       CODE       021cf
       MODEL      dpt5.001
       NO         1
       OPTION     
       RDNAMEGET  Pos.Status-get
       RDNAMESET  Pos.Status-set
       SETLIST    :slider,0,1,100
   GADTABLE:
     021cf      Pos.Status
     024c8      Pos.Absolute
   Helper:
   READINGS:
     2025-12-06 09:28:39   ASC_Enable      on
     2025-12-21 08:18:38   ASC_Time_DriveDown 21.12.2025 - 17:30
     2025-12-21 08:18:38   ASC_Time_DriveUp 22.12.2025 - 08:19
     2025-12-20 13:48:53   IODev           KNX
     2025-12-21 08:52:11   Pos.Absolute    0 %
     2025-12-21 08:52:10   Pos.Status-get  0 %
     2025-12-20 13:48:48   associatedWith  AutoShuttersControl
     2025-12-21 08:52:10   last-sender     1.1.2
     2025-12-21 08:52:10   state           0 %
Attributes:
   ASC        1
   ASC_BrightnessSensor Aussenbereich.DachOst.Lux 150:15
   ASC_Closed_Pos 80:90
   ASC_CommandTemplate {myASCsub($name,$pos,$slatpos,$cause)}
   ASC_Down   astro
   ASC_Drive_Delay 300
   ASC_Drive_DelayStart 65
   ASC_Open_Pos 50:60
   ASC_Pos_Reading Pos.Status-get
   ASC_Time_Down_Early 17:30
   ASC_Time_Down_Late 22:00
   ASC_Time_Up_Early 06:30
   ASC_Time_Up_Late 08:30
   ASC_Time_Up_WE_Holiday 08:00
   ASC_Up     astro
   IODev      KNX
   group      Jalousien
   icon       fts_shutter_updown
   room       Flur_DG
   userattr   ASC_Adv:on,off ASC_Antifreeze:off,soft,hard,am,pm ASC_Antifreeze_Pos:5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100 ASC_AutoAstroModeEvening:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeEveningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_AutoAstroModeMorning:REAL,CIVIL,NAUTIC,ASTRONOMIC,HORIZON ASC_AutoAstroModeMorningHorizon:-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9 ASC_BlockingTime_afterManual ASC_BlockingTime_beforeDayOpen ASC_BlockingTime_beforeNightClose ASC_BrightnessSensor ASC_Closed_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_ComfortOpen_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_CommandTemplate ASC_Down:time,astro,brightness,roommate ASC_DriveUpMaxDuration ASC_Drive_Delay ASC_Drive_DelayStart ASC_ExternalTrigger ASC_GuestRoom:on,off ASC_LockOut:soft,hard,off ASC_LockOut_Cmd:inhibit,blocked,protection ASC_Mode_Down:absent,always,off,home ASC_Mode_Up:absent,always,off,home ASC_Open_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_Partymode:on,off ASC_Pos_Reading ASC_PrivacyDownValue_beforeNightClose ASC_PrivacyDown_Pos ASC_PrivacyUpValue_beforeDayOpen ASC_PrivacyUp_Pos ASC_RainProtection:on,off ASC_Roommate_Device ASC_Roommate_Reading ASC_Self_Defense_AbsentDelay ASC_Self_Defense_Mode:absent,gone,off ASC_Shading_BetweenTheTime ASC_Shading_InOutAzimuth ASC_Shading_MinMax_Elevation ASC_Shading_Min_OutsideTemperature ASC_Shading_Mode:absent,always,off,home ASC_Shading_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Shading_StateChange_SunnyCloudy ASC_Shading_WaitingPeriod ASC_Shutter_IdleDetection ASC_ShuttersPlace:window,terrace,awning,EG_window ASC_SlatPosCmd_SlatDevice ASC_Sleep_Pos:0,10,20,30,40,50,60,70,80,90,100 ASC_TempSensor ASC_Time_Down_Early ASC_Time_Down_Late ASC_Time_Up_Early ASC_Time_Up_Late ASC_Time_Up_WE_Holiday ASC_Up:time,astro,brightness,roommate ASC_Ventilate_Pos:10,20,30,40,50,60,70,80,90,100 ASC_Ventilate_Window_Open:on,off ASC_WiggleValue ASC_WindParameters ASC_WindProtection:on,off ASC_WindowRec ASC_WindowRec_PosAfterDayClosed:open,lastManual ASC_WindowRec_subType:twostate,threestate
   webCmd     Pos.Absolute
   widgetOverride Pos.Absolute:slider,0,1,100

Hier die Fehler logs:
ASC_DEBUG!!! 2025.12.21 08:18:38 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - versetztes fahren
ASC_DEBUG!!! 2025.12.21 08:18:38 - FnSetDriveCmd: DG.Treppenhaus.Jalousie.Position - NoDelay: NEIN
ASC_DEBUG!!! 2025.12.21 08:18:38 - FnShuttersCommandSet: DG.Treppenhaus.Jalousie.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür
ASC_DEBUG!!! 2025.12.21 08:21:15 - FnSetCmdFn: DG.Treppenhaus.Jalousie.Position - Rollo wird gefahren, aktuelle Position: 100, Zielposition: 50. Grund der Fahrt: day open
2025.12.21 08:21:15 1: ERROR evaluating my $cause=   $evalSpecials->{'$cause'};my $name=   $evalSpecials->{'$name'};my $pos=   $evalSpecials->{'$pos'};my $slatPos=   $evalSpecials->{'$slatPos'};{myASCsub($name,$pos,$slatpos,$cause)}: Global symbol "$slatpos" requires explicit package name (did you forget to declare "my $slatpos"?) at (eval 11428) line 1

Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 21 Dezember 2025, 13:33:47
In der commandref heißt der bemängelte Parameter auch anders... Schon mal da reingeschaut?!?
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 22 Dezember 2025, 21:27:28
So klappt es jetzt, bin zufrieden.
Danke für eure Hilfe. :)
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: superverbleit am 22 Januar 2026, 21:18:52
Hallo,

jetzt ergibt sich doch nochmals ein Problem.
Wenn ich bei einer Jalousie nur die Lamellen verstellen will, funktioniert der oben beschriebene Weg leider nicht.
Es gibt einen Check, der wohl zu Beginn die Position prüft, und wenn Ziel-Pos = Ist-Pos abbricht.
Das hat dann auch zur Folge, das die Lamellen auch nicht gestellt werden.
Im Log sieht es dann folgendermaßen aus:
ASC_DEBUG!!! 2026.01.22 17:30:02 - FnSetDriveCmd: EG.Wohnz.Jalousie.FrontLinks.Position - versetztes fahren
ASC_DEBUG!!! 2026.01.22 17:30:02 - FnSetDriveCmd: EG.Wohnz.Jalousie.FrontLinks.Position - NoDelay: NEIN
ASC_DEBUG!!! 2026.01.22 17:30:02 - FnShuttersCommandSet: EG.Wohnz.Jalousie.FrontLinks.Position - Das Rollo wird gefahren. Kein Partymodus aktiv und das zugordnete Fenster ist entweder nicht offen oder keine Terassentür
ASC_DEBUG!!! 2026.01.22 17:33:53 - FnSetCmdFn: EG.Wohnz.Jalousie.FrontLinks.Position - Abbruch aktuelle Position ist gleich der Zielposition 98=98

Hat jemand eine Idee, wie ich die Lamellen trotzdem via ASC gestellt bekomme?
 
Titel: Aw: KNX Jalousiesteuerung mit AutoShuttersControl
Beitrag von: Beta-User am 22 Januar 2026, 21:59:19
Dann musst du halt doch geringfügig andere Positionen auch für die Behanghöhe angegeben.