toggle schaltet HM-LC-SW1PBU-FM nur aus.

Begonnen von bjoernhoefer, 03 Januar 2013, 22:19:38

Vorheriges Thema - Nächstes Thema

madmaxm

Hallo :)

Bin neu hier, und hab da mal ne Frage...

Hab auch einige HM-LC-SW1PBU-FM im Einsatz.
Gibts irgendwo eine Liste, die ich übersehen habe, in der ich die Zuordnung der Hex-Register für diesen Schaltertyp finden kann?

Ich hab mit den Registern herumgespielt, aber bekomme es nicht hin, daß der eingebaute Schalter bei Betätigung oben und auch unten das Licht toggled...
Kann mir da jemand auf die Sprünge helfen?

Meine Register in der FHEM GUI sehen momentan so aus:

RegL_00:             02:81 0A:F8 0B:44 0C:F4 15:FF 00:00
RegL_01:             08:00 00:00
RegL_03:self01    02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:64 0C:66 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:64 8C:66 00:00
RegL_03:self01    02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:13 0C:33 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:13 8C:33 00:00

Die Liste aller Register im Spoiler.
Was ich  auch nicht ganz verstehe, ist, daß die Liste aller Register unten mehr Einträge hat, als oben in der Hex-Liste verfügbar sind.

list:peer register         :value
   0:       intKeyVisib      :visib
   0:       pairCentral      :0xF844F4
   3:self01 lgActionType     :off
   3:self01 lgCtDlyOff       :geLo
   3:self01 lgCtDlyOn        :geLo
   3:self01 lgCtOff          :geLo
   3:self01 lgCtOn           :geLo
   3:self01 lgCtValHi        :100
   3:self01 lgCtValLo        :50
   3:self01 lgMultiExec      :off
   3:self01 lgOffDly         :0 s
   3:self01 lgOffTime        :111600 s
   3:self01 lgOffTimeMode    :absolut
   3:self01 lgOnDly          :0 s
   3:self01 lgOnTime         :111600 s
   3:self01 lgOnTimeMode     :absolut
   3:self01 lgSwJtDlyOff     :off
   3:self01 lgSwJtDlyOn      :off
   3:self01 lgSwJtOff        :off
   3:self01 lgSwJtOn         :dlyOff
   3:self01 shActionType     :jmpToTarget
   3:self01 shCtDlyOff       :geLo
   3:self01 shCtDlyOn        :geLo
   3:self01 shCtOff          :geLo
   3:self01 shCtOn           :geLo
   3:self01 shCtValHi        :100
   3:self01 shCtValLo        :50
   3:self01 shOffDly         :0 s
   3:self01 shOffTime        :111600 s
   3:self01 shOffTimeMode    :absolut
   3:self01 shOnDly          :0 s
   3:self01 shOnTime         :111600 s
   3:self01 shOnTimeMode     :absolut
   3:self01 shSwJtDlyOff     :off
   3:self01 shSwJtDlyOn      :off
   3:self01 shSwJtOff        :off
   3:self01 shSwJtOn         :dlyOff
   3:self02 lgActionType     :off
   3:self02 lgCtDlyOff       :geLo
   3:self02 lgCtDlyOn        :geLo
   3:self02 lgCtOff          :geLo
   3:self02 lgCtOn           :geLo
   3:self02 lgCtValHi        :100
   3:self02 lgCtValLo        :50
   3:self02 lgMultiExec      :off
   3:self02 lgOffDly         :0 s
   3:self02 lgOffTime        :111600 s
   3:self02 lgOffTimeMode    :absolut
   3:self02 lgOnDly          :0 s
   3:self02 lgOnTime         :111600 s
   3:self02 lgOnTimeMode     :absolut
   3:self02 lgSwJtDlyOff     :on
   3:self02 lgSwJtDlyOn      :on
   3:self02 lgSwJtOff        :dlyOn
   3:self02 lgSwJtOn         :on
   3:self02 shActionType     :jmpToTarget
   3:self02 shCtDlyOff       :geLo
   3:self02 shCtDlyOn        :geLo
   3:self02 shCtOff          :geLo
   3:self02 shCtOn           :geLo
   3:self02 shCtValHi        :100
   3:self02 shCtValLo        :50
   3:self02 shOffDly         :0 s
   3:self02 shOffTime        :111600 s
   3:self02 shOffTimeMode    :absolut
   3:self02 shOnDly          :0 s
   3:self02 shOnTime         :111600 s
   3:self02 shOnTimeMode     :absolut
   3:self02 shSwJtDlyOff     :on
   3:self02 shSwJtDlyOn      :on
   3:self02 shSwJtOff        :dlyOn
   3:self02 shSwJtOn         :on

