Hallo zusammen,
ich verzweifele grade an der Einbindung meines ersten Homematic-Schalters, einem HM-PB2-WM55. Das Pairing hat ein Gerät angelegt, allerdings kommen keine Befehle an. Das Log sieht so aus:
2015-07-08_21:47:20 SchalterSchlafzimmer alive: yes
2015-07-08_21:47:20 SchalterSchlafzimmer battery: ok
2015-07-08_21:47:20 SchalterSchlafzimmer powerOn: 2015-07-08 21:47:20
2015-07-08_21:48:00 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:48:00 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:48:00 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:48:00 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:48:00 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:49:38 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:49:39 SchalterSchlafzimmer CMDs_pending
2015-07-08_21:49:39 SchalterSchlafzimmer CMDs_pending
Die Config:
# ### Device HMUSB
define hmusb HMLAN 127.0.0.1:1234
attr hmusb hmId 555555
attr hmusb hmLanQlen 1_min
# ### Schalter Schlafzimmer
define SchalterSchlafzimmer CUL_HM XXXXXX
attr SchalterSchlafzimmer IODev hmusb
attr SchalterSchlafzimmer autoReadReg 4_reqStatus
attr SchalterSchlafzimmer expert 2_full
attr SchalterSchlafzimmer firmware 1.4
attr SchalterSchlafzimmer model HM-PB-2-WM55
attr SchalterSchlafzimmer room Schalter
attr SchalterSchlafzimmer serialNr MEQ00XXXXX
attr SchalterSchlafzimmer subType pushButton
attr SchalterSchlafzimmer webCmd getConfig:clear msgEvents
# ### Schalter Schlafzimmer - Button 1
define SchalterSchlafzimmer_Btn_01 CUL_HM XXXXXX01
attr SchalterSchlafzimmer_Btn_01 model HM-PB-2-WM55
attr SchalterSchlafzimmer_Btn_01 peerIDs
# ### Schalter Schlafzimmer - Button 2
define SchalterSchlafzimmer_Btn_02 CUL_HM XXXXXX02
attr SchalterSchlafzimmer_Btn_02 model HM-PB-2-WM55
# ### Schalter Schlafzimmer - Logging
define FileLog_SchalterSchlafzimmer FileLog ./log/SchalterSchlafzimmer-%Y.log SchalterSchlafzimmer.*
attr FileLog_SchalterSchlafzimmer logtype text
attr FileLog_SchalterSchlafzimmer room Schalter
# ### Virtuelle Aktoren
define virtueller_Aktor CUL_HM 123456
attr virtueller_Aktor IODev hmusb
attr virtueller_Aktor autoReadReg 4_reqStatus
attr virtueller_Aktor expert 2_full
attr virtueller_Aktor model virtual_2
attr virtueller_Aktor subType virtual
define virtueller_Aktor_Btn1 CUL_HM 12345601
attr virtueller_Aktor_Btn1 model virtual_2
attr virtueller_Aktor_Btn1 peerIDs 38191801,
attr virtueller_Aktor_Btn1 webCmd press short:press long
define virtueller_Aktor_Btn2 CUL_HM 12345602
attr virtueller_Aktor_Btn2 model virtual_2
attr virtueller_Aktor_Btn2 peerIDs 38191802,
attr virtueller_Aktor_Btn2 webCmd press short:press long
# ### Schalter Schlafzimmer Aktionen
define SchalterNotify notify virtueller_Aktor_Btn1 {\
fhem("set Sonos_Arbeitszimmer Stop");;\
}
Wenn ich nun eine Taste am Schalter drücke, kommt folgendes:
lang lang kurz kurz lang kurz kurz
Gleiches beim Drücken des Anlernen-Buttons.
Wenn ich den Schalter resette, danach die Batterien kurz rauszunehmen und dann die Anlern-Taste drücke, geht der Schalter in ein grünes Blinken über. Währenddessen mache ich ein getConfig in FHEM. Wirklich weiter komme ich damit aber auch nicht. Wenn ich nun im Anschluss eine Taste drücke, leuchtet der Schalter manchmal für eine Minute, manchmal bis ich die Batterien rausnehme.
Was könnte hier falsch laufen?
mach mal bitte ein list SchalterSchlafzimmer
Gruß Otto
Das gibt Folgendes aus:
Internals:
DEF 381918
IODev hmusb
LASTInputDev hmusb
MSGCNT 2
NAME SchalterSchlafzimmer
NR 115
NTFY_ORDER 50-SchalterSchlafzimmer
STATE CMDs_pending
TYPE CUL_HM
channel_01 SchalterSchlafzimmer_Btn_01
channel_02 SchalterSchlafzimmer_Btn_02
hmusb_MSGCNT 2
hmusb_RAWMSG E381918,0000,01A9DA3B,FF,FFCC,00841038191800000006000000
hmusb_RSSI -52
hmusb_TIME 2015-07-08 23:51:32
lastMsg No:00 - t:10 s:381918 d:000000 06000000
protCmdPend 4 CMDs pending
protLastRcv 2015-07-08 23:51:32
protResnd 1 last_at:2015-07-08 23:51:16
protSnd 1 last_at:2015-07-08 23:51:11
protState CMDs_pending
rssi_at_hmusb avg:-53 min:-54 max:-52 lst:-52 cnt:2
Readings:
2015-07-08 23:51:11 D-firmware 1.4
2015-07-08 23:51:11 D-serialNr MEQ0024390
2015-07-08 23:51:32 alive yes
2015-07-08 23:51:32 battery ok
2015-07-08 23:01:45 level 0
2015-07-08 23:01:45 pct 0
2015-07-08 23:51:32 powerOn 2015-07-08 23:51:32
2015-07-08 23:51:32 recentStateType info
2015-07-08 23:51:16 state CMDs_pending
2015-07-08 23:01:45 timedOn off
Regl_00::
VAL
cmdStack:
++A00155534238191800040000000000
++A00155534238191801040000000001
++A0015553423819180103
++A00155534238191802040000000001
++A0015553423819180203
Helper:
HM_CMDNR 0
cSnd ,0155534238191800040000000000
mId 006B
rxType 28
Io:
newChn +381918,02,01,1E
nextSend 1436392292.11265
prefIO
rxt 2
vccu
p:
381918
00
01
1E
Mrssi:
mNo 00
Io:
hmusb -50
Prt:
bErr 0
sProc 2
wuReSent 2
Q:
qReqConf 00
qReqStat
Role:
dev 1
Rssi:
At_hmusb:
avg -53
cnt 2
lst -52
max -52
min -54
Attributes:
IODev hmusb
autoReadReg 4_reqStatus
expert 2_full
firmware 1.4
model HM-PB-2-WM55
room Schalter
serialNr MEQ0024390
subType pushButton
webCmd getConfig:clear msgEvents
Ist nicht richtig gepairet. Da fehlt das PairedTo in den Readings.
Mach das Pairing noch einmal.
Gruß Otto
Ich habe das Device nun einmal komplett gelöscht und neu gepairt:
set hmusb hmPairForSec 60
danach kurz den Anlernen-Knopf des Schalters gedrückt, sonst nichts.
Weiterhin kein PairedTo zu sehen, dafür ein "R-pairCentral". Mache ich etwas falsch, oder gibt es beim Ablauf etwas zu beachten?
Internals:
CFGFN
DEF 381918
IODev hmusb
LASTInputDev hmusb
MSGCNT 1
NAME HM_381918
NR 266
NTFY_ORDER 50-HM_381918
STATE CMDs_pending
TYPE CUL_HM
channel_01 HM_381918_Btn_01
channel_02 HM_381918_Btn_02
hmusb_MSGCNT 1
hmusb_RAWMSG E381918,0000,01ECC1ED,FF,FFC2,00840038191800000014006B4D45513030323433393040020000
hmusb_RSSI -62
hmusb_TIME 2015-07-09 01:04:37
lastMsg No:00 - t:00 s:381918 d:000000 14006B4D45513030323433393040020000
protCmdPend 2 CMDs pending
protLastRcv 2015-07-09 01:04:37
protResnd 1 last_at:2015-07-09 01:04:38
protSnd 1 last_at:2015-07-09 01:04:37
protState CMDs_pending
rssi_at_hmusb avg:-62 min:-62 max:-62 lst:-62 cnt:1
Readings:
2015-07-09 01:04:37 D-firmware 1.4
2015-07-09 01:04:37 D-serialNr MEQ0024390
2015-07-09 01:04:37 R-pairCentral set_0x555342
2015-07-09 01:04:38 state CMDs_pending
cmdStack:
++A00155534238191800050000000000
++A001555342381918000802010A550B530C42
++A0015553423819180006
Helper:
HM_CMDNR 1
cSnd ,0155534238191800050000000000
mId 006B
rxType 28
Io:
newChn +381918,02,01,1E
nextSend 1436396677.33121
prefIO
rxt 2
vccu
p:
381918
00
01
1E
Mrssi:
mNo 00
Io:
hmusb -60
Prt:
bErr 0
sProc 2
wuReSent 2
Q:
qReqConf 00
qReqStat
Role:
dev 1
Rssi:
At_hmusb:
avg -62
cnt 1
lst -62
max -62
min -62
Shadowreg:
RegL_00: 02:01 0A:55 0B:53 0C:42
Attributes:
IODev hmusb
autoReadReg 4_reqStatus
expert 2_full
firmware 1.4
model HM-PB-2-WM55
room CUL_HM
serialNr MEQ0024390
subType pushButton
webCmd getConfig:clear msgEvents
Edit: Ich habe nach dieser (http://define%20hm%20hminfo
define hm HMInfo
set hm configCheck
Die Ausgabe sieht so aus:
configCheck done:
missing register list
HM_381918: RegL_00:
HM_381918_Btn_01: RegL_01:
HM_381918_Btn_02: RegL_01:
Register changes pending
HM_381918
peer list incomplete. Use getConfig to read it.
incomplete: HM_381918_Btn_01:
incomplete: HM_381918_Btn_02:
Bei einem set HM_381918 getConfig passiert leider gar nichts.
Hier noch das Log während des Pairings:
2015.07.09 03:20:32 2: CUL_HM Unknown device HM_381918 is now defined
2015.07.09 03:20:32 2: autocreate: define HM_381918 CUL_HM 381918
2015.07.09 03:20:32 2: autocreate: define FileLog_HM_381918 FileLog ./log/HM_381918-%Y.log HM_381918
2015.07.09 03:20:33 3: CUL_HM pair: HM_381918 pushButton, model HM-PB-2-WM55 serialNr
2015.07.09 03:21:13 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_CUL_HM.pm line 7671.
Hallo,
also das
ZitatR-pairCentral set_0x555342
sieht insofern etwas besser aus. Er ist auf dem Weg aber eben nicht fertig geworden --> set_. Das muss eigentlich noch weg.
Die Readings sind noch nicht komplett. Manchmal braucht das aber auch Zeit, eventuell muss man auch noch mal die Anlerntaste kurz drücken, damit er Daten überträgt.
Die Zeile:
Zitat2015.07.09 03:21:13 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_CUL_HM.pm line 7671.
stört mich. Da läuft was in dem Modul nicht glatt was wir gerade brauchen.
ZitatBei einem set HM_381918 getConfig passiert leider gar nichts.
Ja, da passiert eigentlich auch nichts, außer das die Readings danach komplett sein sollten, wenn sie es nicht waren.
Vielleicht hat Martin hier ne Idee?
Gruß Otto
Anbei mal die fragliche Zeile aus der 10_CUL_HM.pm. Zeile 7671 ist die letzte aus folgender Funktion:
sub CUL_HM_unQEntity($$){# remove entity from q
my ($name,$q) = @_;
my $devN = CUL_HM_getDeviceName($name);
return if (AttrVal($devN,"subType","") eq "virtual");
my $dq = $defs{$devN}{helper}{q};
RemoveInternalTimer("sUpdt:$name") if ($q eq "qReqStat");#remove delayed
return if ($dq->{$q} eq "");
if ($devN eq $name){#all channels included
$dq->{$q}="";
}
else{
my @chns = split(",",$dq->{$q});
my $chn = substr(CUL_HM_name2Id($name),6,2);
@chns = grep !/$chn/,@chns;
@chns = grep !/00/,@chns;#remove device as well - just in case
$dq->{$q} = join",",@chns;
}
$q = $q."Wu" if (CUL_HM_getRxType($defs{$name}) & 0x1C);
my $mQ = $modules{CUL_HM}{helper}{$q};
return if(!$mQ || scalar(@{$mQ}) == 0);
@{$mQ} = grep !/^$devN$/,@{$mQ} if ($dq->{$q} eq "");
}
Was ist mit der zeile ?
Nach einem getconfig solltest du config ausloesen, sonst reagiert der wm nicht.
Weder lesen noch schreiben. Ein wu device ist es auch nicht. Beim tastendruck kann man nur den text uebertragen, kein konfig
Zitat von: martinp876 am 09 Juli 2015, 21:50:28
Was ist mit der zeile ?
Die Zeile wirft eine Warnung im Log:
2015.07.09 03:21:13 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/10_CUL_HM.pm line 7671.
Zitat von: martinp876 am 09 Juli 2015, 21:50:28
Nach einem getconfig solltest du config ausloesen, sonst reagiert der wm nicht.
Du meinst, getConfig auslösen und danach den Anlernen-Button am Schalter drücken? Das habe ich bereits getestet, hat nichts gebracht. Dazu muss ich sagen, dass der Anlern-Knopf nur ungefähr bei jedem 10x funktioniert. Meistens kommt das oben genannte Blinken
lang lang kurz kurz lang kurz kurzZitat von: martinp876 am 09 Juli 2015, 21:50:28
Weder lesen noch schreiben. Ein wu device ist es auch nicht. Beim tastendruck kann man nur den text uebertragen, kein konfig
Das verstehe ich leider nicht, was meinst du genau?
Das Log vom Device sieht momentan so aus:
2015-07-09_11:18:03 HM_381918 CMDs_pending
2015-07-09_11:18:03 HM_381918 CMDs_pending
2015-07-09_11:18:03 HM_381918 CMDs_pending
2015-07-09_11:18:03 HM_381918 CMDs_pending
2015-07-09_22:15:35 HM_381918 ResndFail
2015-07-09_22:15:36 HM_381918 RESPONSE TIMEOUT:RegisterRead
2015-07-09_22:15:56 HM_381918 ResndFail
2015-07-09_22:15:56 HM_381918 RESPONSE TIMEOUT:RegisterRead
2015-07-09_22:16:53 HM_381918 ResndFail
2015-07-09_22:16:53 HM_381918 RESPONSE TIMEOUT:RegisterRead
2015-07-09_22:18:00 HM_381918 ResndFail
2015-07-09_22:18:00 HM_381918 RESPONSE TIMEOUT:RegisterRead
2015-07-09_22:19:20 HM_381918 ResndFail
2015-07-09_22:19:20 HM_381918 RESPONSE TIMEOUT:RegisterRead
2015-07-09_22:19:44 HM_381918 ResndFail
2015-07-09_22:19:44 HM_381918 RESPONSE TIMEOUT:RegisterRead
Und hier das fhem logfile der letzten getConfig-Versuche von vorhin:
2015.07.09 22:19:02.201 0: HMLAN_Send: hmusb S:S7478AD04 stat: 00 t:00000000 d:01 r:7478AD04 m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:02.847 0: HMLAN_Parse: hmusb R:R7478AD04 stat:0008 t:00000000 d:FF r:7FFF m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:02.849 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:04.240 0: HMLAN_Send: hmusb I:K
2015.07.09 22:19:04.353 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067B8A3F IDcnt:0001 L:4 %
2015.07.09 22:19:07.576 0: HMLAN_Send: hmusb S:S7478C203 stat: 00 t:00000000 d:01 r:7478C203 m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:08.193 0: HMLAN_Parse: hmusb R:R7478C203 stat:0008 t:00000000 d:FF r:7FFF m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:08.194 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:12.488 0: HMLAN_Send: hmusb S:S7478D533 stat: 00 t:00000000 d:01 r:7478D533 m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:12.491 0: HMLAN_Send: hmusb I:K
2015.07.09 22:19:12.546 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067BAA4E IDcnt:0001 L:4 %
2015.07.09 22:19:13.121 0: HMLAN_Parse: hmusb R:R7478D533 stat:0008 t:00000000 d:FF r:7FFF m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:13.123 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:16.714 0: HMLAN_Send: hmusb S:S7478E5B6 stat: 00 t:00000000 d:01 r:7478E5B6 m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:17.346 0: HMLAN_Parse: hmusb R:R7478E5B6 stat:0008 t:00000000 d:FF r:7FFF m:05 A001 555342 381918 00040000000000
2015.07.09 22:19:17.347 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:20.036 0: HMLAN_Parse: hmusb R:E381918 stat:0000 t:067BC777 d:FF r:FFB6 m:9B 643B 381918 000000 14000274455130303234333930400200E0
2015.07.09 22:19:25.890 0: HMLAN_Send: hmusb S:S7479098E stat: 00 t:00000000 d:01 r:7479098E m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:26.531 0: HMLAN_Parse: hmusb R:R7479098E stat:0008 t:00000000 d:FF r:7FFF m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:26.533 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:31.555 0: HMLAN_Send: hmusb S:S74791FA4 stat: 00 t:00000000 d:01 r:74791FA4 m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:32.196 0: HMLAN_Parse: hmusb R:R74791FA4 stat:0008 t:00000000 d:FF r:7FFF m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:32.197 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:35.742 0: HMLAN_Send: hmusb S:S74793008 stat: 00 t:00000000 d:01 r:74793008 m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:36.357 0: HMLAN_Parse: hmusb R:R74793008 stat:0008 t:00000000 d:FF r:7FFF m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:36.359 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:19:37.497 0: HMLAN_Send: hmusb I:K
2015.07.09 22:19:37.893 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067C0D44 IDcnt:0001 L:5 %
2015.07.09 22:19:39.801 0: HMLAN_Send: hmusb S:S74793FE4 stat: 00 t:00000000 d:01 r:74793FE4 m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:40.421 0: HMLAN_Parse: hmusb R:R74793FE4 stat:0008 t:00000000 d:FF r:7FFF m:9C A001 555342 381918 00040000000000
2015.07.09 22:19:40.423 0: HMLAN_Parse: hmusb no ACK from 381918
2015.07.09 22:20:02.508 0: HMLAN_Send: hmusb I:K
2015.07.09 22:20:02.537 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067C6D9D IDcnt:0001 L:5 %
2015.07.09 22:20:27.517 0: HMLAN_Send: hmusb I:K
2015.07.09 22:20:27.532 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067CCF40 IDcnt:0001 L:5 %
2015.07.09 22:20:52.524 0: HMLAN_Send: hmusb I:K
2015.07.09 22:20:52.558 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067D30EE IDcnt:0001 L:5 %
2015.07.09 22:21:17.529 0: HMLAN_Send: hmusb I:K
2015.07.09 22:21:17.553 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067D929B IDcnt:0001 L:5 %
2015.07.09 22:21:42.534 0: HMLAN_Send: hmusb I:K
2015.07.09 22:21:42.548 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067DF447 IDcnt:0001 L:5 %
2015.07.09 22:22:07.539 0: HMLAN_Send: hmusb I:K
2015.07.09 22:22:07.575 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067E55F3 IDcnt:0001 L:5 %
2015.07.09 22:22:32.547 0: HMLAN_Send: hmusb I:K
2015.07.09 22:22:32.571 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067EB7A4 IDcnt:0001 L:5 %
2015.07.09 22:22:57.554 0: HMLAN_Send: hmusb I:K
2015.07.09 22:22:57.567 0: HMLAN_Parse: hmusb V:03C7 sNo:LEQ1517301 d:34F247 O:555342 t:067F1952 IDcnt:0001 L:5 %
die fehler meldung sollte verschwunden sein.
dein log ist nicht komplett. Das Getconfig wird bei diesem Device erst gesendet, wenn etwas von Device gekommen ist. Das fehlt... da war vorher etwas.
Ich habe heute einen weiteren Schalter gekauft, diesmal allerdings als fertiges Modul und nicht als ELV-Bausatz. Dort hat das Anlernen auf Anhieb funktioniert.
Scheinbar ist wohl beim Löten etwas schiefgegangen :-[ Es wundert mich bloß, dass der Schalter trotzdem erkannt wird, aber nicht vollständig.