Problem „MISSING ACK“ beim Auslesen von Homematic Funksteckdose „HM-ES-PMSW1-PL

Begonnen von gfix, 14 Januar 2021, 15:09:13

Vorheriges Thema - Nächstes Thema

gfix

Ich verwende eine Raspberry Pi mit Homematic Funk Modul ,,HM-MOD-RPI-PCB" und eine Funksteckdose mit Leistungsmesser ,,HM-ES-PMSW1-PL". (sonst momentan keine anderen Homematic Geräte)
Ich kann die Funksteckdose zwar per FHEM schalten, bekomme aber meistens keine Messwerte. (gelegentlich funktioniert's, das ist jedoch eher selten ;-)

Hat bzw. kennt jemand dieses Problem, bzw. gibt es dafür eine Lösung, oder habe ich da grundlegend was falsch gemacht??? ich bin schon am Verzweifeln.

Ich habe den Raspberry bzw. FHEM neu installiert (da es für mein Raspian ,,wheezy" keine Updates mehr gab) und das Funkmodul wie folgt eingebunden:

attr initialUsbCheck disable 1
define myHmUART HMUARTLGW /dev/ttyAMA0


Bei einem Restart meldet sich auch das Homematic Funk Modul

2021.01.14 12:48:06 3: Opening myHmUART device /dev/ttyAMA0
2021.01.14 12:48:06 3: Setting myHmUART serial parameters to 115200,8,N,1
2021.01.14 12:48:06 3: myHmUART device opened
2021.01.14 12:48:06 0: Featurelevel: 6
2021.01.14 12:48:06 0: Server started with 22 defined entities (fhem.pl:23471/2021-01-04 perl:5.028001 os:linux user:fhem pid:1219)


Das HM-Modul hat wie empfohlen die Firmware 1.4.1:

2021-01-14_12:48:06 myHmUART CONNECTED
2021-01-14_12:48:07 myHmUART cond: init
2021-01-14_12:48:09 myHmUART D-HMIdAssigned: 4600C1
2021-01-14_12:48:09 myHmUART D-HMIdOriginal: 4600C1
2021-01-14_12:48:09 myHmUART D-firmware: 1.4.1
2021-01-14_12:48:09 myHmUART D-serialNr: MEQ1887891
2021-01-14_12:48:09 myHmUART cond: ok
2021-01-14_12:48:09 myHmUART loadLvl: low


Die Funksteckdose ,,HM-ES-PMSW1-PL" habe ich bei der bestehenden Homematic VCCU abgelernt, und dann am neuen FHEM angelernt. ( danach den Namen renamed)

define HM_341F73 CUL_HM 341F73
setuuid HM_341F73 5fff390a-f33f-cb5f-e911-8ff27400d758a2a5
attr HM_341F73 .mId 00AC
attr HM_341F73 IODev myHmUART
attr HM_341F73 autoReadReg 4_reqStatus
attr HM_341F73 expert rawReg
attr HM_341F73 firmware 1.6
attr HM_341F73 model HM-ES-PMSW1-PL
attr HM_341F73 room CUL_HM
attr HM_341F73 serialNr LEQ1273130
attr HM_341F73 subType powerMeter
attr HM_341F73 webCmd getConfig:clear msgEvents
define FileLog_HM_341F73 FileLog ./log/HM_341F73-%Y.log HM_341F73
setuuid FileLog_HM_341F73 5fff390a-f33f-cb5f-25b1-ff8658f9ec54d7da
attr FileLog_HM_341F73 logtype text
attr FileLog_HM_341F73 room CUL_HM
define HM_Funksteckdose CUL_HM 341F7301
setuuid HM_Funksteckdose 5fff390a-f33f-cb5f-3415-36814f7d5154e20e
attr HM_Funksteckdose model HM-ES-PMSW1-PL
attr HM_Funksteckdose peerIDs ,
attr HM_Funksteckdose room HM_Funksteckdose,HomeMatic
define HM_Funksteckdose_Energy CUL_HM 341F7302
setuuid HM_Funksteckdose_Energy 5fff390a-f33f-cb5f-5f53-26b25b7a121f5698
attr HM_Funksteckdose_Energy model HM-ES-PMSW1-PL
attr HM_Funksteckdose_Energy peerIDs ,
attr HM_Funksteckdose_Energy room HM_Funksteckdose
define HM_Funksteckdose_Leistung CUL_HM 341F7303
setuuid HM_Funksteckdose_Leistung 5fff390a-f33f-cb5f-3510-cbb121679863ae5e
attr HM_Funksteckdose_Leistung model HM-ES-PMSW1-PL
attr HM_Funksteckdose_Leistung peerIDs ,
attr HM_Funksteckdose_Leistung room HM_Funksteckdose
define HM_Funksteckdose_Strom CUL_HM 341F7304
setuuid HM_Funksteckdose_Strom 5fff390a-f33f-cb5f-bbed-39d6828e6c593016
attr HM_Funksteckdose_Strom model HM-ES-PMSW1-PL
attr HM_Funksteckdose_Strom peerIDs ,
attr HM_Funksteckdose_Strom room HM_Funksteckdose
define HM_Funksteckdose_Spannung CUL_HM 341F7305
setuuid HM_Funksteckdose_Spannung 5fff390a-f33f-cb5f-36f5-c2593015d59d70e0
attr HM_Funksteckdose_Spannung model HM-ES-PMSW1-PL
attr HM_Funksteckdose_Spannung peerIDs ,
attr HM_Funksteckdose_Spannung room HM_Funksteckdose
define HM_Funksteckdose_Frequenz CUL_HM 341F7306
setuuid HM_Funksteckdose_Frequenz 5fff390a-f33f-cb5f-8283-a11cd5086068a503
attr HM_Funksteckdose_Frequenz model HM-ES-PMSW1-PL
attr HM_Funksteckdose_Frequenz peerIDs ,
attr HM_Funksteckdose_Frequenz room HM_Funksteckdose


Ich kann die Steckdose zwar schalten, aber danach (ca. 20 sek) kommt im logFile: HM_341F73-2021.log die Meldung:

2021-01-14_13:56:05 HM_341F73 commState: CMDs_pending
2021-01-14_13:56:05 HM_341F73 CMDs_pending
2021-01-14_13:56:05 HM_341F73 commState: CMDs_processing...
2021-01-14_13:56:23 HM_341F73 ResndFail
2021-01-14_13:56:23 HM_341F73 commState: CMDs_done_Errors:1
2021-01-14_13:56:23 HM_341F73 CMDs_done_Errors:1
2021-01-14_13:56:23 HM_341F73 MISSING ACK


Wenn ich im FHEM ein ,,CUL_HM set HM_Funksteckdose getConfig" oder  ,,CUL_HM set HM_Funksteckdose statusRequest" ausführe blinkt die Steckdose orange und ich bekomme im LogFile HM_341F73-2021.log  wieder die Meldung:

2021-01-14_14:11:44 HM_341F73 commState: CMDs_pending
2021-01-14_14:11:44 HM_341F73 CMDs_pending
2021-01-14_14:11:44 HM_341F73 commState: CMDs_pending
2021-01-14_14:11:44 HM_341F73 CMDs_pending
2021-01-14_14:11:44 HM_341F73 commState: CMDs_processing...
2021-01-14_14:12:04 HM_341F73 ResndFail
2021-01-14_14:12:04 HM_341F73 commState: CMDs_done_Errors:1
2021-01-14_14:12:04 HM_341F73 CMDs_done_Errors:1
2021-01-14_14:12:04 HM_341F73 RESPONSE TIMEOUT:RegisterRead


Bzw.:

2021-01-14_14:07:15 HM_341F73 commState: CMDs_pending
2021-01-14_14:07:15 HM_341F73 CMDs_pending
2021-01-14_14:07:15 HM_341F73 commState: CMDs_processing...
2021-01-14_14:07:31 HM_341F73 ResndFail
2021-01-14_14:07:31 HM_341F73 commState: CMDs_done_Errors:1
2021-01-14_14:07:31 HM_341F73 CMDs_done_Errors:1
2021-01-14_14:07:31 HM_341F73 MISSING ACK


kann mir da jemand weiterhelfen?
oder ist es eh gescheiter die Homematic Geräte mit einer eigenen VCCU über YAHM steuern? (so wie ich es bis jetzt auch hatte, ich wollte mir halt ein zusätzliches Gerät ersparen)

Danke
LG Günther

frank

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

gfix


Internals:
   DEF        341F73
   FUUID      5fff390a-f33f-cb5f-e911-8ff27400d758a2a5
   IODev      myHmUART
   NAME       HM_341F73
   NOTIFYDEV  global
   NR         15
   NTFY_ORDER 50-HM_341F73
   STATE      CMDs_processing...
   TYPE       CUL_HM
   channel_01 HM_Funksteckdose
   channel_02 HM_Funksteckdose_Energy
   channel_03 HM_Funksteckdose_Leistung
   channel_04 HM_Funksteckdose_Strom
   channel_05 HM_Funksteckdose_Spannung
   channel_06 HM_Funksteckdose_Frequenz
   protCmdDel 1
   protCmdPend 11 CMDs pending
   protResnd  6 last_at:2021-01-14 15:42:40
   protResndFail 1 last_at:2021-01-14 15:42:26
   protSnd    2 last_at:2021-01-14 15:42:26
   protState  CMDs_processing...
   READINGS:
     2021-01-14 15:41:56   D-firmware      1.6
     2021-01-14 15:41:56   D-serialNr      LEQ1273130
     2021-01-14 15:42:26   cfgState        updating
     2021-01-14 15:42:26   commState       CMDs_processing...
     2021-01-14 15:42:26   state           CMDs_processing...
     RegL_00.:
       VAL       
   cmdStack:
     ++A001F10000341F7301040000000001
     ++A001F10000341F730103
     ++A001F10000341F7302040000000001
     ++A001F10000341F7303040000000001
     ++A001F10000341F730303
     ++A001F10000341F7304040000000001
     ++A001F10000341F730403
     ++A001F10000341F7305040000000001
     ++A001F10000341F730503
     ++A001F10000341F7306040000000001
     ++A001F10000341F730603
   helper:
     HM_CMDNR   85
     cSnd       01F10000341F73010E,01F10000341F7300040000000000
     mId        00AC
     peerFriend
     peerOpt    -:powerMeter
     regLst     0
     rxType     1
     cmds:
       TmplKey    :no:1610635316.18166
       TmplTs     1610635316.18166
       cmdKey     0:1:0::HM_341F73:00AC:01:
       cmdLst:
         assignHmKey noArg
         clear      [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2-...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         tplDel     -tplDel-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplDel     
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        0
       det        0
       raw        1
       tpl        0
     io:
       newChn     +341F73,00,00,00
       prefIO     
       rxt        0
       vccu       
       p:
         341F73
         00
         00
         00
     mRssi:
       mNo       
     prt:
       bErr       0
       sProc      1
       rspWait:
         Pending    RegisterRead
         cmd        As1055A001F10000341F7300040000000000
         forChn     00
         forList    00
         forPeer   
         mNo        85
         nAddr      0
         reSent     4
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     tmpl:
Attributes:
   IODev      myHmUART
   autoReadReg 4_reqStatus
   expert     rawReg
   firmware   1.6
   model      HM-ES-PMSW1-PL
   room       CUL_HM
   serialNr   LEQ1273130
   subType    powerMeter
   webCmd     getConfig:clear msgEvents

frank

der aktor ist nicht in fhem gepairt.

1. fhem versucht mit hmid=F10000 messages zu senden.
2. dem hmuart wurde angeblich hmid=4600C1 zugewiesen.
3. attr iodev=hmuart.
4. eine vccu gibt es angeblich nicht.

da stimmt etwas überhaupt nicht.

a. zeig mal ein list vom hmuart
b. hast du eine cul_hm-vccu definiert?
zeig ein list davon.
c. welche hmid hatte deine yahm-vccu?
d. woher kommt die hmid F10000?
e. hast du schon versucht zu pairen, und wie genau?
f. hast du den aktor resettet?

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

gfix

Hallo,

Ich habe die Funksteckdose in der alten Yahm VCCU abgemeldet, und dann einen Werksreset lt. Anleitung gemacht (Taste 4 sek, gedrückt, bis die LED langsam blinkt, dann Taste nochmal 4 Sek. gedrückt bis die LED schnell blinkt. Dann hab ich's ausgesteckt und später wieder eingesteckt.

Dann im neuen FHEM den Pairing Mode aktiviert:

set myHmUART hmPairForSec 600


dann auf der Funksteckdose die Teste 4 Sek gedrückt.
Damit wurde sie im FHEM automatisch angelegt.


Hier noch ein "list myHmUART"

Internals:
   AssignedPeerCnt 1
   CNT        48
   Clients    :CUL_HM:
   DEF        /dev/ttyAMA0
   DEVCNT     48
   DevState   99
   DevType    UART
   DeviceName /dev/ttyAMA0@115200
   FD         4
   FUUID      5ffe1711-f33f-cb5f-14ff-c75a308e749d8e8b
   LastOpen   1610639633.40699
   NAME       myHmUART
   NOTIFYDEV  global
   NR         14
   NTFY_ORDER 50-myHmUART
   PARTIAL   
   RAWMSG     040202
   STATE      opened
   TYPE       HMUARTLGW
   XmitOpen   1
   model      HM-MOD-UART
   msgLoadCurrent 1
   msgLoadHistory -/-/-/-/-/-/-/-/-/-/-/-
   msgLoadHistoryAbs 0/-/-/-/-/-/-/-/-/-/-/-/-
   owner      4600C1
   Helper:
     CreditTimer 20
     FW         66561
     Initialized 1
     SendCnt    8
     AckPending:
     LastSendLen:
       3
       3
     Log:
       IDs:
     PendingCMD:
     RoundTrip:
       Delay      0.00277805328369141
     loadLvl:
       lastHistory 1610639635.91303
   MatchList:
     1:CUL_HM   ^A......................
   Peers:
     341F73     +341F73,00,00,00
   READINGS:
     2021-01-14 16:53:55   D-HMIdAssigned  4600C1
     2021-01-14 16:53:55   D-HMIdOriginal  4600C1
     2021-01-14 16:53:55   D-firmware      1.4.1
     2021-01-14 16:53:55   D-serialNr      MEQ1887891
     2021-01-14 16:53:51   D-type          HM-MOD-UART
     2021-01-14 16:53:55   cond            ok
     2021-01-14 16:54:31   load            1
     2021-01-14 16:53:55   loadLvl         low
     2021-01-14 16:53:53   state           opened
   helper:
Attributes:
   room       HomeMatic



Meine fhem.cfg sieht so aus:

attr global userattr cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3

define WEB FHEMWEB 8083 global
setuuid WEB 5ffe0a2f-f33f-cb5f-2d96-03bc20761c8310c1

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
setuuid Logfile 5ffe0a2f-f33f-cb5f-9ad7-f55c342a6a54636f

define autocreate autocreate
setuuid autocreate 5ffe0a2f-f33f-cb5f-56f7-c087a334a4dba170
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt
setuuid eventTypes 5ffe0a2f-f33f-cb5f-16cc-78887c873d0a4392

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck 5ffe0a2f-f33f-cb5f-dcd0-488c9534e13f6b05
attr initialUsbCheck disable 1
define myHmUART HMUARTLGW /dev/ttyAMA0
setuuid myHmUART 5ffe1711-f33f-cb5f-14ff-c75a308e749d8e8b
attr myHmUART room HomeMatic


Ich hab's in der Zwischenzeit auch mit einem Rauchmelder probiert, da habe ich das gleiche Fehlerbild.

Auf die alte Yahm VCCU komm ich momentan nicht drauf um die ID herauszusuchen.



gfix

Ich habe gerade im fhel.log die Meldung bekommen:

2021.01.14 17:26:49 3: myHmUART: Unknown code A0E6E86021341971437420097E6E8AB::-92:myHmUART, help me!
2021.01.14 17:26:56 3: myHmUART: Unknown code A11ABA60213419714394D04A03690DEBF8298::-91:myHmUART, help me!


meine Beiden Testgeräte (Funksteckdose und Rauchmelder) sind aktuell nicht eingesteckt, woher kommt das? Hat da im Haus eventuell jemand anderer auch noch Homematic Geräte, oder ist das ein anderer Fehler?

gfix

Ich habe gerade einige Artikel gefunden, wo empfohlen wird, das eine VCCU einige Vorteile hat.
z.B.:  https://wiki.fhem.de/wiki/Virtueller_Controller_VCCU

vor allem mit HomeMatic-Rauchmeldern, bzw. Rauchmeldergruppen.
um das richtig zu verstehen? funktioniert die Kommunikation unter den Rauchmeldern nur mit einer VCCU? oder auch wenn ich die HM Geräte direkt aus FHEM anspreche?
vielleicht sollte ich wieder eine VCCU anlegen, bei der alten die Config exportieren und bei der neuen dann importieren, wie siehst du das?

frank

eine vccu vom modul cul_hm ist grundsätzlich eine gute idee.
1. sie verhindert zb die help me logausgaben der devices von deinem nachbarn.
2. sie ist nicht für rm nötig.
3. definiere eine mit der hmid des hmuart: 4600C1, wie im wiki.
4. ab jetzt braucht dann jedes hauptdevice die beiden attribute IODev und IOgrp. also auch die vccu
5. ausserdem repariert sie automatisch dein hmuart device. dort hat bei dir das attr hmid gefehlt.
6. ab jetzt pairst du immer über die vccu.

anschliessend im aktor die pending cmds löschen mit "set clear msgEvents"

dann erneut drüber pairen, also nichts löschen.
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