Integration hm-lc-ja1pbu-fm Jalousiesteuerung

Begonnen von markus25, 25 November 2016, 15:41:43

Vorheriges Thema - Nächstes Thema

markus25

Hallo Zusammen,
hat schon jemand den neuen Funkschaltaktor hm-lc-ja1pbu-fm zur Jalousienstuerung und hat in zum laufen bekommen?
Anlernen lässt sich der Aktor, aber über Funk nicht bedienen.

Hab leider anscheinend den falschen bestellt, laut ELV gibt es den auch erst seit zwei Wochen.
FHEM auf Raspi3 HMLAN und Cuno, Resol per VBus und Jeelink

Otto123

Hallo Markus25,

da wirst Du wohl etwas die Ruhe bewahren müssen, und Dich mit Martin gut stellen :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tndx

Mich hat es leider auch erwischt, habe den Jalosienaktor statt des Roulladenaktors bestellt, und das gleich 2x... Lieber Martin, bitte, bitte  :D

ar_wi

Stehe vor der Entscheidung die HM-LC-Ja1PBU-FM zu kaufen oder die HM-LC-Bl1PBU-FM und schließe mich der Frage an.

chipmunk

Was ist eigentlich der genaue Unterschied zwischen Rollladen- und Jalousieaktor, von der Schaltung her sehen sie mir irgendwie ident aus?
Nur die Firmware?
Ich habe diesbezüglich noch nirgends genauere Infos gefunden.

Chipmunk
RasPi3, HM, HUE, div 433MHz Baumarktdosen über Sende- und Empfangsmodule von C*, Ediplug

ar_wi

Kann eigentlich nur Firmware sein. Schätze mal, dass da Variablen dazukommen, wie z.B. die Zeit, die es braucht, die Lamellen zu drehen etc.
Hardware-mäßig wird da auch nur ein Wechler-Relais und ein Schalt-Relais verbaut sein.
Alles natürlich nur Spekulation.

tndx

Die Schaltung mag äquivalent sein, ist aber nicht identisch. Zumindest in der Bausatz-Variante sind die 2 kleineren Elkos nicht mehr einzulöten, die zu nah an anderen Bauteilen lagen und mir als Lötlaien Probleme bereitet haben. Ich hatte mich schon über die neue Hardwarerevision gefreut, bis ich gemerkt hatte, dass es ein anderes, (noch) inkompatibles Produkt ist.

martinp876

so - ein Versuch ist drin.
Einmal anlernen drücken sollte das attr model korrekt setzen.
Beachtet die neuen Kommandos pct, pctSlat, pctLvlSlat.
Auch die Readings zu slat und slatDir sollten gesetzt werden.

testet einmal - hätte mich auf interessiert.... steuert wohl die Lamellenstellung der Jalousien. cool, wenn es endlich funktioniert. Leider habe ich diese nicht.



tndx

Hallo Martin,

vielen Dank für Deine Mühe!

Ich habe nun meine beiden Aktoren eingebaut und nach einigem Hin und Her gepairt (ging nur mit hmPairSerial, die Rolladenaktoren gingen m.W. auch mit hmPairForSec und manuellem Auslösen des Configschalters).

Es werden Readings angezeigt, es stehen auch einge grundlegende Funktionen bereit:


Gets ------
cmdList
param -param-
reg -addr- ... -list- -peer-
regList
regVal -addr- ... -list- -peer-
saveConfig -filename- ...

Sets ------
assignHmKey
clear [readings|rssi|msgEvents|unknownDev]
clear [readings|trigger|register|oldRegs|rssi|msgEvents|attack|all]
deviceRename newName
fwUpdate -filename- -bootTime- ...
getConfig
getRegRaw [List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
peerBulk -peer1,peer2,...- [set|unset]
raw data ...
regBulk -list-:-peer- -addr1:data1- -addr2:data2- ...
regSet [prep|exec] -regName- -value- ... [-peerChannel-]
reset
sign [on|off]
templateDel tmplt
unpair
virtual -noButtons-


aber leider nicht die wesentlichen wie "up", "down" etc...

martinp876

und wie hast du das geschafft? in meiner simulation gibt es alles, rauf, runter, pct, pctSlat, pctLvlSlat
a) ist HMConfig auf Stand? ggf. update force machen
b) mache ein List des device

tndx

#10
Zitat von: martinp876 am 04 Dezember 2016, 19:55:02
a) ist HMConfig auf Stand? ggf. update force machen
b) mache ein List des device

War aktuell, "update force " hat nichts daran geändert

Zitat von: martinp876 am 04 Dezember 2016, 19:55:02
b) mache ein List des device


Internals:
   DEF        51033C
   IODev      myHmUART
   NAME       HM_51033C
   NOTIFYDEV  global
   NR         156
   NTFY_ORDER 50-HM_51033C
   STATE      RESPONSE TIMEOUT:RegisterRead
   TYPE       CUL_HM
   Readings:
     2016-12-04 10:52:22   CommandAccepted yes
     2016-12-04 10:52:21   D-firmware      2.10
     2016-12-04 10:52:21   D-serialNr      NEQXXXXXXX
     2016-12-04 11:40:21   PairedTo        0xF3A460
     2016-12-04 10:52:25   R-pairCentral   0xF3A460
     2016-12-04 11:40:21   RegL_00.        02:01 0A:F3 0B:A4 0C:60 15:FF 18:00 00:00
     2016-12-04 11:33:48   powerOn         2016-12-04 11:33:48
     2016-12-04 18:31:55   recentStateType info
     2016-12-04 10:51:19   state           RESPONSE TIMEOUT:RegisterRead
   Helper:
     HM_CMDNR   1
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +51033C,00,01,00
       rxt        0
       vccu       VCCU
       p:
         51033C
         00
         01
         00
       prefIO:
         myHmUART
     Mrssi:
       mNo
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
Attributes:
   IODev      myHmUART
   IOgrp      VCCU:myHmUART
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   2.10
   model      unknown
   room       CUL_HM
   serialNr   NEQXXXXXXX


Was mir auffällt ist, dass das subType-Attribut nicht gesetzt ist. Setze ich es manuell auf "blindActuator", kriege ich auch up und down und eine Menge weitere Operationen angeboten, aber nicht die von Dir angesprochenen pctSlat und pctLvlSlat. Ich kann gerade leider nicht testen, ob wenigstens up und down funktionieren.

tndx

Ich habe nun anhand Deiner letzten Änderungen im SVN gesehen, dass es sowohl auf das subType- als auch auf das model-Attribut ankommt. Nachdem ich beide bei beiden Aktoren manuell gesetzt habe, scheint es wohl wie von Dir beabsichtigt zu funktionieren. Up und down konnte ich nun erfolgreich testen, für pctLvlSlat und pctSlat habe ich leider keine Verwendung. Irgendeine Idee, warum das beim Pairing nicht automatisch angelegt wird?

BTW: Bei den Jalousieaktoren sind die Tasten am Aktor anders belegt als bei den Rolladenaktoren: um die Rolladen hoch- bzw. runterfahern zu lassen muss man nun lange auf die entsprechende Taste drücken. Kann man dieses Verhalten ändern, damit es mit einer kurzen Betätigung funktioniert?

Otto123

Zitat von: tndx am 05 Dezember 2016, 14:46:51
BTW: Bei den Jalousieaktoren sind die Tasten am Aktor anders belegt als bei den Rolladenaktoren: um die Rolladen hoch- bzw. runterfahern zu lassen muss man nun lange auf die entsprechende Taste drücken. Kann man dieses Verhalten ändern, damit es mit einer kurzen Betätigung funktioniert?
Hi,

das geht prinzipiell über die Register. Du kannst schauen ob Dir im Wiki der Artikel zu hminfo und die Templates helfen.
Da ich die neuen Schalter aber nicht habe, die Register sicher anders sind, kann ich dazu nichts sagen.

Du kannst natürlich auch mit get regList und regTable die Unterschiede in den Aktoren ermitteln und versuchen.
Vorher mit saveConfig die Register zur Sicherheit sichern.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tndx

Hallo Otto,

danke für Deine Antwort bzgl. Register. Ich habe sie mir zu Herzen genommen und versucht, die Unterschiede in den beiden Aktoren ausfindig zu machen. Folgendes habe ich festgestellt:

RegList HM-LC-Bl1PBU-FM:
list:         register | range              | peer     | description
   0: confBtnTime      |   1 to 255min      |          | 255=permanent special:permanent
   0: intKeyVisib      |     literal        |          | visibility of internal channel options:invisib,visib
   0: localResDis      |     literal        |          | local reset disable options:on,off
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   1: driveDown        |   0 to 6000s       |          | drive time up
   1: driveTurn        | 0.5 to 25.5s       |          | engine uncharge - fhem min = 0.5s for protection. HM min= 0s (use regBulk if necessary)
   1: driveUp          |   0 to 6000s       |          | drive time up
   1: refRunCounter    |   0 to 255         |          | start reference run after n non-end drives
   1: sign             |     literal        |          | signature (AES) options:on,off
   1: statusInfoMinDly |   0 to 15.5s       |          | status message min delay special:unused
   1: statusInfoRandom |   0 to 7s          |          | status message random delay
   1: transmitTryMax   |   1 to 10          |          | max message re-transmit
   3: lgActionType     |     literal        | required |  options:toggleToCntInv,jmpToTarget,toggleToCnt,off
   3: lgBlJtDlyOff     |     literal        | required | Jump from delayOff options:refOff,refOn,rampOn,off,rampOff,on,dlyOff,no,dlyOn
   3: lgBlJtDlyOn      |     literal        | required | Jump from delayOn options:dlyOn,rampOff,off,dlyOff,on,no,rampOn,refOn,refOff
   3: lgBlJtOff        |     literal        | required | Jump from off options:dlyOn,no,dlyOff,on,off,rampOff,refOn,rampOn,refOff
   3: lgBlJtOn         |     literal        | required | Jump from on options:dlyOn,dlyOff,on,no,off,rampOff,rampOn,refOn,refOff
   3: lgBlJtRampOff    |     literal        | required | Jump from rampOff options:rampOn,refOn,refOff,dlyOn,on,dlyOff,no,off,rampOff
   3: lgBlJtRampOn     |     literal        | required | Jump from rampOn options:refOn,rampOn,refOff,dlyOn,no,dlyOff,on,rampOff,off
   3: lgBlJtRefOff     |     literal        | required | Jump from refOff options:refOff,rampOn,refOn,rampOff,off,dlyOff,no,on,dlyOn
   3: lgBlJtRefOn      |     literal        | required | Jump from refOn options:on,dlyOff,no,off,rampOff,dlyOn,refOff,refOn,rampOn
   3: lgCtDlyOff       |     literal        | required | Jmp on condition from delayOff options:ltHi,outside,between,geLo,ltLo,geHi
   3: lgCtDlyOn        |     literal        | required | Jmp on condition from delayOn options:between,geLo,ltLo,ltHi,outside,geHi
   3: lgCtOff          |     literal        | required | Jmp on condition from off options:outside,ltHi,geLo,between,ltLo,geHi
   3: lgCtOn           |     literal        | required | Jmp on condition from on options:geHi,between,geLo,ltLo,outside,ltHi
   3: lgCtRampOff      |     literal        | required | Jmp on condition from rampOff options:geHi,geLo,between,ltLo,outside,ltHi
   3: lgCtRampOn       |     literal        | required | Jmp on condition from rampOn options:ltHi,outside,ltLo,between,geLo,geHi
   3: lgCtRefOff       |     literal        | required | Jmp on condition from refOff options:ltHi,outside,ltLo,between,geLo,geHi
   3: lgCtRefOn        |     literal        | required | Jmp on condition from refOn options:geHi,outside,ltHi,ltLo,between,geLo
   3: lgCtValHi        |   0 to 255         | required | Condition value high for CT table
   3: lgCtValLo        |   0 to 255         | required | Condition value low for CT table
   3: lgDriveMode      |     literal        | required |  options:viaLowerEnd,viaNextEnd,direct,viaUpperEnd
   3: lgMaxTimeF       |   0 to 25.5s       | required | max time first direction. special:unused
   3: lgMultiExec      |     literal        | required | execution per repeat message options:on,off
   3: lgOffDly         |   0 to 111600s     | required | off delay
   3: lgOffLevel       |   0 to 100%        | required | PowerLevel off
   3: lgOffTime        |   0 to 111600s     | required | off time special:unused
   3: lgOffTimeMode    |     literal        | required | off time meant absolut or at least options:absolut,minimal
   3: lgOnDly          |   0 to 111600s     | required | on delay
   3: lgOnLevel        |   0 to 100.5%      | required | PowerLevel on special:oldLevel
   3: lgOnTime         |   0 to 111600s     | required | on time special:unused
   3: lgOnTimeMode     |     literal        | required | on time meant absolut or at least options:minimal,absolut
   3: shActionType     |     literal        | required |  options:toggleToCntInv,jmpToTarget,toggleToCnt,off
   3: shBlJtDlyOff     |     literal        | required | Jump from delayOff options:refOff,refOn,rampOn,off,rampOff,on,dlyOff,no,dlyOn
   3: shBlJtDlyOn      |     literal        | required | Jump from delayOn options:dlyOn,rampOff,off,dlyOff,on,no,rampOn,refOn,refOff
   3: shBlJtOff        |     literal        | required | Jump from off options:dlyOn,no,dlyOff,on,off,rampOff,refOn,rampOn,refOff
   3: shBlJtOn         |     literal        | required | Jump from on options:dlyOn,dlyOff,on,no,off,rampOff,rampOn,refOn,refOff
   3: shBlJtRampOff    |     literal        | required | Jump from rampOff options:rampOn,refOn,refOff,dlyOn,on,dlyOff,no,off,rampOff
   3: shBlJtRampOn     |     literal        | required | Jump from rampOn options:refOn,rampOn,refOff,dlyOn,no,dlyOff,on,rampOff,off
   3: shBlJtRefOff     |     literal        | required | Jump from refOff options:refOff,rampOn,refOn,rampOff,off,dlyOff,no,on,dlyOn
   3: shBlJtRefOn      |     literal        | required | Jump from refOn options:on,dlyOff,no,off,rampOff,dlyOn,refOff,refOn,rampOn
   3: shCtDlyOff       |     literal        | required | Jmp on condition from delayOff options:ltHi,outside,between,geLo,ltLo,geHi
   3: shCtDlyOn        |     literal        | required | Jmp on condition from delayOn options:between,geLo,ltLo,ltHi,outside,geHi
   3: shCtOff          |     literal        | required | Jmp on condition from off options:outside,ltHi,geLo,between,ltLo,geHi
   3: shCtOn           |     literal        | required | Jmp on condition from on options:geHi,between,geLo,ltLo,outside,ltHi
   3: shCtRampOff      |     literal        | required | Jmp on condition from rampOff options:geHi,geLo,between,ltLo,outside,ltHi
   3: shCtRampOn       |     literal        | required | Jmp on condition from rampOn options:ltHi,outside,ltLo,between,geLo,geHi
   3: shCtRefOff       |     literal        | required | Jmp on condition from refOff options:ltHi,outside,ltLo,between,geLo,geHi
   3: shCtRefOn        |     literal        | required | Jmp on condition from refOn options:geHi,outside,ltHi,ltLo,between,geLo
   3: shCtValHi        |   0 to 255         | required | Condition value high for CT table
   3: shCtValLo        |   0 to 255         | required | Condition value low for CT table
   3: shDriveMode      |     literal        | required |  options:viaLowerEnd,viaNextEnd,direct,viaUpperEnd
   3: shMaxTimeF       |   0 to 25.5s       | required | max time first direction. special:unused
   3: shMultiExec      |     literal        | required | reg unused, placeholder only options:off,on
   3: shOffDly         |   0 to 111600s     | required | off delay
   3: shOffLevel       |   0 to 100%        | required | PowerLevel off
   3: shOffTime        |   0 to 111600s     | required | off time special:unused
   3: shOffTimeMode    |     literal        | required | off time meant absolut or at least options:absolut,minimal
   3: shOnDly          |   0 to 111600s     | required | on delay
   3: shOnLevel        |   0 to 100.5%      | required | PowerLevel on special:oldLevel
   3: shOnTime         |   0 to 111600s     | required | on time special:unused
   3: shOnTimeMode     |     literal        | required | on time meant absolut or at least options:minimal,absolut