Jedenfalls hab ich die Register 0x0A und 0x8A bereits einmal testweise auf toggleToCtr gesetzt,
was aber nur bewirkt, daß der Wippschalter jetzt oben ausschaltet und unten einschaltet, umgekehrt wir vorher.

Was muss ich denn setzen, um den Wippschalter in den Modus oben toggle und unten toggle zu bekommen?

Danke :)



martinp876

Zitat von: madmaxm schrieb am Fr, 18 Januar 2013 17:59Gibts irgendwo eine Liste, die ich übersehen habe, in der ich die Zuordnung der Hex-Register für diesen Schaltertyp finden kann?
die sind in dem XML files von eQ3.

In FHEM habe ich groessere Teile schon dekodiert. Probiere einmal get <name> reg all. Und get <name> regList

Probiere es bei device und channel - die haben logischerweise unterschiedliche Inhalte.
Ansonsten im Commandref nachsehen.
ZitatIch hab mit den Registern herumgespielt, aber bekomme es nicht hin, daß der eingebaute Schalter bei Betätigung oben und auch unten das Licht toggled...
schon mal was einsteigerdoc durchgesehen? Ist nicht mehr auf dem letzten Stand der FHEM kommandos (es gibt jetzt mehr und einfachere) sollte aber das Prinzip erklaeren

ZitatWas ich  auch nicht ganz verstehe, ist, daß die Liste aller Register unten mehr Einträge hat, als oben in der Hex-Liste verfügbar sind.
hier wird mit Bitfeldern gearbeitet (manchmal...) ein Byte kann also mehrere Register abdecken -> Einsteigerdoc.
Wer in hex arbeitet sollte wissen, was er tut - hier setze ich ein Grund wissen voraus. Ansonsten besser die highlevel-ausgabe benutzen

ZitatJedenfalls hab ich die Register 0x0A und 0x8A bereits einmal testweise auf toggleToCtr gesetzt,
was aber nur bewirkt, daß der Wippschalter jetzt oben ausschaltet und unten einschaltet, umgekehrt wir vorher.

Was muss ich denn setzen, um den Wippschalter in den Modus oben toggle und unten toggle zu bekommen?

hatte ich so noch icht probiert - laesst sich auch schwer pruefen. ToggleToCounter bedeuted, dass der schalter, wenn er von extern getriggert wird den zaehler der VON EXTERN mitgeliefert wird zum schalten benutzt und bei gerade einschalter, ungerade aus (oder umgekehrt... egal).
Du benutzt den internen schalter. Ob der ueberhaupt einen counter liefert weiss ich nicht. 2-mal drueckn hast du sicher probiert, richtig?
Dann musst du an die statemachine ran. Mach es doch so in der Art:
   3:TastDev_chn:02     shActionType     :jmpToTarget
   3:TastDev_chn:02     shOffDly         :0 s
   3:TastDev_chn:02     shOffTime        :111600 s
   3:TastDev_chn:02     shOffTimeMode    :absolut
   3:TastDev_chn:02     shOnDly          :0 s
   3:TastDev_chn:02     shOnTime         :111600 s
   3:TastDev_chn:02     shOnTimeMode     :absolut
   3:TastDev_chn:02     shSwJtDlyOff     :off
   3:TastDev_chn:02     shSwJtDlyOn      :on
   3:TastDev_chn:02     shSwJtOff        :dlyOn
   3:TastDev_chn:02     shSwJtOn         :dlyOff

Lange Tastendruck entsprechend - oder was du sonst willst.

Gruss
Martin

