FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: dbox2user am 12 Oktober 2016, 20:43:23

Titel: [gelöst] HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 12 Oktober 2016, 20:43:23
Hi Leute!
Was das Thema Homematic angeht bin ich gerade noch am Anfang beim Lernen ... ;)
Bisher habe ich einen Max Cube zum Cuno/CUL umgeflasht. Darüber "funke" ich nun zu Homematic.
Das ganze läuft auch über eine virtuelle CCU  (VCCU).

Den Rolladenaktor HM-LC-Bl1PBU-FM mit integrierten Tastern habe ich mit der VCCU gepairt und kann ihn problemlos aus Fhem ansteuern bzw bekomme alle Rückmeldungen. Per Fhem kann ich auch vorgeben " Fahre auf die Position 60%".
Nun würde ich das gerne per Tastendruck am Gerät selbst auch machen....
...um die Sonneneintrahlung und damit das Aufheizen des Raumes zu verhindern, soll das Rollo bei einem langen Tastendruck des HM-LC-Bl1PBU-FM auf 60% fahren.
Bei einem kurzen Tastendruck soll ganz normal die jeweilige Endlage angefahren werden.

Kann ich das irgendwie einstellen???

Über das Attribut "expert    1_allReg" sehe ich bereits eine lange Liste mit den den Registerinhalten.
Über deren Funktionen kann ich leider nur spekulieren. :o

Im Forum habe ich leider nur die Info gefunden, wie man die Unterscheidung von langen und kurzen Tastendruck vertauschen kann.
https://forum.fhem.de/index.php?topic=34575.0

Wäre super wenn jemand helfen kann!
Danke schonmal!

Gruß,
Christian
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 16 Oktober 2016, 08:21:33
Hat keiner ein Idee? :-\
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: martinp876 am 19 Oktober 2016, 20:22:03
Hast du es mit schon onlevel probiert?
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 20 Oktober 2016, 20:31:41
Hallo Martin!
Ich habe mal testweise:set HM_29CFE2 regSet lgOnLevel 60 self01
und
set HM_29CFE2 regSet lgOnLevel 60 self02

eingegeben, in der Hoffnung dass beim langen drücken der Rollo auf 60% fährt und dann stoppt.

In den Readings hat das Gerät die 60% übernommen.
Die Funktion hat sich leider nicht geändert.... das Rollo fährt solange, wie ich die Taste gedrückt halte und stoppt sobald ich loslasse. :-[

Noch eine Idee??? ::)
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 20 Oktober 2016, 20:52:48
Anbei noch eine Liste mit den vorhandenen Readings.
Vielleicht bekommt einer eine Idee wenn er die Readings sieht.
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 13 Mai 2017, 22:05:33
Hallo Ihr HomeMatic´ler!

Ich möchte dieses Thema nochmal hochholen, in der Hoffnung dass vielleicht mittlerweile jemand eine Idee hat.  :)
Wie geschrieben, ich möchte eigentlich "nur", dass mein Rollo bei kurzem Tastendruck in Endlage fährt (das tut er bereits standartmäßig) und bei langem Tastendruck soll er die Position 60% anfahren.

Ist das wirklich nicht möglich?  :o

Gruß,
Christian
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: MasterCom am 14 Mai 2017, 11:54:07
Hallo,
ich habe genau das gleiche Problem und würde mich um eine Lösung freuen.
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: Otto123 am 15 Mai 2017, 12:36:22
Zitat von: dbox2user am 13 Mai 2017, 22:05:33
Ist das wirklich nicht möglich?  :o
Hi Christian,

meine erste antwort wäre: das ist mit dem Standard ( also ohne Modifikation des Gerätes) nicht möglich.
Mit einem separaten Taster ginge das einfach.

Allerdings bin ich über die Registerprogrammierung zu unwissend, kann sein, dass damit doch was geht. Dazu müsste dann nach  meiner Überlegung nicht nur lgOnLevel gesetzt werden sondern auch die Standardreaktion (langer Tastendruck fährt solange wie gedrückt) abgeschaltet und auf lgOnLevel "umgelenkt" werden - Stichwort Statemachine.