RegList HM-LC-Ja1PBU-FM:
list:         register | range              | peer     | description
   0: confBtnTime      |   1 to 255min      |          | 255=permanent special:permanent
   0: intKeyVisib      |     literal        |          | visibility of internal channel options:invisib,visib
   0: localResDis      |     literal        |          | local reset disable options:on,off
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   1: driveDown        |   0 to 6000s       |          | drive time up
   1: driveTurn        | 0.5 to 25.5s       |          | engine uncharge - fhem min = 0.5s for protection. HM min= 0s (use regBulk if necessary)
   1: driveUp          |   0 to 6000s       |          | drive time up
   1: posSaveTime      | 0.1 to 25.5s       |          | position save time special:on,off
   1: refRunCounter    |   0 to 255         |          | start reference run after n non-end drives
   1: refRunTimeSlats  |   0 to 10s         |          | reference run time slats special:on,off
   1: sign             |     literal        |          | signature (AES) options:on,off
   1: statusInfoMinDly |   0 to 15.5s       |          | status message min delay special:unused
   1: statusInfoRandom |   0 to 7s          |          | status message random delay
   1: transmitTryMax   |   1 to 10          |          | max message re-transmit
   3: lgActionType     |     literal        | required |  options:toggleToCntInv,jmpToTarget,toggleToCnt,off
   3: lgBlJtDlyOff     |     literal        | required | Jump from delayOff options:refOff,refOn,rampOn,off,rampOff,on,dlyOff,no,dlyOn
   3: lgBlJtDlyOn      |     literal        | required | Jump from delayOn options:dlyOn,rampOff,off,dlyOff,on,no,rampOn,refOn,refOff
   3: lgBlJtOff        |     literal        | required | Jump from off options:dlyOn,no,dlyOff,on,off,rampOff,refOn,rampOn,refOff
   3: lgBlJtOn         |     literal        | required | Jump from on options:dlyOn,dlyOff,on,no,off,rampOff,rampOn,refOn,refOff
   3: lgBlJtRampOff    |     literal        | required | Jump from rampOff options:rampOn,refOn,refOff,dlyOn,on,dlyOff,no,off,rampOff
   3: lgBlJtRampOn     |     literal        | required | Jump from rampOn options:refOn,rampOn,refOff,dlyOn,no,dlyOff,on,rampOff,off
   3: lgBlJtRefOff     |     literal        | required | Jump from refOff options:refOff,rampOn,refOn,rampOff,off,dlyOff,no,on,dlyOn
   3: lgBlJtRefOn      |     literal        | required | Jump from refOn options:on,dlyOff,no,off,rampOff,dlyOn,refOff,refOn,rampOn
   3: lgCtDlyOff       |     literal        | required | Jmp on condition from delayOff options:ltHi,outside,between,geLo,ltLo,geHi
   3: lgCtDlyOn        |     literal        | required | Jmp on condition from delayOn options:between,geLo,ltLo,ltHi,outside,geHi
   3: lgCtOff          |     literal        | required | Jmp on condition from off options:outside,ltHi,geLo,between,ltLo,geHi
   3: lgCtOn           |     literal        | required | Jmp on condition from on options:geHi,between,geLo,ltLo,outside,ltHi
   3: lgCtRampOff      |     literal        | required | Jmp on condition from rampOff options:geHi,geLo,between,ltLo,outside,ltHi
   3: lgCtRampOn       |     literal        | required | Jmp on condition from rampOn options:ltHi,outside,ltLo,between,geLo,geHi
   3: lgCtRefOff       |     literal        | required | Jmp on condition from refOff options:ltHi,outside,ltLo,between,geLo,geHi
   3: lgCtRefOn        |     literal        | required | Jmp on condition from refOn options:geHi,outside,ltHi,ltLo,between,geLo
   3: lgCtValHi        |   0 to 255         | required | Condition value high for CT table
   3: lgCtValLo        |   0 to 255         | required | Condition value low for CT table
   3: lgDriveMode      |     literal        | required |  options:viaLowerEnd,viaNextEnd,direct,viaUpperEnd
   3: lgMaxTimeF       |   0 to 25.5s       | required | max time first direction. special:unused
   3: lgMultiExec      |     literal        | required | execution per repeat message options:on,off
   3: lgOffDly         |   0 to 111600s     | required | off delay
   3: lgOffLevel       |   0 to 100%        | required | PowerLevel off
   3: lgOffTime        |   0 to 111600s     | required | off time special:unused
   3: lgOffTimeMode    |     literal        | required | off time meant absolut or at least options:absolut,minimal
   3: lgOnDly          |   0 to 111600s     | required | on delay
   3: lgOnLevel        |   0 to 100.5%      | required | PowerLevel on special:oldLevel
   3: lgOnTime         |   0 to 111600s     | required | on time special:unused
   3: lgOnTimeMode     |     literal        | required | on time meant absolut or at least options:minimal,absolut
   3: shActionType     |     literal        | required |  options:toggleToCntInv,jmpToTarget,toggleToCnt,off
   3: shBlJtDlyOff     |     literal        | required | Jump from delayOff options:refOff,refOn,rampOn,off,rampOff,on,dlyOff,no,dlyOn
   3: shBlJtDlyOn      |     literal        | required | Jump from delayOn options:dlyOn,rampOff,off,dlyOff,on,no,rampOn,refOn,refOff
   3: shBlJtOff        |     literal        | required | Jump from off options:dlyOn,no,dlyOff,on,off,rampOff,refOn,rampOn,refOff
   3: shBlJtOn         |     literal        | required | Jump from on options:dlyOn,dlyOff,on,no,off,rampOff,rampOn,refOn,refOff
   3: shBlJtRampOff    |     literal        | required | Jump from rampOff options:rampOn,refOn,refOff,dlyOn,on,dlyOff,no,off,rampOff
   3: shBlJtRampOn     |     literal        | required | Jump from rampOn options:refOn,rampOn,refOff,dlyOn,no,dlyOff,on,rampOff,off
   3: shBlJtRefOff     |     literal        | required | Jump from refOff options:refOff,rampOn,refOn,rampOff,off,dlyOff,no,on,dlyOn
   3: shBlJtRefOn      |     literal        | required | Jump from refOn options:on,dlyOff,no,off,rampOff,dlyOn,refOff,refOn,rampOn
   3: shCtDlyOff       |     literal        | required | Jmp on condition from delayOff options:ltHi,outside,between,geLo,ltLo,geHi
   3: shCtDlyOn        |     literal        | required | Jmp on condition from delayOn options:between,geLo,ltLo,ltHi,outside,geHi
   3: shCtOff          |     literal        | required | Jmp on condition from off options:outside,ltHi,geLo,between,ltLo,geHi
   3: shCtOn           |     literal        | required | Jmp on condition from on options:geHi,between,geLo,ltLo,outside,ltHi
   3: shCtRampOff      |     literal        | required | Jmp on condition from rampOff options:geHi,geLo,between,ltLo,outside,ltHi
   3: shCtRampOn       |     literal        | required | Jmp on condition from rampOn options:ltHi,outside,ltLo,between,geLo,geHi
   3: shCtRefOff       |     literal        | required | Jmp on condition from refOff options:ltHi,outside,ltLo,between,geLo,geHi
   3: shCtRefOn        |     literal        | required | Jmp on condition from refOn options:geHi,outside,ltHi,ltLo,between,geLo
   3: shCtValHi        |   0 to 255         | required | Condition value high for CT table
   3: shCtValLo        |   0 to 255         | required | Condition value low for CT table
   3: shDriveMode      |     literal        | required |  options:viaLowerEnd,viaNextEnd,direct,viaUpperEnd
   3: shMaxTimeF       |   0 to 25.5s       | required | max time first direction. special:unused
   3: shMultiExec      |     literal        | required | reg unused, placeholder only options:off,on
   3: shOffDly         |   0 to 111600s     | required | off delay
   3: shOffLevel       |   0 to 100%        | required | PowerLevel off
   3: shOffTime        |   0 to 111600s     | required | off time special:unused
   3: shOffTimeMode    |     literal        | required | off time meant absolut or at least options:absolut,minimal
   3: shOnDly          |   0 to 111600s     | required | on delay
   3: shOnLevel        |   0 to 100.5%      | required | PowerLevel on special:oldLevel
   3: shOnTime         |   0 to 111600s     | required | on time special:unused
   3: shOnTimeMode     |     literal        | required | on time meant absolut or at least options:minimal,absolut


Der Unterschied besteht also in 2 zusätzlichen Registern beim HM-LC-Ja1PBU-FM, und zwar posSaveTime und refRunTimeSlats, das erkennt man auch, wenn man sich die "reg all" bei beiden Aktoren ansieht.