madmaxm

Hallo Martin,

aah.. ok. Danke!!
Das hilft mir weiter.
Sobald ich dazu komme probier ichs aus.

Marco



unimatrix

Hallo,

das ist halb off topic, aber hier wird ja gerade über die Statemachine und Register geredet. Ich versuche gerade das Blinklicht-Profil der CCU nachzubauen dazu brauche ich aber wohl das Register

SHORT_OFFDELAY_BLINK

welches in CUL_HM für die Liste3 offenbar noch nicht dekodiert vorliegt, ist das richtig? Oder heisst es irgendwie anders und ich finde es nicht.

Danke und VG

unimatrix

hm aht sich erledigt, die CCU setzt das zwar, kann man sich aber (was nach 2 mal nachdenken sinn macht) sparen.

Also einen Dimmer für einen Taster oder virtuellen Taster auf ein entsprechendes Blinken zu setzen, ist nur folgendes notwendig:

(Existenz von vRemote vorausgesetzt, siehe commandref - dim_flur durch eigenen Aktor ersetzen)

Die Werte 2,2,60,40 lassen sich je nach Wunsch natürlich ändern...auch die RampTimes...dann ist es kein Blinken sondern ein...ja k.a....ein weiches Blinken

set vRemote_Btn4 devicepair 0 dim_flur single set
set dim_flur regSet shOnTime 2 vRemote_Btn4
set dim_flur regSet shOffTime 2 vRemote_Btn4
set dim_flur regSet shOnLevel 60 vRemote_Btn4
set dim_flur regSet shOffLevel 40 vRemote_Btn4
set dim_flur regSet shDimJtDlyOff dlyOn vRemote_Btn4
set dim_flur regSet shDimJtDlyOn dlyOn vRemote_Btn4
set dim_flur regSet shDimJtRampOff dlyOn vRemote_Btn4
set dim_flur regSet shDimJtRampOn dlyOn vRemote_Btn4
set dim_flur regSet shRampOffTime 0 vRemote_Btn4
set dim_flur regSet shRampOnTime 0 vRemote_Btn4
set dim_flur regSet shRampSstep 0 vRemote_Btn4

martinp876

Hi,

die register werden trotzdem kommen ;-)
Ausprobieren muss sie jeder selbst...

was macht dein setup jetzt eigentlich? Wenn ich es richtig sehe springst du aus jeder Lebenslage auf on_dly.
Unter Blinken versteht du also den Treppenhausschalter einmal an fuer x sec, dann aus for ever.
Mehrfach Blinken ist aber nicht drin?

Gruss
Martin

unimatrix

sorry, ist ein Fehler. Springe natürlich von on -> offdly und von off -> ondly...:)


bjoernhoefer

Nur ein kleines Update meinerseites - als Thread-Eröffner...

In der Version fhem.pl 2752 2013-02-17 funktioniert toggle nun einwandfrei.

Danke an den der es gefixt hat.


martinp876


toggel wird jetzt immer vom 'state' in FHEM abgeleitet - der sollte stimmen, kann aber auch einmal nicht (restart,...) nach dem 2. toggel sollte es dann spaetestens synchron sein. Und generell sollte auch ein restart ueberlebt werden, da state readigns gerettet werden.

Noch eine potentielle Falle: wenn das Device nicht mit FHEM gepairt ist wird FHEM nicht immer ueber eine Aenderung informiert(betaetigung des lokalen Tasters koennte verloren gehe).

Das 'alte' toggel war eigentlich die Simulation der betaetigung des lokalen Tasters. Bei eine Schalter mit einem Taster war es toggel, bei einem dimmer sind es 2 taster, einmal ein/up, einmal aus/down.
Die Funktion kann man auch nutzen, wer will. Dafuer gibt es 'press' - der simuliert den/die Taster, auch mit langem Tastendruck, wenn gewuenscht.

also:
press [short/long] [on/off]
long ist nur 'ein' longtrigger.

Und wer noch tiefer einsteigen will kann das Verhalten der 'internen Taster' beeinflussen - intKeyVisib setzen und die Register der peers 'self' bearbeiten.

Gruss
Martin