Gruß Otto
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 19 Mai 2017, 15:00:16
Hallo Otto,

danke schonmal dass Du überhaupt eine Antwort geschrieben hast!  :)
Bisher hatten nicht sehr viele eine Idee , wie man das Problem lösen kann.
Achja ... und noch ein großes Lob für Deine tollen Blog mit den ganzen Anleitungen!  :)

Dass die Grundfunktion (Taster fährt so lange wie gedrückt) erstmal raus muss klingt einleuchtend.
Da werde ich noch etwas herumprobieren.

Leider habe ich mit Homematic und dessen Registern noch nicht viel Ahnung... habe produktiv bisher gar kein Homematic im Einsatz.
Habe bisher nur zum "Herumspielen" einen umgeflashten Cube als CUL, einen Heizkörperthermostat und diesen Rolladenschalter.
Wobei der Rolladenschalter sofort eingebaut werden würde, wenn ich das mit dem Zielposition anfahren hinbekommen würde.  :)

@ MasterCom: "Schön" , dass es noch weitere Leidensgenossen gibt.  ;)


Gruß,
Christian
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: rvideobaer am 19 Mai 2017, 15:21:52
Hallo,

und wenn Du mal versuchst "lgOnDly" auf eine größere Zeit als 0 s einzustellen. Ich weis ja jetzt nicht wie lange dein Rollo läuft aber bei mir sind es etwas über 30 s  also denke ich müssten es vielleicht 20 s sein?

Gruß Rolf
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: Pfriemler am 19 Mai 2017, 22:14:38
Spannende Sache ...
Klar: Extra Taster, Notify/Doif, pct setzen, fertich. Aber Register?
Also ich habe jetzt mal die Register durchsucht zur Frage "Betriebsmodus bei langem Tastendruck" ... ich habe das Teil seit drei Tagen im Produktiveinsatz für eine Markise und kann daher nicht wirklich mitreden. Trotzdem nur als Idee ...
lgMultiExec von "on" auf "off" - möglich dass das die Statemachine beeinflusst und so ein langer Tastendruck nur als einmaliger Trigger interpretiert wird, wie bei Schaltern. Allerdings ist das bei denen auch "on".
"lgOnDelay" würde ich als Verzögerung bezüglich einer Reaktion auf langen Trigger interpretieren, d.h. der Rolladen fährt erst nach x Wartezeit tatsächlich los. Bei Rolläden macht das irgendwie wenig Sinn ...
Manipulationen bezüglich "driveUp" und driveDown" beziehen sich ja auf den Aktor als ganzes.
Aber die Idee mit lgOnLevel klingt dennoch plausibel. Beim internen Taster sind die Richtungen ja bereits "entzerrt".
Aber die Idee insgesamt interessiert mich auch, stay tuned :-)
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: martinp876 am 20 Mai 2017, 09:41:00
Klar. Multiexec Off. Long soll nur als ein Kommando erkannt werden.
Dann über die statemachine festlegen, was gemacht werden soll. Auf oder zu. Und die Endstellung. Eigentlich kannst du die Register des short kopieren und den Endwert einstellen.
Tip (auch wenn ich nerve) erstellen aus den short ein template. Setze den Endwert als Parameter und los geht's. Wende das template auf short mit 100% an und auf Long mit 50%. Sollte bedienerfreundlich sein.
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: pwlr am 20 Mai 2017, 11:35:31
Moin,

ich habe etwas Ähnliches mit einem externen Device als Taster in Betrieb, allerdings mit einem HM-LC-BL1-FM. Ich glaube aber, dass der Unterschied zum HM-LC-Bl1PBU-FM nur in Bezug auf die eingebauten Tasten besteht.

Also, für den Taster den Du nutzen willlst (self01 oder self02) :

lgMultiExec off
lgOnLevel 60  (für 60% -> Fahrtrichtung 1)
lgOffLevel 60 (für 60% -> Fahrtrichtung 2)

Das mit der Fahrtrichtung (hoch oder runter) und den Schaltern self01 und self02 ist tricki, weil es von Deiner Verkabelung und der Einbaulage des Schalters abhängt. Eventuell musst Du den Level auch auf 40% setzen. Ist alles sehr individuell !