reg all HM-LC-Bl1PBU-FM
GWC_Rollo type:blindActuator -
list:peer register         :value
   0:      confBtnTime      :permanent
   0:      intKeyVisib      :invisib
   0:      localResDis      :off
   0:      pairCentral      :0xF3A460
   1:      driveDown        :21 s
   1:      driveTurn        :0.5 s
   1:      driveUp          :21 s
   1:      refRunCounter    :0
   1:      sign             :off
   1:      statusInfoMinDly :2 s
   1:      statusInfoRandom :1 s
   1:      transmitTryMax   :6


reg all HM-LC-Ja1PBU-FM
KiZD_Rollo_links type:blindActuator -
list:peer register         :value
   0:      confBtnTime      :permanent
   0:      intKeyVisib      :invisib
   0:      localResDis      :off
   0:      pairCentral      :0xF3A460
   1:      driveDown        :18 s
   1:      driveTurn        :0.5 s
   1:      driveUp          :18 s
   1:      posSaveTime      :2 s
   1:      refRunCounter    :0
   1:      refRunTimeSlats  :2 s
   1:      sign             :off
   1:      statusInfoMinDly :2 s
   1:      statusInfoRandom :1 s
   1:      transmitTryMax   :6


Ich habe abe leider auf Anhieb keine Register identifizieren können, in denen das Verhalten der Taster abgelegt sein könnte, und die müsste ich doch angleichen, oder? Vielleicht hat jemand noch einen Tipp für mich...

Otto123

Hallo tndx,

ein regTable wäre noch interessant. regList liefert ja die Erklärung, regTable die tatsächlich gesetzten Register.
Vor allem, sorry hatte ich nicht erwähnt:
Du musst die internen Peers sichtbar machen:
set <device> regSet intKeyVisib visib
attr <device> expert 1_allReg

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tndx

Hi Otto,

Zitat von: Otto123 am 14 Dezember 2016, 13:17:29
set <device> regSet intKeyVisib visib
attr <device> expert 1_allReg


das war wohl der entscheidende Hinweis. Ich hatte mich schon gewundert, warum meine "reg all" und "regTable" so wenig Inhalt hatten. Aber während ich beim HM-LC-Bl1PBU-FM nur zusätzliche Register ausgegeben bekam, offenbarte sich beim HM-LC-Ja1PBU-FM, dass er hardwaretechnisch wohl doch ein wenig anders ist:


Internals:
   DEF        51033C
   IODev      myHmUART
   LASTInputDev nanoCUL
   MSGCNT     12
   NAME       KiZD_Rollo_links
   NOTIFYDEV  global
   NR         123
   NTFY_ORDER 50-KiZD_Rollo_links
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 KiZD_Rollo_links_Sw
   lastMsg    No:7E - t:10 s:51033C d:F3A460 0601C80080C800
   myHmUART_MSGCNT 6
   myHmUART_RAWMSG 050100397EA41051033CF3A4600601C80080C800
   myHmUART_RSSI -57
   myHmUART_TIME 2016-12-14 15:13:02
   nanoCUL_MSGCNT 6
   nanoCUL_RAWMSG A107EA41051033CF3A4600601C80080C800::-83.5:nanoCUL
   nanoCUL_RSSI -83.5
   nanoCUL_TIME 2016-12-14 15:13:02
   protLastRcv 2016-12-14 15:13:02
   protSnd    6 last_at:2016-12-14 15:13:02
   protState  CMDs_done
   rssi_at_myHmUART cnt:6 lst:-57 max:-56 avg:-56.83 min:-58
   rssi_at_nanoCUL max:-82.5 avg:-84.58 lst:-83.5 cnt:6 min:-90
   rssi_myHmUART avg:-70.5 max:-70 cnt:2 lst:-71 min:-71
   Readings:
     2016-12-14 14:08:18   CommandAccepted yes
     2016-12-14 15:01:26   D-firmware      2.10
     2016-12-14 15:01:26   D-serialNr      NEQXXXXXXX
     2016-12-14 15:01:18   PairedTo        0xF3A460
     2016-12-05 12:49:32   R-confBtnTime   permanent
     2016-12-05 17:09:21   R-driveDown     18 s
     2016-12-05 12:49:32   R-driveTurn     0.5 s
     2016-12-05 17:10:45   R-driveUp       18 s
     2016-12-14 14:59:36   R-intKeyVisib   visib
     2016-12-05 12:49:32   R-localResDis   off
     2016-12-04 10:52:25   R-pairCentral   0xF3A460
     2016-12-05 12:49:32   R-posSaveTime   2 s
     2016-12-05 12:49:32   R-refRunCounter 0
     2016-12-05 12:49:32   R-refRunTimeSlats 2 s
     2016-12-05 12:49:32   R-sign          off
     2016-12-05 12:49:32   R-statusInfoMinDly 2 s
     2016-12-05 12:49:32   R-statusInfoRandom 1 s
     2016-12-05 12:49:32   R-transmitTryMax 6
     2016-12-14 11:35:31   deviceMsg       on (to VCCU)
     2016-12-14 11:35:31   level           100
     2016-12-14 11:35:31   motor           stop:on
     2016-12-14 11:35:31   pct             100
     2016-12-05 10:32:17   powerOn         2016-12-05 10:32:17
     2016-12-14 11:35:31   recentStateType info
     2016-12-14 11:35:31   slat            100
     2016-12-14 11:35:31   slatDir         stop
     2016-12-14 15:13:02   state           CMDs_done
     2016-12-14 11:35:31   timedOn         off
   Helper:
     HM_CMDNR   126
     cSnd       11F3A46051033C8001B4CA,11F3A46051033C8001C8CA
     mId        0107
     rxType     1
     Ack:
     Expert:
       def        1
       det        1
       raw        0
       tpl        0
     Io:
       newChn     +51033C,00,00,00
       nextSend   1481724782.42604
       rxt        0
       vccu       VCCU
       p:
         51033C
         00
         00
         00
       prefIO:
         myHmUART
     Mrssi:
       mNo        7E
       Io:
         myHmUART   -55
         nanoCUL    -83.5
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
       prs        1
     Rpt:
       IO         myHmUART
       flg        A
       ts         1481724782.28808
       ack:
         HASH(0x1a2f200)
         7E8002F3A46051033C00
     Rssi:
       At_myhmuart:
         avg        -56.8333333333333
         cnt        6
         lst        -57
         max        -56
         min        -58
       At_nanocul:
         avg        -84.5833333333333
         cnt        6
         lst        -83.5
         max        -82.5
         min        -90
       Myhmuart:
         avg        -70.5
         cnt        2
         lst        -71
         max        -70
         min        -71
     Tmpl:
   Nb:
     cnt        1
Attributes:
   IODev      myHmUART
   IOgrp      VCCU:myHmUART
   autoReadReg 4_reqStatus
   devStateIcon runter:shutter_closed 0:shutter_closed hoch:shutter_open 100:shutter_open .*:shutter_halfopen
   eventMap   on:hoch 80:schatten 60:halb off:runter stop:stop
   expert     1_allReg
   firmware   2.10
   model      HM-LC-Ja1PBU-FM
   room       Daniel
   serialNr   NEQXXXXXXX
   subType    blindActuator
   webCmd     pct:hoch:schatten:halb:runter:stop


Ich hatte mich nämlich gewundert, warum ich hier keine zusätzlichen Register ausgegeben bekam und warum auf einmal die Befehle "hoch" und "runter" plötzlich als ungültig quittiert wurden, als ich dann entdeckte, dass das Ding nun einen zusätzlichen Kanal hatte. Dort waren dann all die zusätzlichen Register und dort haben dann auch die Befehle wieder funktioniert:

regTable HM-LC-Ja1PBU-FM channel_01:

No regs found for:

KiZD_Rollo_links_Sw type:blindActuator -
list:peer register         :value
   1:      driveDown        :18 s
   1:      driveTurn        :0.5 s
   1:      driveUp          :18 s
   1:      posSaveTime      :2 s
   1:      refRunCounter    :0
   1:      refRunTimeSlats  :2 s
   1:      sign             :off
   1:      statusInfoMinDly :2 s
   1:      statusInfoRandom :1 s
   1:      transmitTryMax   :6
                       self01                          self02                         
                       lg              sh              lg              sh             
ActionType             jmpToTarget     jmpToTarget     jmpToTarget     jmpToTarget     
BlJtDlyOff             refOff          refOff          dlyOn           dlyOn           
BlJtDlyOn              dlyOff          dlyOff          refOn           refOn           
BlJtOff                dlyOff          dlyOff          dlyOn           dlyOn           
BlJtOn                 dlyOff          dlyOff          dlyOn           dlyOn           
BlJtRampOff            rampOff         rampOff         off             off             
BlJtRampOn             on              on              rampOn          rampOn         
BlJtRefOff             rampOff         rampOff         off             off             
BlJtRefOn              on              on              rampOn          rampOn         
CtDlyOff               geLo            geLo            geLo            geLo           
CtDlyOn                geLo            geLo            geLo            geLo           
CtOff                  geLo            geLo            geLo            geLo           
CtOn                   geLo            geLo            geLo            geLo           
CtRampOff              geLo            geLo            geLo            geLo           
CtRampOn               geLo            geLo            geLo            geLo           
CtRefOff               geLo            geLo            geLo            geLo           
CtRefOn                geLo            geLo            geLo            geLo           
CtValHi                100             100             100             100             
CtValLo                50              50              50              50             
DriveMode              direct          direct          direct          direct         
MaxTimeF          [s]  unused          0.1             unused          0.1             
MultiExec              off             off             off             off             
OffDly            [s]  0               0               0               0               
OffLevel          [%]  0               0               0               0               
OffTime                unused          unused          unused          unused         
OffTimeMode            absolut         absolut         absolut         absolut         
OnDly             [s]  0               0               0               0               
OnLevel           [%]  100             100             100             100             
OnTime                 unused          unused          unused          unused         
OnTimeMode             absolut         absolut         absolut         absolut


Hier der Vollständigkeit halber noch regTable HM-LC-Bl1PBU-FM:

No regs found for:

GWC_Rollo type:blindActuator -
list:peer register         :value
   0:      confBtnTime      :permanent
   0:      intKeyVisib      :visib
   0:      localResDis      :off
   0:      pairCentral      :0xF3A460
   1:      driveDown        :21 s
   1:      driveTurn        :0.5 s
   1:      driveUp          :21 s
   1:      refRunCounter    :0
   1:      sign             :off
   1:      statusInfoMinDly :2 s
   1:      statusInfoRandom :1 s
   1:      transmitTryMax   :6
                       self01                          self02                         
                       lg              sh              lg              sh             
ActionType             jmpToTarget     jmpToTarget     jmpToTarget     jmpToTarget     
BlJtDlyOff             refOff          refOff          dlyOn           dlyOn           
BlJtDlyOn              dlyOff          dlyOff          refOn           refOn           
BlJtOff                dlyOff          dlyOff          dlyOn           dlyOn           
BlJtOn                 dlyOff          dlyOff          dlyOn           dlyOn           
BlJtRampOff            rampOff         rampOff         off             off             
BlJtRampOn             on              on              rampOn          rampOn         
BlJtRefOff             rampOff         rampOff         off             off             
BlJtRefOn              on              on              rampOn          rampOn         
CtDlyOff               geLo            geLo            geLo            geLo           
CtDlyOn                geLo            geLo            geLo            geLo           
CtOff                  geLo            geLo            geLo            geLo           
CtOn                   geLo            geLo            geLo            geLo           
CtRampOff              geLo            geLo            geLo            geLo           
CtRampOn               geLo            geLo            geLo            geLo           
CtRefOff               geLo            geLo            geLo            geLo           
CtRefOn                geLo            geLo            geLo            geLo           
CtValHi                100             100             100             100             
CtValLo                50              50              50              50             
DriveMode              direct          direct          direct          direct         
MaxTimeF          [s]  0.4             unused          0.4             unused         
MultiExec              on              off             on              off             
OffDly            [s]  0               0               0               0               
OffLevel          [%]  0               0               0               0               
OffTime                unused          unused          unused          unused         
OffTimeMode            absolut         absolut         absolut         absolut         
OnDly             [s]  0               0               0               0               
OnLevel           [%]  100             100             100             100             
OnTime                 unused          unused          unused          unused         
OnTimeMode             absolut         absolut         absolut         absolut


Leider bin ich im Moment immer noch nicht weiter bzgl der Tasterbelegung...
Dazu kommt noch, dass der ursprüngliche Aktor in der Weboberfläche ja nicht mehr nutzbar ist, kann ich einfach den "channel_01" an seiner Stelle nutzen, oder muss ich noch was anderes beachten?

Otto123

