FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: kroman am 01 Oktober 2017, 17:42:55

Titel: [gelöst] Wie weiter nach FW update von HM-LC-Sw1PBU-FM?
Beitrag von: kroman am 01 Oktober 2017, 17:42:55
Hallo zusammen,

ich suche hier schon eine Weile rum, finde jedoch keine Lösung zu meinem Anliegen.
Deshalb schrei ich hier mal um Hilfe.

Ich habe also einen HM-LC-Sw1PBU-FM mit alternativer Firmware geflashed. Anhand dieser Anleitung:


https://wiki.fhem.de/wiki/HM-LC-Sw1PBU-FM_Alternative_Firmware_am_Raspi_bauen_u._flashen
(https://wiki.fhem.de/wiki/HM-LC-Sw1PBU-FM_Alternative_Firmware_am_Raspi_bauen_u._flashen)

Hat alles geklappt, außer die Fuses wollten sich nicht setzen lassen.
Hab aber gefunden, dass auch andere das Problem hatten und in folgender Reihenfolge war dann alles erfolgreich:


avrdude -p m644p -P gpio -c gpio -U flash:w:bootloader.hex
avrdude -p m644p -P gpio -c gpio -U lfuse:w:0xFD:m -U hfuse:w:0xD8:m -U lock:w:0x3F:m
avrdude -p m644p -P gpio -c gpio -U flash:w:firmware.hex


Dann Schalter in fhem gelöscht, Schalter angeschlossen und neu angelernt, danach getConfig.
Hier das Ergebnis:


Internals:
   CFGFN
   DEF        52C28D
   IODev      kroUART
   LASTInputDev kroUART
   MSGCNT     13
   NAME       HM_52C28D
   NOTIFYDEV  global
   NR         758
   STATE      ???
   TYPE       CUL_HM
   kroUART_MSGCNT 13
   kroUART_RAWMSG 0501003AC2805E52C28D4F6D880000000000000377000000
   kroUART_RSSI -58
   kroUART_TIME 2017-10-01 17:03:42
   lastMsg    No:C2 - t:5E s:52C28D d:4F6D88 0000000000000377000000
   protLastRcv 2017-10-01 17:03:42
   protSnd    7 last_at:2017-10-01 17:03:15
   protState  CMDs_done
   rssi_at_kroUART lst:-58 min:-59 max:-58 cnt:13 avg:-58.46
   READINGS:
     2017-10-01 17:01:34   CommandAccepted yes
     2017-10-01 17:01:33   D-firmware      1.5
     2017-10-01 17:01:33   D-serialNr      PS00000002
     2017-10-01 17:03:15   PairedTo        0x4F6D88
     2017-10-01 17:01:37   R-pairCentral   0x4F6D88
     2017-10-01 17:03:15   RegL_00.          02:01 05:00 0A:4F 0B:6D 0C:88 12:00 00:00
   helper:
     HM_CMDNR   194
     cSnd       014F6D8852C28D00040000000000,014F6D8852C28D00040000000000
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +52C28D,00,01,00
       nextSend   1506870222.3586
       prefIO
       rxt        0
       vccu
       p:
         52C28D
         00
         01
         00
     mRssi:
       mNo        C2
       io:
         kroUART    -56
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf
       qReqStat
     role:
       chn        1
       dev        1
     rssi:
       at_kroUART:
         avg        -58.4615384615385
         cnt        13
         lst        -58
         max        -58
         min        -59
     shadowReg:
     tmpl:
Attributes:
   IODev      kroUART
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.5
   model      unknown
   room       CUL_HM
   serialNr   PS00000002
   subType


Das Modul habe ich geladen (zuvor schon):


Latest Revision: 15154

File                                  Rev   Last Change

fhem.pl                               15112 2017-09-21 07:22:33Z rudolfkoenig
96_allowed.pm                         14888 2017-08-13 12:07:12Z rudolfkoenig
No Id found for 99_Asksin_HM_LC_Sw1PBU_FM_CustomFW.pm
90_at.pm                              14995 2017-09-03 14:23:14Z rudolfkoenig
...


Wenn ich auf den Schalter drücke, passiert folgendes:

Oben:

2017-10-01 17:04:46 CUL_HM HM_52C28D trigDst_4F6D88: noConfig
2017-10-01 17:04:46 CUL_HM HM_52C28D trigger: Short_8
2017-10-01 17:04:46 CUL_HM HM_52C28D trigger_cnt: 8


Unten:

2017-10-01 17:04:50 CUL_HM HM_52C28D trigDst_4F6D88: noConfig
2017-10-01 17:04:50 CUL_HM HM_52C28D trigger: Short_7
2017-10-01 17:04:50 CUL_HM HM_52C28D trigger_cnt: 7


Was ich komisch finde, ist:


- model unknown


Ist das normal?


- serialNr PS00000002


Das ist nicht die die ich in /root/hm_switch/Asksin_OTA_Bootloader/devices/HM-LC-Sw1PBU-FM.h angegeben habe.

- noConfig im log

get regList liefert folgendes:


list:         register | range              | peer     | description
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   1: sign             |     literal        |          | signature (AES) options:off,on


get regTable:


No regs found for:

HM_52C28D type: -
list:peer register         :value
   0:      pairCentral      :0x4F6D88


Mit der originalen FW war hier viel mehr.

Nun weiß ich 1. nicht ob mit dem flashen alles in Ordnung war und 2. wie ich den Schalter selbst mit set regSet und in fhem konfigurieren muss, damit er tut was ich von ihm will.

Das hat mit der originalen FW tadellos funktioniert:


set <HM_LC_Sw1PBU_FM_Sw_01> regSet shActionType  jmpToTarget self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOn      dlyOff      self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOff     dlyOn       self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOn   on          self01;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOff  off         self01;

set <HM_LC_Sw1PBU_FM_Sw_01> regSet shActionType  jmpToTarget self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOn      dlyOff      self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtOff     dlyOn       self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOn   on          self02;
set <HM_LC_Sw1PBU_FM_Sw_01> regSet shSwJtDlyOff  off         self02;


z.B.

set HM_52C28D regSet shActionType  jmpToTarget self01;


liefert jetzt folgendes:


shActionType failed: supported register are pairCentral sign


Danke im Voraus!

Gruß,
kroman
Titel: Antw:Wie weiter nach FW update von HM-LC-Sw1PBU-FM?
Beitrag von: kroman am 01 Oktober 2017, 18:08:36
Hab eine Idee.
Bitte aktuell nicht zu viel Zeit investieren.
Melde mich bald wieder.
Titel: Antw:Wie weiter nach FW update von HM-LC-Sw1PBU-FM?
Beitrag von: kroman am 02 Oktober 2017, 21:53:15
So, da bin ich wieder.

Ich war nicht sicher, ob ich im Arduino IDE alles richtig gemacht hatte, da zum ersten mal verwendet.
Nun hab ich alles nochmal kontrolliert.
Die Serial ID in Register.h Zeile 16 hatte ich vergessen anzupassen und jetzt nachgeholt. Das erklärt wohl das:

Zitat
- serialNr PS00000002

Der Rest war auch vorher schon richtig denke ich.
Zusätzlich habe ich noch wie im Wiki beschrieben gleich die Zentrale eingetragen.
Danach nochmals kompiliert und geflashed.

Das Ergebnis ist bis auf die serialNr recht ähnlich dem davor.

Danach habe ich ein


set HM_52C28D virtual 1


welches glaube ich notwendig ist gemacht (?).

Das list danach:


Internals:
   CFGFN
   DEF        52C28D
   IODev      kroUART
   LASTInputDev kroUART
   MSGCNT     315
   NAME       HM_52C28D
   NOTIFYDEV  global
   NR         250900
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 HM_52C28D_Btn1
   kroUART_MSGCNT 315
   kroUART_RAWMSG 050101362C805E52C28D4F6D88000000000000037B000000
   kroUART_RSSI -54
   kroUART_TIME 2017-10-02 21:37:15
   lastMsg    No:2C - t:5E s:52C28D d:4F6D88 000000000000037B000000
   protLastRcv 2017-10-02 21:37:15
   protSnd    13 last_at:2017-10-02 21:24:29
   protState  CMDs_done
   rssi_at_kroUART cnt:315 max:-54 min:-73 lst:-54 avg:-61.81
   READINGS:
     2017-10-02 20:51:01   CommandAccepted yes
     2017-10-02 20:13:26   D-firmware      1.5
     2017-10-02 20:13:26   D-serialNr      NEQ1831929
     2017-10-02 20:51:51   PairedTo        0x4F6D88
     2017-10-02 20:13:31   R-pairCentral   0x4F6D88
     2017-10-02 20:51:51   RegL_00.          02:00 05:00 0A:4F 0B:6D 0C:88 12:00 00:00
     2017-10-02 21:24:29   recentStateType info
     2017-10-02 21:24:29   state           CMDs_done
     2017-10-02 21:24:22   trigger         Short_6
     2017-10-02 20:57:19   triggerTo_208557 Short_5
     2017-10-02 20:57:16   triggerTo_21D629 Short_4
     2017-10-02 21:24:22   triggerTo_21D63B Short_6
     2017-10-02 21:24:22   trigger_cnt     6
   helper:
     BNO        6
     BNOCNT     1
     HM_CMDNR   44
     cSnd       114F6D8852C28D0400,014F6D8852C28D00040000000000
     cfgChkResult No regs found for:

HM_52C28D type: -
list:peer register         :value
   0:      pairCentral      :0x4F6D88



     supp_Pair_Rep 0
     ack:
       208557     HM_52C28D_Btn1:03
       21D629     HM_52C28D_Btn1:02
       21D63B     HM_52C28D:01
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +52C28D,00,01,00
       nextSend   1506973035.50006
       prefIO
       rxt        0
       vccu
       p:
         52C28D
         00
         01
         00
     mRssi:
       mNo        2C
       io:
         kroUART    -52
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf
       qReqStat
     role:
       dev        1
     rssi:
       at_kroUART:
         avg        -61.8126984126984
         cnt        315
         lst        -54
         max        -54
         min        -73
     shadowReg:
     tmpl:
   nb:
     cnt        2
Attributes:
   IODev      kroUART
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.5
   model      unknown
   room       CUL_HM
   serialNr   NEQ1831929
   subType    virtual


Das:

set HM_52C28D virtual 1

hat den Button erzeugt.
Ein list darauf:

Internals:
   CFGFN
   DEF        52C28D01
   NAME       HM_52C28D_Btn1
   NOTIFYDEV  global
   NR         257627
   STATE      Short 2_3 (to 208557)
   TYPE       CUL_HM
   chanNo     01
   device     HM_52C28D
   READINGS:
     2017-10-02 20:56:52   peerList
     2017-10-02 21:24:28   state           Short 2_3 (to 208557)
     2017-10-02 21:24:28   trigger         Short_3
     2017-10-02 21:24:28   triggerTo_208557 Short_3
     2017-10-02 21:24:26   triggerTo_21D629 Short_3
     2017-10-02 21:24:28   trigger_cnt     3
   helper:
     BNO        3
     BNOCNT     2
     cfgChkResult No regs found for:


     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
       vrt        1
     tmpl:
   nb:
     cnt        1
Attributes:
   model      unknown
   peerIDs
   webCmd     press short:press long


Jetzt muss Schalter-intern gepeert werden, richtig?

Z.B. das

set HM_52C28D_Btn1 peerChan 0 HM_52C28D_Sw_01 dual set

ergibt

please enter peer


Kann mir jemand sagen, was nun in fhem zu tun ist?

Danke...
Titel: Antw:Wie weiter nach FW update von HM-LC-Sw1PBU-FM?
Beitrag von: Pfriemler am 03 Oktober 2017, 17:45:48
Es handelt sich hier um ein spezifisches Problem mit der ALTERNATIVEN Firmware, das solltest Du im Betreff auch so kennzeichnen und ggf. nach Lösungen oder ähnlichen Problemen im zugehörigen Thread suchen. Die Firmware wird nicht von allzuvielen genutzt, von mir auch nicht.

Über "trigDst_4F6D88: noConfig" würde ich mir weniger Gedanken machen. Aus dem Bauch heraus ist die Hardwareerkennung beim Anlernen fehlgeschlagen, und solange "model unknown" besteht, blendet FHEM auch nicht die dafür gültigen Registersätze ein und belässt es daher beim Minimalsatz "pairCentral" und "sign". Du solltest also das korrekte Model nachtragen oder dafür sorgen, dass die Erkennung beim Anlernen funktioniert. Rechteproblem beim Einkopieren?

Noch falscher halte ich den Ansatz, virtuelle Buttons in dem Gerät zu erzeugen. Das ist für etwas ganz anderes gedacht.

Wie die Buttons auszuwerten und anzusprechen sind, entzieht sich meiner Detailkenntnis, aber wie gesagt: der Firmwarethread ist da richtiger.
Titel: Antw:Wie weiter nach FW update von HM-LC-Sw1PBU-FM?
Beitrag von: kroman am 04 Oktober 2017, 08:34:14
So, jetzt funktionierts  :)
Das war die Lösung auf dem fhem-pi:


sudo apt-get install libswitch-perl


Das wär schon wichtig für's Wiki.
Danke für deine Tipps! Vorallem der mit dem virtuellen Button hat mich von der falschen Spur weggebracht.
Model händisch nachtragen hat übrigens nichts gebracht und das war auch nach einem reset oder getConfig wieder weg.

Schönen Tag!
Meiner wird's jetzt...