Und dann gibt es noch ein kleines Problem, die Level lassen sich nicht wieder auf 100 setzen, sondern nur max auf 99. Da scheint mir ein Fehler im fhem zu sein. Ein Rücksetzen ist dann nur noch über ein Reset des Devices möglich (vielleicht ist dieser Fehler inzwischen auch weg, habe ich lange nicht mehr probiert...)

Viel Erfolg !

Bernd
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 20 Mai 2017, 12:00:57
Hey,
Danke für die vielen Antworten!  :)

Ich habe jetzt mal vieles herum probiert und grundsätzlich funktioniert das schonmal!  ;D
Mein Testaufbau ist so, dass die Endlagen jeweils nach 10 Sekunden anfahren sind.
(Also driveDown & Up jeweils 10 Sekunden)


Taster 1:
set HM_29CFE2 regSet lgMultiExec off self01 Damit grundsätzlich die Unterscheidung zwischen lang und kurz funktioniert;
set HM_29CFE2 regSet lgMaxTimeF 8 self01 Bei langem Tastendruck fährt der Motor MAXIMAL für 8 Sekunden
set HM_29CFE2 regSet lgOnTime unused self01
set HM_29CFE2 regSet lgOnLevel 50 self01 Motor fährt auf Position 50% --geht aber nicht--


Taster 2:
set HM_29CFE2 regSet lgMultiExec off self02 Damit grundsätzlich die Unterscheidung zwischen lang und kurz funktioniert;
set HM_29CFE2 regSet lgMaxTimeF 8 self02 Bei langem Tastendruck fährt der Motor MAXIMAL für 8 Sekunden
set HM_29CFE2 regSet lgOnTime unused self02
set HM_29CFE2 regSet lgOnLevel 60 self02 Motor fährt auf Position 60% --> fährt aber 40% an. (100%-60% = 40%)



Komisch ist nur, dass beim Taster "self01"  nicht die 50% angefahren werden, sondern der Motor erst nach den 8 Sekunden anhält.  :o
Notfalls kann ich damit leben und setze einfach die maximale Fahrzeit auf die Fahrzeit zu dem gewünschten Punkt... aber merkwürdig ist das schon, da es beim "self02" sauber funktioniert.

Gruß,
Christian

:D  :D  :D
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: Pfriemler am 20 Mai 2017, 16:00:38
1. zu den Prozenten: Hast Du evtl. "attr ... param levelInverse" in FHEM gesetzt? Dann interpretiert FHEM den Aktor stets mit 100%= ausgefahren und 0% = eingefahren - default ist es umgekehrt.  Ich habe das z.B. bei mir gesetzt, damit es kompatibel zu den Rademacher-Rolläden ist (und vielen anderen). Mit meiner Displayfernbedienung (HM-RC-Dis-H-x-EU) sehe ich die Pegel dann auch "verkehrtrum" (rsp. original). Das könnte auch eine mögliche Erklärung für die Differenz 60-40 sein.

2. self01 ist doch unten, resp. normalerweise aus. Probiere doch mal stattdessen lgOffLevel:
set HM_29CFE2 regSet lgOffLevel 50 self01
Das ist auch genau das was User pwlr alias Bernd meint.

MaxTimeF kannte ich noch nicht, danke für den Tipp.
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: pwlr am 21 Mai 2017, 01:19:10
Moin,

ich würde den maxTimeF wieder auf "unused" stellen. Die Laufzeit und damit die Position bestimmst Du ja über die Register driveUp und driveDown im Zusammenspiel mit den lgOnLevel oder lgOfflevel. Sonst hast Du eine Doppeldefinition - allerdings ist mir die Auswirkung von maxTimeF nicht wirklich klar. In meiner Installation nutze ich das Register nicht.

Mal ne Frage zum Verständnis : Wenn die Jalousie oben ist, hast Du dann 100% oder 0% im Reading pct ??