#16
Hi,

also wenn er einen Channel hat, dann wird der derjenige sein!? Ist beim Dimmer ja auch so, oder bei den Steckdosen mit Strommessung - da hat man im Hauptdevice keine Möglichkeit zu schalten.

Den einzigen Unterschied den ich sehe:
MaxTimeF          [s]  0.4             unused          0.4             unused         
MaxTimeF          [s]  unused          0.1             unused          0.1             


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tndx

Hi Otto,

ich kenne den Dimmaktor und die Zwischensteckdose nicht, aber ich vermute mal, der Unterschied ist, dass dort die Kanäle nicht erst zutage treten, wenn man die Register auf sichtbar schaltet?! Keinen Ahnung, ob das einen Unterschied macht, ich habe mich jedenfalls erstmal nicht an das Ding herangetraut. Auch die Unterschiede bei den Register-Werten habe ich zwar gesehen, aber erstmal nichts unternommen. Ist es denn für Dich plausibel, dass die Unterschiede an den Stellen auftreten?

Otto123

Hi,

denkst Du der Channel ist Durch die Register zu Tage getreten?
Mach mal ein list KiZD_Rollo_links_Sw
Der ist doch bestimmt von Anfang an da, Du hast ihn bloß nicht gesehen?

Der Unterschied ist für mich nicht plausibel, ich habe einfach keine Ahnung. Habe mich mit dem Problem noch nicht beschäftigt.
ich weiß nur, dass der typische Wert um langen Tastendruck zu erkennen 400 ms ist.
MaxTimeF ist völlig gegensetzlich gesetzt, aber ob das was mit Deinem problem zu tun hat?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tndx

Zitat von: Otto123 am 14 Dezember 2016, 20:38:00
denkst Du der Channel ist Durch die Register zu Tage getreten?
Mach mal ein list KiZD_Rollo_links_Sw
Der ist doch bestimmt von Anfang an da, Du hast ihn bloß nicht gesehen?

Nee, der war definitiv vorher nicht da, ich habe ja 2 von den Dingern, und bei dem 2. ist der Kanal auch noch nicht da...
Hier die Ausgabe von list:
Internals:
   DEF        51033C01
   NAME       KiZD_Rollo_links_Sw
   NOTIFYDEV  global
   NR         168
   NTFY_ORDER 50-KiZD_Rollo_links_Sw
   STATE      off
   TYPE       CUL_HM
   chanNo     01
   device     KiZD_Rollo_links
   peerList   self01,self02,
   Readings:
     2016-12-14 16:25:09   CommandAccepted yes
     2016-12-14 14:59:38   R-driveDown     18 s
     2016-12-14 14:59:38   R-driveTurn     0.5 s
     2016-12-14 14:59:38   R-driveUp       18 s
     2016-12-14 14:59:38   R-posSaveTime   2 s
     2016-12-14 14:59:38   R-refRunCounter 0
     2016-12-14 14:59:38   R-refRunTimeSlats 2 s
     2016-12-14 14:59:40   R-self01-lgActionType jmpToTarget
     2016-12-14 14:59:40   R-self01-lgBlJtDlyOff refOff
     2016-12-14 14:59:40   R-self01-lgBlJtDlyOn dlyOff
     2016-12-14 14:59:40   R-self01-lgBlJtOff dlyOff
     2016-12-14 14:59:40   R-self01-lgBlJtOn dlyOff
     2016-12-14 14:59:40   R-self01-lgBlJtRampOff rampOff
     2016-12-14 14:59:40   R-self01-lgBlJtRampOn on
     2016-12-14 14:59:40   R-self01-lgBlJtRefOff rampOff
     2016-12-14 14:59:40   R-self01-lgBlJtRefOn on
     2016-12-14 14:59:40   R-self01-lgCtDlyOff geLo
     2016-12-14 14:59:40   R-self01-lgCtDlyOn geLo
     2016-12-14 14:59:40   R-self01-lgCtOff geLo
     2016-12-14 14:59:40   R-self01-lgCtOn geLo
     2016-12-14 14:59:40   R-self01-lgCtRampOff geLo
     2016-12-14 14:59:40   R-self01-lgCtRampOn geLo
     2016-12-14 14:59:40   R-self01-lgCtRefOff geLo
     2016-12-14 14:59:40   R-self01-lgCtRefOn geLo
     2016-12-14 14:59:40   R-self01-lgCtValHi 100
     2016-12-14 14:59:40   R-self01-lgCtValLo 50
     2016-12-14 14:59:40   R-self01-lgDriveMode direct
     2016-12-14 14:59:40   R-self01-lgMaxTimeF unused
     2016-12-14 14:59:40   R-self01-lgMultiExec off
     2016-12-14 14:59:40   R-self01-lgOffDly 0 s
     2016-12-14 14:59:40   R-self01-lgOffLevel 0 %
     2016-12-14 14:59:40   R-self01-lgOffTime unused
     2016-12-14 14:59:40   R-self01-lgOffTimeMode absolut
     2016-12-14 14:59:40   R-self01-lgOnDly 0 s
     2016-12-14 14:59:40   R-self01-lgOnLevel 100 %
     2016-12-14 14:59:40   R-self01-lgOnTime unused
     2016-12-14 14:59:40   R-self01-lgOnTimeMode absolut
     2016-12-14 14:59:40   R-self01-shActionType jmpToTarget
     2016-12-14 14:59:40   R-self01-shBlJtDlyOff refOff
     2016-12-14 14:59:40   R-self01-shBlJtDlyOn dlyOff
     2016-12-14 14:59:40   R-self01-shBlJtOff dlyOff
     2016-12-14 14:59:40   R-self01-shBlJtOn dlyOff
     2016-12-14 14:59:40   R-self01-shBlJtRampOff rampOff
     2016-12-14 14:59:40   R-self01-shBlJtRampOn on
     2016-12-14 14:59:40   R-self01-shBlJtRefOff rampOff
     2016-12-14 14:59:40   R-self01-shBlJtRefOn on
     2016-12-14 14:59:40   R-self01-shCtDlyOff geLo
     2016-12-14 14:59:40   R-self01-shCtDlyOn geLo
     2016-12-14 14:59:40   R-self01-shCtOff geLo
     2016-12-14 14:59:40   R-self01-shCtOn geLo
     2016-12-14 14:59:40   R-self01-shCtRampOff geLo
     2016-12-14 14:59:40   R-self01-shCtRampOn geLo
     2016-12-14 14:59:40   R-self01-shCtRefOff geLo
     2016-12-14 14:59:40   R-self01-shCtRefOn geLo
     2016-12-14 14:59:40   R-self01-shCtValHi 100
     2016-12-14 14:59:40   R-self01-shCtValLo 50
     2016-12-14 14:59:40   R-self01-shDriveMode direct
     2016-12-14 14:59:40   R-self01-shMaxTimeF 0.1 s
     2016-12-14 14:59:40   R-self01-shMultiExec off
     2016-12-14 14:59:40   R-self01-shOffDly 0 s
     2016-12-14 14:59:40   R-self01-shOffLevel 0 %
     2016-12-14 14:59:40   R-self01-shOffTime unused
     2016-12-14 14:59:40   R-self01-shOffTimeMode absolut
     2016-12-14 14:59:40   R-self01-shOnDly 0 s
     2016-12-14 14:59:40   R-self01-shOnLevel 100 %
     2016-12-14 14:59:40   R-self01-shOnTime unused
     2016-12-14 14:59:40   R-self01-shOnTimeMode absolut
     2016-12-14 14:59:46   R-self02-lgActionType jmpToTarget
     2016-12-14 14:59:46   R-self02-lgBlJtDlyOff dlyOn
     2016-12-14 14:59:46   R-self02-lgBlJtDlyOn refOn
     2016-12-14 14:59:46   R-self02-lgBlJtOff dlyOn
     2016-12-14 14:59:46   R-self02-lgBlJtOn dlyOn
     2016-12-14 14:59:46   R-self02-lgBlJtRampOff off
     2016-12-14 14:59:46   R-self02-lgBlJtRampOn rampOn
     2016-12-14 14:59:46   R-self02-lgBlJtRefOff off
     2016-12-14 14:59:46   R-self02-lgBlJtRefOn rampOn
     2016-12-14 14:59:46   R-self02-lgCtDlyOff geLo
     2016-12-14 14:59:46   R-self02-lgCtDlyOn geLo
     2016-12-14 14:59:46   R-self02-lgCtOff geLo
     2016-12-14 14:59:46   R-self02-lgCtOn geLo
     2016-12-14 14:59:46   R-self02-lgCtRampOff geLo
     2016-12-14 14:59:46   R-self02-lgCtRampOn geLo
     2016-12-14 14:59:46   R-self02-lgCtRefOff geLo
     2016-12-14 14:59:46   R-self02-lgCtRefOn geLo
     2016-12-14 14:59:46   R-self02-lgCtValHi 100
     2016-12-14 14:59:46   R-self02-lgCtValLo 50
     2016-12-14 14:59:46   R-self02-lgDriveMode direct
     2016-12-14 14:59:46   R-self02-lgMaxTimeF unused
     2016-12-14 14:59:46   R-self02-lgMultiExec off
     2016-12-14 14:59:46   R-self02-lgOffDly 0 s
     2016-12-14 14:59:46   R-self02-lgOffLevel 0 %
     2016-12-14 14:59:46   R-self02-lgOffTime unused
     2016-12-14 14:59:46   R-self02-lgOffTimeMode absolut
     2016-12-14 14:59:46   R-self02-lgOnDly 0 s
     2016-12-14 14:59:46   R-self02-lgOnLevel 100 %
     2016-12-14 14:59:46   R-self02-lgOnTime unused
     2016-12-14 14:59:46   R-self02-lgOnTimeMode absolut
     2016-12-14 14:59:46   R-self02-shActionType jmpToTarget
     2016-12-14 14:59:46   R-self02-shBlJtDlyOff dlyOn
     2016-12-14 14:59:46   R-self02-shBlJtDlyOn refOn
     2016-12-14 14:59:46   R-self02-shBlJtOff dlyOn
     2016-12-14 14:59:46   R-self02-shBlJtOn dlyOn
     2016-12-14 14:59:46   R-self02-shBlJtRampOff off
     2016-12-14 14:59:46   R-self02-shBlJtRampOn rampOn
     2016-12-14 14:59:46   R-self02-shBlJtRefOff off
     2016-12-14 14:59:46   R-self02-shBlJtRefOn rampOn
     2016-12-14 14:59:46   R-self02-shCtDlyOff geLo
     2016-12-14 14:59:46   R-self02-shCtDlyOn geLo
     2016-12-14 14:59:46   R-self02-shCtOff geLo
     2016-12-14 14:59:46   R-self02-shCtOn geLo
     2016-12-14 14:59:46   R-self02-shCtRampOff geLo
     2016-12-14 14:59:46   R-self02-shCtRampOn geLo
     2016-12-14 14:59:46   R-self02-shCtRefOff geLo
     2016-12-14 14:59:46   R-self02-shCtRefOn geLo
     2016-12-14 14:59:46   R-self02-shCtValHi 100
     2016-12-14 14:59:46   R-self02-shCtValLo 50
     2016-12-14 14:59:46   R-self02-shDriveMode direct
     2016-12-14 14:59:46   R-self02-shMaxTimeF 0.1 s
     2016-12-14 14:59:46   R-self02-shMultiExec off
     2016-12-14 14:59:46   R-self02-shOffDly 0 s
     2016-12-14 14:59:46   R-self02-shOffLevel 0 %
     2016-12-14 14:59:46   R-self02-shOffTime unused
     2016-12-14 14:59:46   R-self02-shOffTimeMode absolut
     2016-12-14 14:59:46   R-self02-shOnDly 0 s
     2016-12-14 14:59:46   R-self02-shOnLevel 100 %
     2016-12-14 14:59:46   R-self02-shOnTime unused
     2016-12-14 14:59:46   R-self02-shOnTimeMode absolut
     2016-12-14 14:59:38   R-sign          off
     2016-12-14 14:59:38   R-statusInfoMinDly 2 s
     2016-12-14 14:59:38   R-statusInfoRandom 1 s
     2016-12-14 14:59:38   R-transmitTryMax 6
     2016-12-14 20:07:22   deviceMsg       off (to VCCU)
     2016-12-14 20:07:22   level           0
     2016-12-14 20:07:22   motor           stop:off
     2016-12-14 20:07:22   pct             0
     2016-12-14 20:08:11   peerList        self01,self02,
     2016-12-14 20:07:22   recentStateType info
     2016-12-14 20:07:22   slat            0
     2016-12-14 20:07:22   slatDir         stop
     2016-12-14 20:07:22   state           off
     2016-12-14 20:07:22   timedOn         off
   Helper:
     dlvlCmd    ++A011F3A46051033C800100CA
     peerIDsRaw ,51033C01,51033C02,00000000
     Dir:
       cur        stop
       rct        down
     Expert:
       def        1
       det        1
       raw        0
       tpl        0
     Role:
       chn        1
     Shadowreg:
     Tmpl:
   Nb:
     cnt        3
Attributes:
   devStateIcon runter:shutter_closed 0:shutter_closed hoch:shutter_open 100:shutter_open .*:shutter_halfopen
   eventMap   on:hoch 80:schatten 60:halb off:runter stop:stop
   model      HM-LC-Ja1PBU-FM
   peerIDs    00000000,51033C01,51033C02,
   webCmd     pct:hoch:schatten:halb:runter:stop


devStateIcon, eventMap und webCmd habe ich jetzt gesetzt bzw. angepasst.

Zitat von: Otto123 am 14 Dezember 2016, 20:38:00
Der Unterschied ist für mich nicht plausibel, ich habe einfach keine Ahnung. Habe mich mit dem Problem noch nicht beschäftigt.
ich weiß nur, dass der typische Wert um langen Tastendruck zu erkennen 400 ms ist.
MaxTimeF ist völlig gegensetzlich gesetzt, aber ob das was mit Deinem problem zu tun hat?

OK, ich werde mal bei Gelegenheit ausprobieren, ob die Angleichung an HM-LC-Bl1PBU-FM den gewünschten Effekt bringt.

Otto123

Aber der Channel versteht doch nun on und off - oder?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tndx

#21
So, ich habe nun die 6 Registerwerte geändert, nun verhält sich der HM-LC-Ja1PBU-FM genauso wie HM-LC-Bl1PBU-FM, zumindest was die Bedienung mit den Tasten betrifft.

Was den ominösen Channel betrifft: der ist auch bei dem 2. HM-LC-Ja1PBU-FM nach einem getConfig aufgetaucht, ist also nicht versteckt, sondern die beiden Devices sind wohl beim Pairing falsch angelegt worden, da sie zu dem Zeitpunkt noch nicht von FHEM (komplett) unterstützt wurden. Komisch ist halt, dass ich die Devices trotzdem von FHEM aus bedienen konnte, solange die Channel_01 für FHEM nicht sichtbar waren. Nun verstehen die Devices aber keine hoch/runter/on/off Befehle mehr, sondern ich muss sie bei den Channeln absetzen.

Die nicht mehr funktionierenden Befehle werden mir aber in den Dropdown-Listen der Devices angeboten, irgendeine Idee, wie ich sie darauskriege?

Otto123

Hallo tndx,

wenn Du meinst das autocreate sie falsch angelegt hat, dann würde ich die devices einfach löschen und neu anlegen lassen. Du musst ja das pairing nicht löschen, deine Register gehen auch nicht verloren. du gehst einfach auf alle definitionen die mit dem Device zu tun haben (also auch die Channels) und drückst delete this device (ganz unten).
Vorher kopierst Du aber die D-serialNr!
dann machst Du ein set <io> hmPairSerial <D-serialNr>, damit sollte der Aktor neu angelegt werden. Danach wenn es nicht selbst passiert machst Du in dem neu angelegten Aktor noch ein getConfig.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

martinp876

Ist ein fehler. Kanäle sollten bei ein-kanaligen devices nicht angelegt werden. Funktioniert so oder so, also kein Problem.
Ich korrigiere es gerade.

tndx

Zitat von: Otto123 am 17 Dezember 2016, 11:58:38
wenn Du meinst das autocreate sie falsch angelegt hat, dann würde ich die devices einfach löschen und neu anlegen lassen. Du musst ja das pairing nicht löschen, deine Register gehen auch nicht verloren. du gehst einfach auf alle definitionen die mit dem Device zu tun haben (also auch die Channels) und drückst delete this device (ganz unten).
Vorher kopierst Du aber die D-serialNr!
dann machst Du ein set <io> hmPairSerial <D-serialNr>, damit sollte der Aktor neu angelegt werden. Danach wenn es nicht selbst passiert machst Du in dem neu angelegten Aktor noch ein getConfig.

Danke, das hat wunderbar funktioniert!

@martin: es wird immer noch ein Kanal angelegt... Oder warst Du noch nicht fertig mit der Korrektur?

martinp876

Hatte Probleme mit dem Einchecken. Jetzt ist es drin. Also ab morgen in Update.

tndx

Jetzt funktioniert es! Weitere Aktoren können kommen, vielen Dank Martin und Otto!

eldrik

Hallo zusammen,

lässt sich die Laufzeit von 100ms, die beim kurzen Tastendruck ausgelöst wird eigentlich erhöhen?

Meine somfy Rollladenmotoren reagieren scheinbar von sich aus, mit der Bewegung, erst später, daher tut sich bei den 100ms so gut wie garnichts an den Lamellen :(

Greetz
Eldrik

martinp876

verstehe ich nicht.
Kurzer Tastendruck fährt das Rollo komplett runter/hoch. Der Aktor ist an bis der Zustand erreicht ist.
Wenn du das geändert hast (möglich!) dann zeige, was du gemacht hast. Registerliste.

eldrik

#29
Hallo Martin,

Bei dem Jalousieaktor verhält es sich von Haus aus anders, der kurze Tastendruck gilt lediglich 100ms und dient dem verstellen der Lamellen, der lange Tastendruck fährt die Jalousie hoch bzw runter.


Hier wird das Verhalten auch von elv beschrieben, daher habe ich auch die Aussage zu den 100ms
https://www.elv.de/topic/kann-ein-zusaetzlicher-funktaster-auch-die-lamellenfunktion.html

Greetz
Eldrik

Horti

So wie ich das sehe, stehen die 100 ms in shMaxTimeF self01 bzw. self02.

Also erstmal gemäß https://wiki.fhem.de/wiki/HM-LC-Ja1PBU-FM_Funk-Jalousiesteuerung die Register sichtbar machen:
set <name> regSet intKeyVisib visib

Und dann:

set <name> regSet shMaxTimeF 0.2 self01
set <name> regSet shMaxTimeF 0.2 self02


Anstelle "0.2" kannst Du natürlich auch andere Werte eintragen. Achja, ich glaube, bei regSet musst Du den Konfig-Knopf betätigen.



eldrik

Hallo Horti,

vielen Dank für deinen Beitrag, werde ich morgen direkt versuchen, die Registernamen klingen schon einmal vielversprechend :)

Ich berichte!

Greetz
Eldrik

Otto123

Zitat von: Horti am 15 Mai 2017, 21:05:57
Achja, ich glaube, bei regSet musst Du den Konfig-Knopf betätigen.
Normalerweise braucht man das bei den Aktoren nicht.  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

eldrik

Kurzes Feedback, funktioniert wie erhofft  :)

Vielen Dank Horti!

Greetz
Eldrik

Magratheus

Hallo zusammen,

ich habe mal ein paar Fragen zum hm-lc-ja1pbu-fm von dem ich 3 St. im Einsatz habe.
Soweit funktioniert alles ganz gut.
Meine Lamellenwendezeit beträgt 1,2 Sekunden, also habe die entsprechenden Register auf folgende Werte gesetzt:

R-refRunTimeSlats 1.2 s
self01-shMaxTimeF 0,3 s
self02-shMaxTimeF 0,3 s

So ergeben vier kurze Tastendrücke ein vollständiges Wenden der Lamellen. Die Lamellen können also auf zu, 25%, 50%, 75% und auf gestellt werden.

Folgende Fragen:

1. kann mir jemand sagen was das Register posSaveTime bedeutet?

2. set pctLvlSlat: Ich habe das mal so interpretiert, dass ich hier einen %-Wert für die Jalousie in Verbindung mit einem %-Wert für die Lamellenstellung setzen kann Leider tut sich hier gar nichts

3. set pctSlat: Hier vermute ich es handelt sich um die reine Einstellung der Lamellen in % ohne gleichzeitig die Position der Jalousie zu ändern. Leider zeigen ist hier nur die Werte  0 und 100 eine Wirkung

4. bei set pctLvlSlat und set pctSlat gibt es noch die Möglichkeit old oder noChng einzugeben. Ich habe vermutet dass das im Falle von set pctLvlSlat steuern soll, ob die Lamellen beim Runterfahren aus geöffneter Position der Jalousie auf z.B. 50% geschlossen stehen bleiben (noChng), oder nach erreichen von 50% in die offen-Position wechseln sollen (old). Sowohl old als auch noChng zeigen keine Wirkung


Könnt ihr mir mal ein Beispiel für die Verwendung von pctLvlSlat und pctSlat nennen. Kann gut sein, dass ich bei der Eingabe der Werte etwas nicht richtig mache.

Dank Euch
HMLAN, 2 x Raspi, JeeLink, 9 x LC-Bl1PBU-FM, 8 x HM-LC-Dim1TPBU-FM, 3 x HM-LC-SW2-FM, 1 x HM-LC-SW1-FM, 3 x HM-LC-SW1-DR, 2 x HM-LC-SW4-DR, 1 x HM-RC-8, 3 x HM-ES-PMSW1-PL, 1 x HM-PB-2-WM55, 15 x HM-SEC-SC-2, 5 x HM-LC-Ja1PBU-Fm, 4 x LaCrosse Temp., 11 x HM-SEC-SD, Samsung Tablet mit FTUI

Beta-User

Hallo zusammen,

soweit ersichtlich, sind ja der Jalousie- und der Rolladenaktor HW-mäßig vermutlich identisch.

Jetzt habe ich 4 Jalousien, die seit langem am "falschen" Aktor hängen (die Jalousie-Variante gibt's ja noch nicht so lange). Mein Gedanke wäre jetzt, ob es den Versuch lohnen würde, den Rolladenaktoren die firmware für die Jalousie-Aktoren zu spendieren. Hat das schon mal jemand ausprobiert?

Wenn nein: auf der Download-Seite von eQ3 ist diese Firmware leider nicht verfügbar. Kenn jemand eine Quelle oder kann mir die per pm zukommen lassen?

(Dass der fw-update bei dieser Art Aktor sogar bei der "richtigen firmware" ein Drama sein kann, ist mir bewußt; wenn erfolgreich, würde ich hier berichten...)

Danke vorab!

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

himtronics

Zitat von: Beta-User am 03 August 2017, 11:11:04
soweit ersichtlich, sind ja der Jalousie- und der Rolladenaktor HW-mäßig vermutlich identisch.

... Mein Gedanke wäre jetzt, ob es den Versuch lohnen würde, den Rolladenaktoren die firmware für die Jalousie-Aktoren zu spendieren. Hat das schon mal jemand ausprobiert?

Hallo Beta-User,

im Changelog für die Firmware des Rolladenaktors (nicht Jalousieaktor!) steht:


http://www.eq-3.de/Downloads/Software/Firmware/changelog_HM-LC-Bl1PBU-FM_update_V2_11_1_161212.txt

Zitat
Version 2.10.0 - 20160810
--------------------------------------------------------------
** Modification
   * Support for HM-LC-JaPBU-FM

Vielleicht kann man den Rollladenaktor also einfach umstellen auf Jalousie nach einem Firmwareupdate?

Himtronics

Beta-User

Zitat von: himtronics am 04 August 2017, 18:07:55
Vielleicht kann man den Rollladenaktor also einfach umstellen auf Jalousie nach einem Firmwareupdate?
Das war auch mein Gedanke, als ich das neulich gelesen hatte daher habe ich vor ein paar Tagen das update auf 2.11 gemacht (war ein ziemlicher Sch... bei einigen Aktoren).

Dann mal intKeyVisib auf visib gestellt, aber leider kein Register gefunden, das die Umstellung ermöglichen würde :'( .

Oder habe ich was übersehen?

Wie ich das lese, scheint die Integration in FHEM des Aktors ansonsten auch mit den neuen Dreh-Elementen zu funktionieren, oder täuscht das?

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

frank

mal angenommen beide hardware sind identisch (ja und bl) und nutzen die selbe ota-fw.
warum sollte eq3 dann 2 unterschiedliche modelle anbieten?

meine vermutung ist, dass die modelID, die bei jedem model unterschiedlich ist (siehe get hminfo models), zb im bootloader der geräte fest gespeichert ist. genauso wie seriennummer und hmid. abhängig von der modelID könnte sich dann die selbe fw unterschiedlich verhalten. in diesem fall würdest du aber trotzdem immer das selbe model behalten. und abhängig vom model werden die devices zb in fhem unterschiedlich behandelt. sicherlich auch in der ccu, da es unterschiedliche xml-files gibt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Beta-User

@frank: Danke für die Erläuterungen, hatte auch schon vermutet, dass das in einer nicht (ohne weiters) zugänglichen Schicht geregelt wird, wie die firmware sich zu erkennen gibt. Evtl. ist es auch "nur" eine Art Jumper, so ähnlich wie das mit dem Widerstand beim CUL, aber einfacher für eQ3 wäre natürlich das irgendwo im EEPROM oä. abzulegen.

Schade, dass es die Jalousien-Variante vor drei Jahren noch nicht gegeben hat, das softwaremäßige Einstellen der Jalousiedrehung mit FHEM ist echt nicht so einfach...

Wenn also noch einer eine Idee hat, oder seinen Jalousien-Fehlkauf gg. meine (wie gesagt ca. 3 Jahre alte) Rolladen-HW tauschen möchte, bitte melden.

Ansonsten werde ich eQ3 mal anmailen, ob es doch möglich ist, das ohne weitere Eingriffe SW-mäßig in den Griff zu bekommen. Aber bestimmt heißt es da: Wenn, dann nur mir CCU2... (Obwohl: eine OCCU wäre ja nicht so schwer herzustellen, ein PI-Modul habe ich ja ;) ).

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