Hier mal meine Register zur Info, allerdings für short. Damit wird von einem Peer gezielt auf 12% gefahren.
shActionType jmpToTarget
shCtDlyOff geLo
shCtDlyOn geLo
shCtOff geLo
shCtOn geLo
shCtRampOff geLo
shCtRampOn geLo
shCtRefOff geLo
shCtRefOn geLo
shCtValHi 100
shCtValLo 50
shMultiExec off
shOffDly 0 s
shOffTime unused
shOffTimeMode absolut
shOnDly 0 s
shOnTime unused
shOnTimeMode absolut
shBlJtDlyOff no
shBlJtDlyOn no
shBlJtOff refOn
shBlJtOn refOn
shBlJtRampOff refOn
shBlJtRampOn on
shBlJtRefOff off
shBlJtRefOn on
shDriveMode direct
shMaxTimeF unused
shOffLevel 0%
shOnLevel 12%


Moin
Bernd
Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: Damu am 21 Mai 2017, 18:49:42
]] (//http://)https://forum.fhem.de/index.php/topic,25118.msg183262.html#msg183262[/url]

Bei mir gehen die Storren beim kurzen drücken nach unten auf die Position 40%

Das hab ich am Aktor mit der Homematic Software eingestellt.
Geht da über die Experteneinstellungen.

Das sollte aber glaube ich auch für langes drücken möglich sein.
Muss mal schauen wie ich die eingestellten Werte über Fhem auslesen kann.
Dann sollte es ersichtlich sein, hab nur einen Aktor der so ist.


ZitatStore_Parkplatz type:blindActuator -
list:peer   register         :value
   0:         intKeyVisib      :visib
   0:         pairCentral      :0x2572A2
   1:         driveDown        :38 s
   1:         driveTurn        :2 s
   1:         driveUp          :37 s
   1:         refRunCounter    :0
   1:         sign             :off
   3:FB_A_Bnt_11   lgActionType     :jmpToTarget
   3:FB_A_Bnt_11   lgBlJtDlyOff     :refOff
   3:FB_A_Bnt_11   lgBlJtDlyOn      :dlyOff
   3:FB_A_Bnt_11   lgBlJtOff        :dlyOff
   3:FB_A_Bnt_11   lgBlJtOn         :dlyOff
   3:FB_A_Bnt_11   lgBlJtRampOff    :rampOff
   3:FB_A_Bnt_11   lgBlJtRampOn     :on
   3:FB_A_Bnt_11   lgBlJtRefOff     :rampOff
   3:FB_A_Bnt_11   lgBlJtRefOn      :on
   3:FB_A_Bnt_11   lgCtDlyOff       :geLo
   3:FB_A_Bnt_11   lgCtDlyOn        :geLo
   3:FB_A_Bnt_11   lgCtOff          :geLo
   3:FB_A_Bnt_11   lgCtOn           :geLo
   3:FB_A_Bnt_11   lgCtRampOff      :geLo
   3:FB_A_Bnt_11   lgCtRampOn       :geLo
   3:FB_A_Bnt_11   lgCtRefOff       :geLo
   3:FB_A_Bnt_11   lgCtRefOn        :geLo
   3:FB_A_Bnt_11   lgCtValHi        :100
   3:FB_A_Bnt_11   lgCtValLo        :50
   3:FB_A_Bnt_11   lgDriveMode      :direct
   3:FB_A_Bnt_11   lgMaxTimeF       :0.8 s
   3:FB_A_Bnt_11   lgMultiExec      :on
   3:FB_A_Bnt_11   lgOffDly         :0 s
   3:FB_A_Bnt_11   lgOffLevel       :0 %
   3:FB_A_Bnt_11   lgOffTime        :unused
   3:FB_A_Bnt_11   lgOffTimeMode    :absolut
   3:FB_A_Bnt_11   lgOnDly          :0 s
   3:FB_A_Bnt_11   lgOnLevel        :100 %
   3:FB_A_Bnt_11   lgOnTime         :unused
   3:FB_A_Bnt_11   lgOnTimeMode     :absolut
   3:FB_A_Bnt_11   shActionType     :jmpToTarget
   3:FB_A_Bnt_11   shBlJtDlyOff     :refOff
   3:FB_A_Bnt_11   shBlJtDlyOn      :dlyOff
   3:FB_A_Bnt_11   shBlJtOff        :dlyOff
   3:FB_A_Bnt_11   shBlJtOn         :dlyOff
   3:FB_A_Bnt_11   shBlJtRampOff    :rampOff
   3:FB_A_Bnt_11   shBlJtRampOn     :on
   3:FB_A_Bnt_11   shBlJtRefOff     :rampOff
   3:FB_A_Bnt_11   shBlJtRefOn      :on
   3:FB_A_Bnt_11   shCtDlyOff       :geLo
   3:FB_A_Bnt_11   shCtDlyOn        :geLo
   3:FB_A_Bnt_11   shCtOff          :geLo
   3:FB_A_Bnt_11   shCtOn           :geLo
   3:FB_A_Bnt_11   shCtRampOff      :geLo
   3:FB_A_Bnt_11   shCtRampOn       :geLo
   3:FB_A_Bnt_11   shCtRefOff       :geLo
   3:FB_A_Bnt_11   shCtRefOn        :geLo
   3:FB_A_Bnt_11   shCtValHi        :100
   3:FB_A_Bnt_11   shCtValLo        :50
   3:FB_A_Bnt_11   shDriveMode      :viaUpperEnd
   3:FB_A_Bnt_11   shMaxTimeF       :unused
   3:FB_A_Bnt_11   shMultiExec      :off
   3:FB_A_Bnt_11   shOffDly         :0 s
   3:FB_A_Bnt_11   shOffLevel       :40 %
   3:FB_A_Bnt_11   shOffTime        :unused
   3:FB_A_Bnt_11   shOffTimeMode    :absolut
   3:FB_A_Bnt_11   shOnDly          :0 s
   3:FB_A_Bnt_11   shOnLevel        :100 %
   3:FB_A_Bnt_11   shOnTime         :unused
   3:FB_A_Bnt_11   shOnTimeMode     :absolut
   3:FB_A_Bnt_12   lgActionType     :jmpToTarget
   3:FB_A_Bnt_12   lgBlJtDlyOff     :dlyOn
   3:FB_A_Bnt_12   lgBlJtDlyOn      :refOn
   3:FB_A_Bnt_12   lgBlJtOff        :dlyOn
   3:FB_A_Bnt_12   lgBlJtOn         :dlyOn
   3:FB_A_Bnt_12   lgBlJtRampOff    :off
   3:FB_A_Bnt_12   lgBlJtRampOn     :rampOn
   3:FB_A_Bnt_12   lgBlJtRefOff     :off
   3:FB_A_Bnt_12   lgBlJtRefOn      :rampOn
   3:FB_A_Bnt_12   lgCtDlyOff       :geLo
   3:FB_A_Bnt_12   lgCtDlyOn        :geLo
   3:FB_A_Bnt_12   lgCtOff          :geLo
   3:FB_A_Bnt_12   lgCtOn           :geLo
   3:FB_A_Bnt_12   lgCtRampOff      :geLo
   3:FB_A_Bnt_12   lgCtRampOn       :geLo
   3:FB_A_Bnt_12   lgCtRefOff       :geLo
   3:FB_A_Bnt_12   lgCtRefOn        :geLo
   3:FB_A_Bnt_12   lgCtValHi        :100
   3:FB_A_Bnt_12   lgCtValLo        :50
   3:FB_A_Bnt_12   lgDriveMode      :direct
   3:FB_A_Bnt_12   lgMaxTimeF       :0.8 s
   3:FB_A_Bnt_12   lgMultiExec      :on
   3:FB_A_Bnt_12   lgOffDly         :0 s
   3:FB_A_Bnt_12   lgOffLevel       :0 %
   3:FB_A_Bnt_12   lgOffTime        :unused
   3:FB_A_Bnt_12   lgOffTimeMode    :absolut
   3:FB_A_Bnt_12   lgOnDly          :0 s
   3:FB_A_Bnt_12   lgOnLevel        :100 %
   3:FB_A_Bnt_12   lgOnTime         :unused
   3:FB_A_Bnt_12   lgOnTimeMode     :absolut
   3:FB_A_Bnt_12   shActionType     :jmpToTarget
   3:FB_A_Bnt_12   shBlJtDlyOff     :dlyOn
   3:FB_A_Bnt_12   shBlJtDlyOn      :refOn
   3:FB_A_Bnt_12   shBlJtOff        :dlyOn
   3:FB_A_Bnt_12   shBlJtOn         :dlyOn
   3:FB_A_Bnt_12   shBlJtRampOff    :off
   3:FB_A_Bnt_12   shBlJtRampOn     :rampOn
   3:FB_A_Bnt_12   shBlJtRefOff     :off
   3:FB_A_Bnt_12   shBlJtRefOn      :rampOn
   3:FB_A_Bnt_12   shCtDlyOff       :geLo
   3:FB_A_Bnt_12   shCtDlyOn        :geLo
   3:FB_A_Bnt_12   shCtOff          :geLo
   3:FB_A_Bnt_12   shCtOn           :geLo
   3:FB_A_Bnt_12   shCtRampOff      :geLo
   3:FB_A_Bnt_12   shCtRampOn       :geLo
   3:FB_A_Bnt_12   shCtRefOff       :geLo
   3:FB_A_Bnt_12   shCtRefOn        :geLo
   3:FB_A_Bnt_12   shCtValHi        :100
   3:FB_A_Bnt_12   shCtValLo        :50
   3:FB_A_Bnt_12   shDriveMode      :direct
   3:FB_A_Bnt_12   shMaxTimeF       :unused
   3:FB_A_Bnt_12   shMultiExec      :off
   3:FB_A_Bnt_12   shOffDly         :0 s
   3:FB_A_Bnt_12   shOffLevel       :0 %
   3:FB_A_Bnt_12   shOffTime        :unused
   3:FB_A_Bnt_12   shOffTimeMode    :absolut
   3:FB_A_Bnt_12   shOnDly          :0 s
   3:FB_A_Bnt_12   shOnLevel        :100 %
   3:FB_A_Bnt_12   shOnTime         :unused
   3:FB_A_Bnt_12   shOnTimeMode     :absolut
   3:self01   lgActionType     :jmpToTarget
   3:self01   lgBlJtDlyOff     :dlyOn
   3:self01   lgBlJtDlyOn      :refOn
   3:self01   lgBlJtOff        :dlyOn
   3:self01   lgBlJtOn         :dlyOn
   3:self01   lgBlJtRampOff    :off
   3:self01   lgBlJtRampOn     :rampOn
   3:self01   lgBlJtRefOff     :off
   3:self01   lgBlJtRefOn      :rampOn
   3:self01   lgCtDlyOff       :geLo
   3:self01   lgCtDlyOn        :geLo
   3:self01   lgCtOff          :geLo
   3:self01   lgCtOn           :geLo
   3:self01   lgCtRampOff      :geLo
   3:self01   lgCtRampOn       :geLo
   3:self01   lgCtRefOff       :geLo
   3:self01   lgCtRefOn        :geLo
   3:self01   lgCtValHi        :100
   3:self01   lgCtValLo        :50
   3:self01   lgDriveMode      :direct
   3:self01   lgMaxTimeF       :0.5 s
   3:self01   lgMultiExec      :on
   3:self01   lgOffDly         :0 s
   3:self01   lgOffLevel       :0 %
   3:self01   lgOffTime        :unused
   3:self01   lgOffTimeMode    :absolut
   3:self01   lgOnDly          :0 s
   3:self01   lgOnLevel        :100 %
   3:self01   lgOnTime         :unused
   3:self01   lgOnTimeMode     :absolut
   3:self01   shActionType     :jmpToTarget
   3:self01   shBlJtDlyOff     :dlyOn
   3:self01   shBlJtDlyOn      :refOn
   3:self01   shBlJtOff        :dlyOn
   3:self01   shBlJtOn         :dlyOn
   3:self01   shBlJtRampOff    :off
   3:self01   shBlJtRampOn     :rampOn
   3:self01   shBlJtRefOff     :off
   3:self01   shBlJtRefOn      :rampOn
   3:self01   shCtDlyOff       :geLo
   3:self01   shCtDlyOn        :geLo
   3:self01   shCtOff          :geLo
   3:self01   shCtOn           :geLo
   3:self01   shCtRampOff      :geLo
   3:self01   shCtRampOn       :geLo
   3:self01   shCtRefOff       :geLo
   3:self01   shCtRefOn        :geLo
   3:self01   shCtValHi        :100
   3:self01   shCtValLo        :50
   3:self01   shDriveMode      :direct
   3:self01   shMaxTimeF       :unused
   3:self01   shMultiExec      :off
   3:self01   shOffDly         :0 s
   3:self01   shOffLevel       :0 %
   3:self01   shOffTime        :unused
   3:self01   shOffTimeMode    :absolut
   3:self01   shOnDly          :0 s
   3:self01   shOnLevel        :100 %
   3:self01   shOnTime         :unused
   3:self01   shOnTimeMode     :absolut
   3:self02   lgActionType     :jmpToTarget
   3:self02   lgBlJtDlyOff     :refOff
   3:self02   lgBlJtDlyOn      :refOn
   3:self02   lgBlJtOff        :dlyOn
   3:self02   lgBlJtOn         :dlyOff
   3:self02   lgBlJtRampOff    :off
   3:self02   lgBlJtRampOn     :on
   3:self02   lgBlJtRefOff     :off
   3:self02   lgBlJtRefOn      :on
   3:self02   lgCtDlyOff       :geLo
   3:self02   lgCtDlyOn        :geLo
   3:self02   lgCtOff          :geLo
   3:self02   lgCtOn           :geLo
   3:self02   lgCtRampOff      :geLo
   3:self02   lgCtRampOn       :geLo
   3:self02   lgCtRefOff       :geLo
   3:self02   lgCtRefOn        :geLo
   3:self02   lgCtValHi        :100
   3:self02   lgCtValLo        :50
   3:self02   lgDriveMode      :direct
   3:self02   lgMaxTimeF       :0.5 s
   3:self02   lgMultiExec      :on
   3:self02   lgOffDly         :0 s
   3:self02   lgOffLevel       :0 %
   3:self02   lgOffTime        :unused
   3:self02   lgOffTimeMode    :absolut
   3:self02   lgOnDly          :0 s
   3:self02   lgOnLevel        :100 %
   3:self02   lgOnTime         :unused
   3:self02   lgOnTimeMode     :absolut
   3:self02   shActionType     :jmpToTarget
   3:self02   shBlJtDlyOff     :rampOff
   3:self02   shBlJtDlyOn      :rampOff
   3:self02   shBlJtOff        :rampOff
   3:self02   shBlJtOn         :rampOff
   3:self02   shBlJtRampOff    :off
   3:self02   shBlJtRampOn     :on
   3:self02   shBlJtRefOff     :off
   3:self02   shBlJtRefOn      :on
   3:self02   shCtDlyOff       :geLo
   3:self02   shCtDlyOn        :geLo
   3:self02   shCtOff          :geLo
   3:self02   shCtOn           :geLo
   3:self02   shCtRampOff      :geLo
   3:self02   shCtRampOn       :geLo
   3:self02   shCtRefOff       :geLo
   3:self02   shCtRefOn        :geLo
   3:self02   shCtValHi        :100
   3:self02   shCtValLo        :50
   3:self02   shDriveMode      :viaUpperEnd
   3:self02   shMaxTimeF       :unused
   3:self02   shMultiExec      :off
   3:self02   shOffDly         :0 s
   3:self02   shOffLevel       :40 %
   3:self02   shOffTime        :unused
   3:self02   shOffTimeMode    :absolut
   3:self02   shOnDly          :0 s
   3:self02   shOnLevel        :100 %
   3:self02   shOnTime         :unused
   3:self02   shOnTimeMode     :absolut

Das (3:self02   shDriveMode      :viaUpperEnd)  hab ich anders.
Bei mir ist ON 100 OBEN und OFF 0 UNTEN.
Die Storre darf nie auf 0 OFF UNTEN gehen.
ViaUpperEnd macht das die Storre beim Tastendruck nach unten immer zuerst auf ON 100 OBEN geht und erst dann die 40 anfährt.
Sonnst kann es vorkommen das sie bei FHEM auf 40 steht und tatsächlich auf 20 Steht.

Titel: Antw:HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 04 Juni 2017, 21:58:15
Sorry für die späte Rückmeldung, aber ich konnte das ganze länger nicht anpassen und testen!
Vielen Dank nochmal an alle! Jetzt funktioniert das ganze so wie ich es will!  :D

Entscheidend war "set HM_29CFE2 regSet lgOffLevel 60 self01 ".
lgMaxTimeF MUSS auch angepasst werden, da Standard auf 0,4 Sekunden gestellt ist und der Motor so nur kurz fahren würde.

Hier nochmal wie es bei mir  funktioniert:

Taster 1:
set HM_29CFE2 regSet lgMultiExec off self01 Damit grundsätzlich die Unterscheidung zwischen lang und kurz funktioniert;
set HM_29CFE2 regSet lgMaxTimeF 8 self01 Bei langem Tastendruck fährt der Motor MAXIMAL für 8 Sekunden
set HM_29CFE2 regSet lgOnTime unused self01
set HM_29CFE2 regSet lgOffLevel 60 self01 Motor fährt auf Position 40% -->  (100%-60% = 40%; wegen Attribut "levelInverse")


Taster 2:
set HM_29CFE2 regSet lgMultiExec off self02 Damit grundsätzlich die Unterscheidung zwischen lang und kurz funktioniert;
set HM_29CFE2 regSet lgMaxTimeF 8 self02 Bei langem Tastendruck fährt der Motor MAXIMAL für 8 Sekunden
set HM_29CFE2 regSet lgOnTime unused self02
set HM_29CFE2 regSet lgOnLevel 60 self02 Motor fährt auf Position 40% -->  (100%-60% = 40%; wegen Attribut "levelInverse")


Gruß,
Christian
Titel: Antw:[gelöst] HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: martinp876 am 05 Juni 2017, 07:16:53
Zitatset HM_29CFE2 regSet lgMultiExec off self01         Damit grundsätzlich die Unterscheidung zwischen lang und kurz funktioniert;
Multiexec ist für "long" interessant. ein "long" sender schickt alle paar hundert ms einen "folgetrigger". Bei multiexec ON wird auf jeden Trigger reagiert. Du willst aber nur einmal "erkennen" und gut. Also "off" schalten.
Der Kommentar ist also falsch.
Zitatset HM_29CFE2 regSet lgMaxTimeF 8 self01         Bei langem Tastendruck fährt der Motor MAXIMAL für 8 Sekunden
auch falsch - zumindest unvollständign und irreführend.
maxTimeFirst sagt, dass beim Erkennen eines Triggers der Motor 8sec fahren soll (es sei den, eine andere Endbedingung ist erreicht). da du multiexec "off" hast kommt das auch nur einmal dran. Ansonsten wird das bei jeden Folge-Trigger wiederholt. Also bei dir: ja. Das ist aber ein Sonderfall - der Kommentar verwirrt andere User.
Sinnvoll wäre es,  hier "unused" einzutragen. Das macht bei "ein-trigger" aktionen sinn (also "short" - und bei dir das an ein short angepasste "long")

MaxTimeF wird typisch an die wiederholzeit des Triggers angepasst in welcher der Sender re-triggert (bei long). Das gewährleistet ein ruckelfreies fahren.
Titel: Antw:[gelöst] HM-LC-Bl1PBU-FM bei langem Tastendruck bestimmte Position anfahren
Beitrag von: dbox2user am 05 Juni 2017, 15:17:47
Hallo Martin!
Nachdem Du hier der Administrator bist und dich anscheinend gut auskennst , darfst du gerne meine Kommentare entsprechend anpassen, dass sie richtig sind.
Andere User kann das dann bestimmt helfen.

Wie bereits geschrieben, bin ich beim Thema Homematic blutiger Anfänger.
Meine Kommentare sind lediglich Vermutungen über die einzelnen Bedeutungen,die ich geschrieben habe um anderen evtl zu helfen.
Du scheinst ja die echte Bedeutung zu 'wissen'.

Mir hätte es auch geholfen wenn Du schon früher die Bedeutungen geschrieben hättest.

Gruß
Christian