daelch

#40
Zitat von: Magratheus am 03 August 2017, 10:44:29

3. set pctSlat: Hier vermute ich es handelt sich um die reine Einstellung der Lamellen in % ohne gleichzeitig die Position der Jalousie zu ändern. Leider zeigen ist hier nur die Werte  0 und 100 eine Wirkung


Bei mir kann ich auch Zwischenwerte eingeben. 50 fährt also auf etwa 50%.
Einschränkung: die Lamellen stehen auf 0 (also zu) und ich gebe 10 ein. Der Aktor springt dann kurz an, der Motor bleibt aber stumm. Wenn ich dann von 10 auf 20 stelle, das gleiche Spiel, usw. Am Ende zeigt der Slider eine Behangposition>0, obwohl die Jalousie immer noch in der geschlossenen Position ist.
Frage1: kann ich diese Verzögerung des Motors irgendwo einstellen?

Frage2:
Nach einigem Hin und Her läuft der Taster per kurzem Druck, wie ich möchte. Aber nun funktioniert der lange Druck nicht mehr (Hoch-/Runterfahren). Der Aktor klingt so, als würde das Relais an und sofort wieder abschalten. Was muss ich verändern, damit der lange Druck wieder funktioniert? (ist es evtl. das hier: lgMaxTimeF       :0.1 s?)

Habe die Antwort auf Frage 2 herausgefunden: set Jalousie_OG_Gaestebad regset lgMaxTimeF unused self01 hat das Problem gelöst.


[font=andale mono][font=courier]Jalousie_OG_Gaestebad type:blindActuator -
list:peer register         :value
   0:      confBtnTime      :permanent
   0:      intKeyVisib      :visib
   0:      localResDis      :off
   0:      pairCentral      :0x123ABC
   1:      driveDown        :31.5 s
   1:      driveTurn        :0.5 s
   1:      driveUp          :31.5 s
   1:      posSaveTime      :on
   1:      refRunCounter    :0
   1:      refRunTimeSlats  :1.4 s
   1:      sign             :off
   1:      statusInfoMinDly :2 s
   1:      statusInfoRandom :1 s
   1:      transmitTryMax   :6
   3:self01 lgActionType     :jmpToTarget
   3:self01 lgBlJtDlyOff     :refOff
   3:self01 lgBlJtDlyOn      :dlyOff
   3:self01 lgBlJtOff        :dlyOff
   3:self01 lgBlJtOn         :dlyOff
   3:self01 lgBlJtRampOff    :rampOff
   3:self01 lgBlJtRampOn     :on
   3:self01 lgBlJtRefOff     :rampOff
   3:self01 lgBlJtRefOn      :on
   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.1 s
   3:self01 lgMultiExec      :off
   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     :refOff
   3:self01 shBlJtDlyOn      :dlyOff
   3:self01 shBlJtOff        :dlyOff
   3:self01 shBlJtOn         :dlyOff
   3:self01 shBlJtRampOff    :rampOff
   3:self01 shBlJtRampOn     :on
   3:self01 shBlJtRefOff     :rampOff
   3:self01 shBlJtRefOn      :on
   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       :0.5 s
   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     :dlyOn
   3:self02 lgBlJtDlyOn      :refOn
   3:self02 lgBlJtOff        :dlyOn
   3:self02 lgBlJtOn         :dlyOn
   3:self02 lgBlJtRampOff    :off
   3:self02 lgBlJtRampOn     :rampOn
   3:self02 lgBlJtRefOff     :off
   3:self02 lgBlJtRefOn      :rampOn
   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.1 s
   3:self02 lgMultiExec      :off
   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     :dlyOn
   3:self02 shBlJtDlyOn      :refOn
   3:self02 shBlJtOff        :dlyOn
   3:self02 shBlJtOn         :dlyOn
   3:self02 shBlJtRampOff    :off
   3:self02 shBlJtRampOn     :rampOn
   3:self02 shBlJtRefOff     :off
   3:self02 shBlJtRefOn      :rampOn
   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      :direct
   3:self02 shMaxTimeF       :0.5 s
   3:self02 shMultiExec      :off
   3:self02 shOffDly         :0 s
   3:self02 shOffLevel       :0 %
   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 [/font][/font]



Vielen Dank

martinp876

ich habe das Problem auch.
Per Kommando lassen sich die BL nur in % einstellen - nicht in .
Das kann man allerdings bei Tasten einstellen. Man kann also eine taste definieren, welche .1s fährt (das macht mein Motor allerdings nicht , zu kurz).
Man kann also einen Taster definieren der eine minimalzeit fährt (auch Virtuell, man braucht den Taster nicht). nun kann man mit "press" den virtuellen Tastendruck aktivieren/simulieren. Dann kann man in die Position stottern, die man will.
Funktioniert - ist aber immer noch ungenau, unflexibel und umständlich. Wer es allerdings will kann das einrichten - habe es getestet.

daelch

#42
Hallo Martin,

vielen Dank für Deine Antwort.

Noch eine Frage, wenn folgendes Szenario herrscht: die Jalousie ist komplett hochgefahren. Nun möchte ich den Behang auf 80% runterfahren und die Lamellen auf 50% drehen. Wie muss der Befehl in fhem aussehen? Kann er als ein Befehl abgesendet werden? Oder muss ich die Befehle nacheinander setzen (also erst runterfahren auf 80%, danach um 50% drehen)?

Vielen Dank!

Nachtrag:
Ist es vielleicht so etwas wie dieses hier?

{fhem "set J down 2;; sleep 4;; set J up .5}

(gefunden in einem anderen Thread)

Komfortabler wäre ja der Ansatz von @Magratheus. Diese Funktion würde man von einem Aktor auch erwarten, der extra für Jalousien ausgelegt ist.
Zitat2. set pctLvlSlat: Ich habe das mal so interpretiert, dass ich hier einen %-Wert für die Jalousie in Verbindung mit einem %-Wert für die Lamellenstellung setzen kann Leider tut sich hier gar nichts

Terabyte

Hallo

Ich habe auch eine Frage: Kann man für das pctSlat in fhem einen Slider einbauen? Anscheinend gibt es den Slider nur fürs Hoch und Runterfahren. Super wäre es wenn man für beides einen Slider haben könnte.

Danke schonmal

martinp876


Terabyte

Wie meinst du das? Ich habe nur einen Slider für pct, also hoch/runter aber nicht für pctSlat

Gesendet von meinem XT1635-02 mit Tapatalk


eldrik

Heißt, dass er einige Änderungen eingecheckt hat, die mit dem nächsten Update zur Verfügung stehen.

https://forum.fhem.de/index.php/board,57.0.html

Greetz
Eldrik

Terabyte

Asooo. Danke :)

Was mich jetzt auch noch interessieren würde für was dieses pctLvlSlat ist?
Weiß jemand was es machen sollte?

Gesendet von meinem XT1635-02 mit Tapatalk


daelch

Terabyte: Wahrscheinlich Behanghöhe und Lamellenstellung in einem Befehl an den Aktor übergeben. Nur wie sieht der Befehl syntaktisch aus? Wie wird der Wert des Set Befehls aus? 50;80? (50,80)?

Ich habe es noch nicht rausgefunden  :-\

martinp876


daelch

Hallo Martin,

cmdlist sagt:

pctLvlSlat -value- |old|noChng -slatValue- |old|noChng

Das müsste dann sein:
Set Aktor pctLvlSlat 50 80

Ich teste es zuhause und werde später berichten. Vielen Dank für Deine Hilfe.


daelch

Zitat von: daelch am 18 September 2017, 13:20:42
Das müsste dann sein:
Set Aktor pctLvlSlat 50 80

Ich teste es zuhause und werde später berichten. Vielen Dank für Deine Hilfe.

Darauf folgt der Fehler:

pctLvlSlat requires parameter: -value-|old|noChng -slatValue-|old|noChng

Terabyte

Ist bei mir das selbe

Gesendet von meinem XT1635-02 mit Tapatalk


martinp876

Schaue ich mir an. Hat offensichtlich noch keiner getestet ( ich habe leider nur die alten rolloaktoren für meine jalousien)

daelch

Ich sende Dir gerne einen zu, wenn es beim Testen hilft.

Beta-User

Zitat von: Beta-User am 05 August 2017, 15:55:17
Ansonsten werde ich eQ3 mal anmailen, ob es doch möglich ist, das ohne weitere Eingriffe SW-mäßig in den Griff zu bekommen. Aber bestimmt heißt es da: Wenn, dann nur mir CCU2... (Obwohl: eine OCCU wäre ja nicht so schwer herzustellen, ein PI-Modul habe ich ja ;) ).

Zur Info: Nach Rückmeldung des e3-Q-Services läßt sich (wohl in der CCU2) unter 'Einstellungen -> Geräte -> "Rollladenaktor" -> Einstellen'
die "Aktion" auf "Lamellenverstellung" umstellen.

Vielleicht wäre es möglich, dass jemand, der die CCU2 hat, die Datenpakete für das Umschalten auf Lamellenverstellung (bzw. zurück) mitschneidet? Dann sollte es doch möglich sein, das entsprechende Register auch in CUL_HM als Option anzubieten, oder?

Ansonsten: Wenn mir jemand erklärt, wie vorzugehen ist, würde ich ggf. halt bei Gelegenheit mal einen PI zur OCCU umrüsten und dann mit dem CUL sniffen (wieder mal Neuland, wäre dankbar, wenn das nicht notwendig wäre)...

[/font]
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Terabyte

Die Lamellenverstellung funktioniert ja mit dem Befehl pctSlat.

Was nicht funktioniert ist Öffnen bzw. Schließen und "gleichzeitig" verstellen der Lamellen.
Die sollte wohl der Befehl pctLvlSlat machen.

Gesendet von meinem XT1635-02 mit Tapatalk


Beta-User

Zitat von: Terabyte am 19 September 2017, 17:34:02
Die Lamellenverstellung funktioniert ja mit dem Befehl pctSlat.
Für den Fall, dass sich das auf meinen Beitrag bezog:

Ich habe dazu jetzt mal ein seperates Thema aufgemacht, die beiden Register sind für einen Roadenaktor in CUL_HM nicht verfügbar.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Terabyte

Zitat von: martinp876 am 17 September 2017, 19:48:32
ist drin

Hallo

Hab heute ein fhem update gemacht und der Slider für pctSlat ist nun da. Allerdings wenn ich den Slider verschiebe, dann tut sich leider nichts.

martinp876


martinp876

so, hatte ich schlecht implementiert. Sollte jetzt besser sein.

Terabyte

Hallo

Der Slider für pctSlat funktioniert nun. Aber 2 Sachen sind mir aufgefallen.

1. Der Slider für pctSlat zeigt immer den Wert von pct an.

2. Wenn ich mit dem Slider pctSlat den Wert ändere, dann werden immer zuerst die Lamellen zugemacht und dann erst auf den eingestellten Wert gestellt

Gesendet von meinem XT1635-02 mit Tapatalk


daelch

Hallo Martin,

vielen Dank für Deine Mühen! Wie können wir dazu beitragen, um pctlvlslat zum Laufen zu bringen? Ich möchte nicht immer nur als Bittsteller auftreten, habe als Anfänger aber zu wenig Durchblick. Wenn Du mir ein paar Stichworte an die Hand gibst, fuchse ich aber gerne in das Thema rein, um zu helfen, den Knoten zu lösen.

Viele Grüße

martinp876

Ah, wir brauchen das Reading pctSlat.. macht euch erst einmal ein userreading.

Das mit dem erst zu dann einstellen ist fw und sicher dem Fakt geschuldet, dass der Aktor den Wert nicht rücklesen kann . Also erst einmal auf null, dann einstellen. Hm... Ist halt so.

daelch

Wie meinst Du das? Also den Aktor erst zurücksetzen in FHEM (Löschen?) und neu anlegen?

Danke für Deine Hilfe!

VG

Terabyte

Hallo Martin

Danke erst mal für deine Mühe.

Was meinst du damit dass der Aktor den Wert nicht rücklesen kann?

Stelle ich das pctSlat mit "set pctSlat Wert" dann werden die Lamellen nicht zuerst auf 0 gefahren und dann erst auf den Wert, sondern sie fahren direkt auf den Wert.

Gesendet von meinem XT1635-02 mit Tapatalk


martinp876

Ok. Dann verstehe ich den kommentar nicht. Der aktor errechnet den wert und könnte bei mehrfachem fahren ausser tritt kommen. Daher könnte eq3 referenzfahrten vorgesehen haben. So ist das bei level realisiert ( die register ref).
Aber d a ich den fw code nicht kenne und keinen aktor habe ist das alles Spekulation.
Bis auf den slider sollte jetzt aber alles passen.

Terabyte

#67
Hallo

In den Screenshots kann man sehen dass der Schalter auch das Slat auswerten kann. Allerdings heißt es dort nicht pctSlat sondern nur Slat. Vielleicht ist das der Grund warum der Slider den Wert nicht richtig anzeigt.

Auf dem 2. Screenshot kann man sehen dass beide Slider immer den selben Wert anzeigen.



Gesendet von meinem XT1635-02 mit Tapatalk
(https://uploads.tapatalk-cdn.com/20171001/396dc8ab4e35823dd419328801cb4531.jpg)(https://uploads.tapatalk-cdn.com/20171001/2eb2a9a56f7362fdcf6ad8dba036a02a.jpg)

martinp876

genau - sagte ich doch. was war unklar?

ich kann jetzt
1. das Kommando pctSlat nach slat umbenennen
2. das Reading slat gegen pctSlat tauschen
3. slat im Reading als pctSlat und slat anzeigen

alles unschön, da sich die User schon an ein Kommando gewöhnt haben - und dopplete Readings unschön sind.
Ich mache 2 - sollte den geringsten Einfluss haben.

Terabyte

Aso du meintest man sollte mit dem Userreading das slat zu pctSlat verlinken?
Dann sollte der Status richtig angezeigt werden?


Dass der slat mit dem Slider zuerst immer auf 0 fährt könnte auch etwas damit zu tun haben oder?


Gibt es hier irgendwelche Möglichkeiten die ich selbst testen könnte? Ist für dich sicher nicht so einfach wenn du den Schalter nicht hast.

Danke auf jeden Fall



Gesendet von meinem XT1635-02 mit Tapatalk


martinp876

Ich habe das Reading nach pctSlat geändert. Ab morgen verfügbar. Also brauchst du kein userreading mehr. Aber das war die Idee.

Dass der Aktor immer erst nach 0 fährt hängt damit nicht zusammen. Ob man das noch verstellen kann ist mir nicht bekannt. Evtl ist es, wie gesagt, eine Eigenart des Aktors.

Ein Aktor kann grundsätzlich über 2wege angesteuert werden:
A) das Kommando. Hier wird alles im Kommando festgelegt. Man müsste also ein Bit finden, welches das beeinflusst. Es ist aber nichts mehr frei.
B) die Peers. Dabei definiert man recht viel, kann meist mehr Details festlegen. Mit dem Trigger wird es dann ausgelöst. Kann man von der Zentrale mit Set press von überall auslösen
Hier sehe ich aktuell keine Register zum steuern....

Terabyte

#71
Hallo martinp876

Danke. Der Slider zeigt nun auch den Wert von pctSlat richtig an.

Das Verhalten, dass immer erst 0 angefahren wird und dann die mit dem Slider gesetzte Position ist, wie du schon vermutest hast, noch immer vorhanden.

Ist zwar etwas eigenartig, denn wie schon erwähnt, macht er das nicht wenn ich über den Befehl "set pctSlat Wert" die Jalousie verstelle.

Was mir soeben noch aufgefallen ist: Ist die Jalousie nicht ganz unten, also zum Beispiel halb hochgefahren und ich änderen den pctSlat mit dem Slider, dann fährt die Jalousie zuerst komplett runter und ändert dann erst das pctSlat.


Ich habe noch eine Frage was die Bedienung direkt am Schalter betrifft.
Ist es irgendwie möglich, dass wenn man den Schalter kurz drückt der pctSlat um zu Beispielt 25% erhöht oder verringert wird?

martinp876

Wenn es einen Unterschied bei den Kommandos gibt kann man das klären.
Sniffe einfach einmal beide Aktionen.

Das mit dem kurzen Druck ist schwierig. Wir sehen den kurzen Druck ja nicht. Also muss es der Aktor melden.

Du kannst auch einmal die statusreq sniffen. Möglich, dass das gesendet wird...

Terabyte

#73
Hallo

Ich hab jetzt das Kommando mal gesnifft.

Es scheint so dass er beim einstellen von pctSlat auch den level auf 0 setzt.

2017-10-08 09:32:03.054 CUL_HM RaffstoreWZ levelSlat: set_70
2017-10-08 09:32:03.111 CUL_HM RaffstoreWZ level: set_0
2017-10-08 09:32:03.167 CUL_HM RaffstoreWZ set_0


Wie kann man das statusreq sniffen?

Bekommt man irgendwo die Datei 10_CUL_HM.pm her, bevor der Slider eingebaut wurde?

Terabyte

#74
Ich habe die alte 10_CUL_HM.pm nun selbst gefunden. Vom 13.08.2017. Diese war bevor der Slider für pctSlat vorhanden war.

Dort habe ich dann einfach folgende Zeile hinzugefügt. Dort wo schon die Zeile für den Slider "pct" vorhanden war.

$usg =~ s/ pctSlat/ pctSlat:slider,0,1,100/;

Damit funktioniert der Slider auch ohne dass immer vorher 0 angefahren wird.
Dort wird nur leider der neue Wert vom Slider dann nicht übernommen. Also der Wert von pctSlat ändert sich nicht mit.

Edit:
Habe nun noch folgendes hinzugefügt und nun scheint es zu funktionieren.

push @evtEt,[$mh{cHash},1,"pctSlat:".hex($mI[5])/2];

Terabyte

Hallo

Ist es möglich dass von mir gemachte Konstrukt in fhem zu übernehmen so dass es auch nach einem Update noch funktioniert?

Und noch eine Frage. So wie es "vorher" war. Also dass zuerst 0 angefahren wird usw... Dies würde eigentlich optimal für den Befehl pctlvlslat passen. Lässt sich das irgendwie von pctSlat nach pctlvlSlat ändern?

Danke

Gesendet von meinem XT1635-02 mit Tapatalk


martinp876

Ist doch schon lang drin.
Stimmt was nicht?

Terabyte

Hallo Martin

Aso. Hast du meine probiererei hinzugefügt?

Gesendet von meinem XT1635-02 mit Tapatalk


daelch

Pctlvlslat funktioniert nun. Vielen Dank an alle.

Terabyte

Hallo

Ich habe wieder etwas herumprobiert. Aber ich habe es nun so weit gebracht, dass der Slider für pctSlat und auch der Befehl pctlvlSlat problemlos funktionieren.
Ich habe die Datei beigefügt. Habe dafür die letzte Version überarbeitet.

Evtl. kann die jemand in das github übernehmen? Sonst sind ja nach einem update die Änderungen wieder weg.

Danke

daelch

#80
Ich habe versucht, über das Modul Lightscene verschiedene "Szenen" zu bilden ("Geschlossen", "Sichtschutz", "Lichtschutz", "Offen").

Über "set Jalousien_Erdgeschoss all pctLvlSlat 0 40" wird der Befehlt pctLvlSlat korrekt ausgeführt, also er fährt erst ganz runter und dann ein wenig hoch (Lamellen auf 40% geöffnet). Durch das "wenige Hochfahren" für die Lamellen ergibt sich dann prozentual eine Gesamtposition von 1% in meinem Fall. Wenn ich jedoch die Szene speichern möchte, speichert er aber genau dieses 1%. Und zwar als 1% pct und nicht als 0% pct und 40% lvlSlat was gleichbedeutend wäre mit "pctLvlSlat 0 40"

Kurzfassung: Lightscene speichert nicht pctLvlSlat sondern pct. Wenn man von oben runterfährt bleiben die Lamellen geschlossen. Wenn die Jalousie vorher zu war, werden die gewünschten 40% Öffnung erreicht.

Frage: wie kann ich Lightscene beibringen, pctLvlSlat zu speichern? Oder sollte ich statt Lightscene eher Structure wählen?

Vielen Dank!

Terabyte

Hallo

Du könntest mal versuchen die Zeit für das Drehen der Jalousie zu erhöhen. Auf 1 Sek. zum Beispiel. Vielleicht behält er dann länger das pct auf 0%.
Bei mir ist es aber auch so, dass wenn ich das pctSlat auf zum Beispiel 50% stelle, sich auch der Wert für pct auf 1% ändert.

Für meinen Einsatzzweck ist das aber auch kein Problem.

Wie sieht denn dein Lightscene Kommando aus?

NewMatic

Hi,

ich hab mir auch zwei dieser Jalousieaktoren besorgt, bekomme aber nicht die Neigung der Lamellen hin.
Egal ob ich:
set wz_JalousieFenster pctSlat 2

oder:
set wz_JalousieFenster pctSlat 50
setze, die Jalousie fährt immer ein Stück hoch und dreht die Lamellen somit um 90°...

klappt es bei euch? mache ich beim Befehl etwas falsch?

danke, Tobi


Terabyte

Hallo

Ja das Einstellen der Neigung für die Lamellen funktioniert bei mir.
Hast du eventuell beim Konfiguieren der Fahrzeiten den driveTurn Befehl vergessen?

NewMatic

Hi Terabyte,

danke für deine Antwort!
Ja Fahrzeiten sind wie folgt eingestellt:
R-driveDown 50 s
R-driveTurn 1 s
R-driveUp 52 s


Außerdem habe ich wie in diesem Thread von HORTI beschrieben die Register für shMaxTimeF geändert, da auch bei mir bei kurzen Tasterdruck am Aktor die Lamellen sich nicht mal richtig bewegt haben:
set <name> regSet shMaxTimeF 0.2 self01
set <name> regSet shMaxTimeF 0.2 self02


Du setzt die Lamellen genau so?:

set <name> pctSlat MeinWinkelInGrad



Terabyte

Hallo

Ja ich setzte die Lamellen so wie du geschrieben hast.

Ich habe als driveTurn allerdings 0.5 eingestellt. Vielleicht ist 1sec für driveTurn schon zu viel?

NewMatic

Ja da werd ich noch rumspielen, sobald ich wieder zuhause bin... danke erstmal :)

NewMatic

Erstmal allen ein gutes neues Jahr :)
Bin leider erst jetzt dazu gekommen. Aber ja stellt man die driveturn zeit zu hoch, fährt er immer zu hoch und dann sieht es halt so aus als fährt er 90° an. Die Zeit ist mit der Somfy steuerung etwas blöd zu messen (etwas träge). Hab jetzt auf verdacht 0.5sec eingesellt und damit funktioniert es prima. Danke nochmals für den Hinweis!

LG Tobi

NewMatic

Hallo,

Ich habe Probleme mit dem Jalousie-Aktor von Homematic. Manche werden das Thema vielleicht aus diesem Post (https://forum.fhem.de/index.php/topic,82068.15.html) kennen, wollte es hier aber nochmal zusammenfassen, damit nicht alle die UI-Geschichte studieren müssen :)

Folgendes fehlerhafte Verhalten habe ich beim HM-LC-Ja1PBU-FM feststellen müssen:
Wenn der derzeitige wert von pctSlat z.B: 50 ist, und man macht " set wz_JalousieFenster pctSlat 25", passiert beim ersten mal gar nichts.... wird das gleiche nochmal gesetzt (set wz_JalousieFenster pctSlat xx) setzt er den Wert pctSlat auf 26 (keine Idee woher die Verschiebung um 1 herkommt).
Das ganze kann man recht gut nachstellen bei mir (ca. jedes zweite mal nimmt er zwar den Wert aber die Differenz um 1 passiert jedes mal).
Wird der pctSlat höher als der aktuelle pctSlat gesetzt gibt es überhaupt keine Probleme.... also wenn pctSlat=50 ist und man macht "set wz_JalousieFenster pctSlat 75) stellt er auf 75 ein.

BTW: verwendet man setreadings anstatt set, funktioniert es in beide richtungen.... aber das sollte denke ich nicht verwendn und triggert auch keine Aktion am Aktor.
Ich hoffe jemand kann mir mit meinem Problem helfen, vielleicht können es auch Leute mit einem  HM-LC-Ja1PBU-FM  versuchen nachzustellen?

Vielen Dank im Voraus!
Tobi
Beitrag editieren

Terabyte

Hallo

Ist bei mir nicht so.
Habe es gerade getestet. Zuerst pctSlat 50. Dann etwas gewartet und pctSlat 25.
Hat problemlos funktioniert.


Gesendet von meinem XT1635-02 mit Tapatalk


martinp876

Hast du einmal das Protokoll geprüft?
1. Wenn beim ersten mal nichts passiert.... Warum nicht? Wird eine Nachricht gesendet? Wird sie bestätigt? Mit welchen wert?
2. Wenn beim 2. Mal die etwas passiert... Was wird gesendet? Ist es ein rechenfehler in fhem oder ein rundungsfehler im aktor? Wird der wert der gesendet wird auch ausgegeben?
3. Tritt der Fehler nun beim runter regeln oder bei niedrigen werten auf?  Also was passiert wenn man von 10 auf 25 regelt und was von 90 auf 75?

Das kannst du doch alles selbst testen. Ruck zuck. Und wenn du nicht weiter weisst sniffen und die Lage Posten.

Setreadings.... Was soll das? Ich bin überzeugt, dass man den wert in das reading schreiben kann. Gut getestet, was soll es klären?

NewMatic

Hallo Martin,

@1.) Der Befehl wird abgesetzt, denke ich. Zumindest steht im Log leveltSlat: set_30 und dann nach den UserReadings set_PctSlat 30. Der Wert passt hier auch. Wartet man nun 2 Minuten auf den nächsten statusrequest  oder setzt man "set wz_JalousieFenster statusRequest" ab schreibt er pctSlat: 31
hier mal ein Auszug aus dem Log ( Werte wurden in dieser Reihenfolge gesetzt: 15,50,30):

2018-01-10_09:08:43 wz_JalousieFenster set_pctSlat 15
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSoll: 50
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSollOff: 0
2018-01-10_09:08:43 wz_JalousieFenster deviceMsg: 97 (to myHmUART)
2018-01-10_09:08:43 wz_JalousieFenster level: 97
2018-01-10_09:08:43 wz_JalousieFenster motor: up:97
2018-01-10_09:08:43 wz_JalousieFenster pct: 97
2018-01-10_09:08:43 wz_JalousieFenster pctSlat: 25
2018-01-10_09:08:43 wz_JalousieFenster slatDir: up
2018-01-10_09:08:43 wz_JalousieFenster 97
2018-01-10_09:08:43 wz_JalousieFenster timedOn: off
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSoll: 50
2018-01-10_09:08:43 wz_JalousieFenster pctSlatSollOff: 0
2018-01-10_09:08:46 wz_JalousieFenster deviceMsg: 96.5 (to myHmUART)
2018-01-10_09:08:46 wz_JalousieFenster level: 96.5
2018-01-10_09:08:46 wz_JalousieFenster motor: stop:96.5
2018-01-10_09:08:46 wz_JalousieFenster pct: 96.5
2018-01-10_09:08:46 wz_JalousieFenster pctSlat: 15
2018-01-10_09:08:46 wz_JalousieFenster slatDir: stop
2018-01-10_09:08:46 wz_JalousieFenster 96.5
2018-01-10_09:08:46 wz_JalousieFenster timedOn: off
2018-01-10_09:08:46 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:08:46 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:05 wz_JalousieFenster levelSlat: set_50
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:05 wz_JalousieFenster set_pctSlat 50
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:05 wz_JalousieFenster deviceMsg: 96.5 (to myHmUART)
2018-01-10_09:09:05 wz_JalousieFenster level: 96.5
2018-01-10_09:09:05 wz_JalousieFenster motor: up:96.5
2018-01-10_09:09:05 wz_JalousieFenster pct: 96.5
2018-01-10_09:09:05 wz_JalousieFenster pctSlat: 15
2018-01-10_09:09:05 wz_JalousieFenster slatDir: up
2018-01-10_09:09:05 wz_JalousieFenster 96.5
2018-01-10_09:09:05 wz_JalousieFenster timedOn: off
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSoll: 40
2018-01-10_09:09:05 wz_JalousieFenster pctSlatSollOff: -10
2018-01-10_09:09:08 wz_JalousieFenster deviceMsg: 98 (to myHmUART)
2018-01-10_09:09:08 wz_JalousieFenster level: 98
2018-01-10_09:09:08 wz_JalousieFenster motor: stop:98
2018-01-10_09:09:08 wz_JalousieFenster pct: 98
2018-01-10_09:09:08 wz_JalousieFenster pctSlat: 50
2018-01-10_09:09:08 wz_JalousieFenster slatDir: stop
2018-01-10_09:09:08 wz_JalousieFenster 98
2018-01-10_09:09:08 wz_JalousieFenster timedOn: off
2018-01-10_09:09:08 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:08 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:09:16 wz_JalousieFenster levelSlat: set_30
2018-01-10_09:09:16 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:16 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:09:17 wz_JalousieFenster set_pctSlat 30
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:09:17 wz_JalousieFenster deviceMsg: 98 (to myHmUART)
2018-01-10_09:09:17 wz_JalousieFenster level: 98
2018-01-10_09:09:17 wz_JalousieFenster motor: up:98
2018-01-10_09:09:17 wz_JalousieFenster pct: 98
2018-01-10_09:09:17 wz_JalousieFenster pctSlat: 50
2018-01-10_09:09:17 wz_JalousieFenster slatDir: up
2018-01-10_09:09:17 wz_JalousieFenster 98
2018-01-10_09:09:17 wz_JalousieFenster timedOn: off
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSoll: 75
2018-01-10_09:09:17 wz_JalousieFenster pctSlatSollOff: 25
2018-01-10_09:10:18 wz_JalousieFenster deviceMsg: 97 (to myHmUART)
2018-01-10_09:10:18 wz_JalousieFenster level: 97
2018-01-10_09:10:18 wz_JalousieFenster motor: down:97
2018-01-10_09:10:18 wz_JalousieFenster pct: 97
2018-01-10_09:10:18 wz_JalousieFenster pctSlat: 31
2018-01-10_09:10:18 wz_JalousieFenster slatDir: down
2018-01-10_09:10:18 wz_JalousieFenster 97
2018-01-10_09:10:18 wz_JalousieFenster timedOn: off
2018-01-10_09:10:18 wz_JalousieFenster pctSlatSoll: 56
2018-01-10_09:10:18 wz_JalousieFenster pctSlatSollOff: 6


@2.) beim 2ten mal macht er vermutlich das gleiche wie mit einem statusrequest? Das es mit dem StatusRequest auch auf einen um 1 verschobenen Wert gesetzt wird, ist mir leider erst gestern aufgefallen. Wie kann ich das ermitteln ob es ein Rechenfehler in fhem oder rundungsfehler am aktor ist?
Der Wert wird nach einem statusRequest ausgegeben (mit der Differenz um 1)

@3.) Es tritt nur auf wenn pctSlat größer war. Hab nicht wirklich Unterschiede bei niedrigen oder hohen Werten feststellen können. Es ist leider auch nicht ganz regelmäßig. Beim Hochregeln also neur Wert größer aktuellen pctSlat ist es noch nie passiert...

Das mit den SetReadings wollte ich nur als Info erwähnen...

LG Tobi

martinp876

mir ist es unklar.

pctSlatSoll, pctSlatSollOff kenne ich nicht.
wenn ich die Readings um uninteressante bereinige sieht es perfekt aus. Ich habe level und slat readings gruppiert, mehr nicht.

Du solltest slatDir berücksichtigen. Solange das nicht "stop" ist, ist auch der Endwert nicht erreicht.

Was ist nun das Problem? dass der Aktor den Endwert nicht schreibt? Der Status wird nicht übermittelt? Das machen manche Devices.
Ich könnte einen Statusrequest einbauen, um den Status automatisch (in Grenzen) zu erfragen. Ist im Prinzip schon eingebaut. Natürlich solltest du autoReadReg nicht komplett abschlaten. dann hättest du dich entschieden, es selbst in die Hand zu nehmen.


Zitat09:08:43 wz_JalousieFenster set_pctSlat 15
09:08:43 wz_JalousieFenster pctSlat: 25
09:08:43 wz_JalousieFenster slatDir: up
09:08:43 wz_JalousieFenster level: 97
09:08:43 wz_JalousieFenster motor: up:97

09:08:46 wz_JalousieFenster level: 96.5
09:08:46 wz_JalousieFenster motor: stop:96.5
09:08:46 wz_JalousieFenster pctSlat: 15
09:08:46 wz_JalousieFenster slatDir: stop

09:09:05 wz_JalousieFenster set_pctSlat 50
09:09:05 wz_JalousieFenster pctSlat: 15
09:09:05 wz_JalousieFenster slatDir: up
09:09:05 wz_JalousieFenster levelSlat: set_50
09:09:05 wz_JalousieFenster level: 96.5
09:09:05 wz_JalousieFenster motor: up:96.5

09:09:08 wz_JalousieFenster level: 98
09:09:08 wz_JalousieFenster motor: stop:98
09:09:08 wz_JalousieFenster pctSlat: 50
09:09:08 wz_JalousieFenster slatDir: stop

09:09:17 wz_JalousieFenster set_pctSlat 30
09:09:17 wz_JalousieFenster pctSlat: 50
09:09:17 wz_JalousieFenster slatDir: up
09:09:16 wz_JalousieFenster levelSlat: set_30
09:09:17 wz_JalousieFenster level: 98
09:09:17 wz_JalousieFenster motor: up:98

09:10:18 wz_JalousieFenster level: 97
09:10:18 wz_JalousieFenster motor: down:97
09:10:18 wz_JalousieFenster pctSlat: 31
09:10:18 wz_JalousieFenster slatDir: down

NewMatic

Hi Martin,

pctSlatSoll, pctSlatSollOff sind UserReadings von mir.
Ich habe jetzt mal meinen zweiten Jalousie Aktor zusammengelötet und gepaired. Und auch bei diesem kann ich das gleiche verhalten nachstellen. Hier habe ich aber bewusst noch keine UserReadings angelegt.

ZitatDu solltest slatDir berücksichtigen. Solange das nicht "stop" ist, ist auch der Endwert nicht erreicht.
Das bleibt mir auf up, bis ich einen StatusRequest mache. Dann ist es auf down und pctSlat ist genau um 1 höher als der Wert dein ich mit set pctSlat gesetzt hätte.

ZitatWas ist nun das Problem? dass der Aktor den Endwert nicht schreibt? Der Status wird nicht übermittelt? Das machen manche Devices.
Ich könnte einen Statusrequest einbauen, um den Status automatisch (in Grenzen) zu erfragen. Ist im Prinzip schon eingebaut. Natürlich solltest du autoReadReg nicht komplett abschlaten. dann hättest du dich entschieden, es selbst in die Hand zu nehmen.

Das kleinere Problem (ist wirklich klein und nicht so wichtig), dass der Wert von pctSlat um 1  verschoben ist, sobald pctSlat kleiner als derzeitiger pctSlat gesetzt wird.
Mein größeres Problem ist, dass wenn pctSlat kleiner als jetztiger pctSlat gesetzt wird, er oft nicht aktualiesiert, bis ein statusRequest erfolgt.
Ich habe autoReadReg mal auf 5 und 8 gestellt, jedoch konnte ich keine Veränderung wahr nehmen.

LG Tobi

martinp876

Ok. Der aktor scheint so zu reagieren. Hatte ich schon oefter, insbesondere bei kurzen wechseln. Dann sendet das device nicht korrekt den finales status. Ist m.E. ein fw bug.
Daher setze ich statusreq ab, wenn der aktor nicht stoppt. Hoert sich an, als ob es auch hier notwendig ist.
Schicke mir ein log (sniffen) des vorgangs mit beschreibung und den events des aktors. Dann addiere ich es. Wie immer, wenn autoReadReg es zulässt