Hallo,
habe einen DIY Sensor für 7x Bodenfeuchtemessung zusammengebaut.
https://technikkram.net/2019/05/anleitung-diy-feuchtigkeitssensor-fuer-gartenbewaesserung-bausatz-homematic (https://technikkram.net/2019/05/anleitung-diy-feuchtigkeitssensor-fuer-gartenbewaesserung-bausatz-homematic)
Der Sensor meldet sich bei FHEM als HM_F31103 und Modell "unknown". Für HOMEMATIC hat Jerome Pech ein Addon geschrieben um es dort einzubinden.
Gibt es ein Modul, das man anpassen kann (dachte da an HMConfig_SenTHPL.pm).
Hat einer Erfahrung mit so etwas und kann mir einen Hinweis geben, wo ich mich einlesen kann, wie das ganze funktioniert?
Liebe Grüße
Bin bin gerade dabei, einige Geräte in dem AskSin++ Addon zu integrieren. Habe mal den aktuellen Stand eingecheckt. Der HB-UNI-Sen-CAP-MOIST-T ist da mit drin. Aber nur mit einen Channel. FHEM unterstützt die variable Anzahl der Kanaäle leider nicht. Bitte das ReadMe beachten und entspreched in FHEM installieren.
https://github.com/pa-pa/AskSinPP/tree/master/examples/custom/contrib/FHEM
Hi,
nett dass du dich so schnell meldest.
Mein Sensor hat das Model "F311". Nachdem ich es in der HMConfig_AskSin...pm angepasst habe wird der Sensor auch definiert. Allerdings bekomme ich keine Werte.
Hier die Ausgabe des seriellen Monitors vom Arduino:
AskSin++ V4.1.0 (Jul 14 2019 18:40:57)
Address Space: 32 - 319
CC init1
CC Version: 14
- ready
iVcc: 3372
eVcc: 3753
Config Freq: 0x21661A
ID: F31103 Serial: JPCAPM0003
*LOW BAT Limit: 22
*Wake-On-Radio: 0
*Sendeintervall: 30
Config changed List1
*HIGHValue (#1): 830
*LOWValue (#1): 420
Config changed List1
*HIGHValue (#2): 830
*LOWValue (#2): 420
Config changed List1
*HIGHValue (#3): 830
*LOWValue (#3): 420
Config changed List1
*HIGHValue (#4): 830
*LOWValue (#4): 420
Config changed List1
*HIGHValue (#5): 830
*LOWValue (#5): 420
Config changed List1
*HIGHValue (#6): 830
*LOWValue (#6): 420
Config changed List1
*HIGHValue (#7): 830
*LOWValue (#7): 420
+Sensor (#7) V: 830
+Humidity (#7) %: 0
+Battery (#7) V: 38
<- 0E 01 84 70 F31103 000000 00 00 00 07 26 - 3311
+Sensor (#6) V: 833
+Humidity (#6) %: 0
+Battery (#6) V: 38
<- 0E 02 84 70 F31103 000000 00 00 00 06 26 - 3954
+Sensor (#5) V: 840
+Humidity (#5) %: 0
+Battery (#5) V: 38
<- 0E 03 84 70 F31103 000000 00 00 00 05 26 - 4595
+Sensor (#4) V: 787
+Humidity (#4) %: 11
+Battery (#4) V: 38
<- 0E 04 84 70 F31103 000000 00 00 0B 04 26 - 5238
+Sensor (#3) V: 799
+Humidity (#3) %: 8
+Battery (#3) V: 38
<- 0E 05 84 70 F31103 000000 00 00 08 03 26 - 5879
+Sensor (#2) V: 802
+Humidity (#2) %: 7
+Battery (#2) V: 38
<- 0E 06 84 70 F31103 000000 00 00 07 02 26 - 6522
+Sensor (#1) V: 806
+Humidity (#1) %: 6
+Battery (#1) V: 38
<- 0E 07 84 70 F31103 000000 00 00 06 01 26 - 7163
Für die 7 Chanels wird also immer gesendet hier für Channel 1
<- 0E 07 84 70 F31103 000000 00 00 06 01 26 - 7163
Kannst Du mir sagen, was diese Werte bedeuten? Das einzige was mir klar ist, ist F31103 (ID des Senders)
Liebe Grüße
Sicherlich weil das Addon einen CAP-MOST-T implementiert. Der hat im Kanal 1 einen Temperatursensor und dadurch auch ein unterschiedliches Nachrichtenformat. Du kannst nicht einfach das Model ändern und glaucb dass dann alles wie von Hexenhand funktioniert.
Außerdem scheint für jeden Kanal eine extra Nachricht gesendet zu werden. Das ist bei dem aktuellen Sketch auch nicht mehr der Fall.
Welche Version des Sketches verwendest Du denn ?
Hallo,
habe heute den aktuellen Sketch von Jerome auf die 7 Analog-Kanäle angepasst und hochgeladen. Jetzt sendet er nur noch eine Zeile mit 8 Kanälen (1. ist für die Batterie. Dann habe ich dein Modul hergenommen, und F312 mit Temperatursensor auf F311 kopiert und angepasst (obwohl ich nicht so genau wusste was ich tat:)).###########################
## Eingefügt FP 16.07.2019
###########################
$HMConfig::culHmModel{"F311"} = {name=>"HB-UNI-Sen-CAP-MOIST",st=>'custom',cyc=>'',rxt=>'',lst=>'',chn=>"Batery:1:1,Feuchte:2:8"};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST00"}{fwUpdate} = "<filename>";
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST01"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST02"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST03"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST04"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST05"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST06"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST07"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST08"} = {};
$HMConfig::culHmRegModel{"HB-UNI-Sen-CAP-MOIST"} = { lowBatteryLimit=>1, transmitInterval=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST01"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST02"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST03"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST04"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST05"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST06"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST07"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST08"} = { highValue=>1, lowValue=>1 };
$customMsg{"HB-UNI-Sen-CAP-MOIST"} = sub {
my ($msg,$target) = @_;
my @evtEt=();
my $cnum = $msg->payloadByte(1) & 0x3f; # get channel from byte 1 of payload
#Log 1,"cnum ".$cnum;#FP
#Log 1,"msg ".$msg;
my $device = main::CUL_HM_id2Hash($msg->from);
#Log 1,"cnum ".$device;#FP
push @evtEt,[$device,1,"battery:".(($msg->payloadByte(0) & 0x80)==0x80 ? "low" : "ok")];
my $channel = $main::modules{CUL_HM}{defptr}{$msg->channelId($cnum)};
#Log 1,"channel ".$channel; #FP
if( defined($channel) ) {
#my $temp = $msg->payloadWord(2);
my $bat = $msg->payloadByte(4);
push @evtEt,[$channel,1,"batVoltage:".$bat/10 ." V"];
#push @evtEt,[$channel,1,"temperature:".$temp/10];
push @evtEt,[$channel,1,"state:".$bat/10];
}
for( my $offset=3; $offset < length($msg->payload)/2; $offset += 2 ) {
$cnum = $msg->payloadByte($offset) & 0x3f; # get channel for next value
#Log 1,"cnum1 ".$cnum; #FP
$channel = $main::modules{CUL_HM}{defptr}{$msg->channelId($cnum)};
#Log 1,"channel ".$channel; #FP
if( defined($channel) ) {
my $moist = $msg->payloadByte($offset+1);
push @evtEt,[$channel,1,"humidity:".$moist." %"];
push @evtEt,[$channel,1,"state:".$moist];
}
else {
Log 1,"No channel for ".$msg->channelId($cnum);
}
}
return @evtEt;
};
Nun bekomme ich die 8 Analog-Werte nach FHEM.
Das einzige was mich noch glücklicher machen würde ist, wenn ich mit regset highValue 795 die Sensoren auch noch kalibrieren könnte.
Kannst Du mir da auch weiterhelfen?
Aber erstmal vielen vielen Dank für deinen Tip mit dem aktuellen Sketch!!
Bist Du Dir sicher, dass da die richtigen Werte ankommen ? Ich habe gerade keine Zeit - auf jeden Fall muss der Battery-Kanal erst mla weg:
$HMConfig::culHmModel{"F311"} = {name=>"HB-UNI-Sen-CAP-MOIST",st=>'custom',cyc=>'',rxt=>'',lst=>'',chn=>"Feuchte:1:7"};
Und dann müssen die Daten noch richtig zu den Kanälen zugeordnet werden. Bin mir aber nicht sicher, ob das so passt.
$customMsg{"HB-UNI-Sen-CAP-MOIST"} = sub {
my ($msg,$target) = @_;
my @evtEt=();
my $cnum = $msg->payloadByte(1) & 0x3f; # get channel from byte 1 of payload
#Log 1,"cnum ".$cnum;#FP
#Log 1,"msg ".$msg;
my $device = main::CUL_HM_id2Hash($msg->from);
#Log 1,"cnum ".$device;#FP
push @evtEt,[$device,1,"battery:".(($msg->payloadByte(0) & 0x80)==0x80 ? "low" : "ok")];
my $channel = $main::modules{CUL_HM}{defptr}{$msg->channelId($cnum)};
#Log 1,"channel ".$channel; #FP
for( my $offset=0; $offset < length($msg->payload)/2; $offset += 2 ) {
$cnum = $msg->payloadByte($offset) & 0x3f; # get channel for next value
#Log 1,"cnum1 ".$cnum; #FP
$channel = $main::modules{CUL_HM}{defptr}{$msg->channelId($cnum)};
#Log 1,"channel ".$channel; #FP
if( defined($channel) ) {
my $moist = $msg->payloadByte($offset+1);
push @evtEt,[$channel,1,"humidity:".$moist." %"];
push @evtEt,[$channel,1,"state:".$moist];
}
else {
Log 1,"No channel for ".$msg->channelId($cnum);
}
}
return @evtEt;
};
Ja ich bin mir sicher, dass die Werte richtig sind.
Mein Sender sendet 8 Kanäle, wobei der 1. Kanal der Batterie Wert ist.
<- 1A 01 86 53 F31100 000000 00 41 22 42 06 43 04 44 02 45 03 46 03 47 01 48 01 - 1568
Wenn ich deinen Vorschlag übernehme, wird der Batteriewert in Feuchte_01 geschrieben.
Ich habe dein Modul jetzt wie folgt abgeändert:
###########################
## Eingefügt FP 16.07.2019
###########################
$HMConfig::culHmModel{"F311"} = {name=>"HB-UNI-Sen-CAP-MOIST",st=>'custom',cyc=>'',rxt=>'c:l',lst=>'1',chn=>"Batterie:1:1,Feuchte:2:8"};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST00"}{fwUpdate} = "<filename>";
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST01"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST02"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST03"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST04"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST05"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST06"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST07"} = {};
$HMConfig::culHmChanSets{"HB-UNI-Sen-CAP-MOIST08"} = {};
$HMConfig::culHmRegModel{"HB-UNI-Sen-CAP-MOIST"} = { lowBatteryLimit=>1, transmitInterval=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST01"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST02"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST03"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST04"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST05"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST06"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST07"} = { highValue=>1, lowValue=>1 };
$HMConfig::culHmRegChan {"HB-UNI-Sen-CAP-MOIST08"} = { highValue=>1, lowValue=>1 };
$customMsg{"HB-UNI-Sen-CAP-MOIST"} = sub {
my ($msg,$target) = @_;
my @evtEt=();
my $cnum = $msg->payloadByte(1) & 0x3f; # get channel from byte 1 of payload
#Log 1,"cnum ".$cnum;#FP
#Log 1,"msg ".$msg;
my $device = main::CUL_HM_id2Hash($msg->from);
#Log 1,"cnum ".$device;#FP
push @evtEt,[$device,1,"battery:".(($msg->payloadByte(0) & 0x80)==0x80 ? "low" : "ok")];
my $channel = $main::modules{CUL_HM}{defptr}{$msg->channelId($cnum)};
#Log 1,"channel ".$channel; #FP
if( defined($channel) ) {
#my $temp = $msg->payloadWord(2);
my $bat = $msg->payloadByte(2);
push @evtEt,[$channel,1,"batVoltage:".$bat/10 ." V"];
#push @evtEt,[$channel,1,"temperature:".$temp/10];
push @evtEt,[$channel,1,"state:".$bat/10];
}
for( my $offset=3; $offset < length($msg->payload)/2; $offset += 2 ) {
$cnum = $msg->payloadByte($offset) & 0x3f; # get channel for next value
#Log 1,"cnum1 ".$cnum; #FP
$channel = $main::modules{CUL_HM}{defptr}{$msg->channelId($cnum)};
#Log 1,"channel ".$channel; #FP
if( defined($channel) ) {
my $moist = $msg->payloadByte($offset+1);
push @evtEt,[$channel,1,"humidity:".$moist." %"];
push @evtEt,[$channel,1,"state:".$moist];
}
else {
Log 1,"No channel for ".$msg->channelId($cnum);
}
}
return @evtEt;
};
Damit klappt alles. Auch kann ich die Regs setzten. Allerdings werden die Werte erst übernommen, nachdem ich einmal den Konfig-Button am Sender gedrückt habe.
Na super. Dann kann ich das ja mal mit aufnehmen.
Es kann sein, dass der Sensor nur alle X Nachrichten eine Ack fordert. Dann würden auch die Register übertragen werden.
Danke für deine Hilfe!
Hallo,
hier passiert zwar nichts mher, aber vielleicht kann mir doch jemand meine Frage beantworten.
Ich bekomme 4 Channels angezeigt:
channel_01 HM_F31100_Data
channel_02 HM_F31100_Moisture_01
channel_03 HM_F31100_Moisture_02
channel_04 HM_F31100_Moisture_03
channel_01: Zeigt mir immer eine Spannung an, welche ich nicht zuordnen kann. Irgendwie sinnlos, da diese auch ständig zwischen 2-11V schwankt.
channel_02: Zeigt mir z.B. 48% an
channel_03: Zeigt mir z.B. 91% an. Dieser Wert ändert sich mit der Feuchte des "Capacitive Soil Moisture Sensors"
channel_04: Ist mit channel_03 identisch.
Ich habe nur einen CAP-SOIL-M Sensor und keinen Temperaturfühler.
Wie kann ich channel_02 und channel_03 interpretieren?
Danke und Gruß
Thomas
Channel 1 sollte die Batteriespannung anzeigen. Channel 3 & 4 können einfach ignoriert werden, wenn nichts dran ist.
Hallo Papa,
die Batteriespannung kann aber nicht 8,9V oder 10.9 V sein. Ich habe 3,3V dran hängen.
Aktuelle Werte:
channel_01: 10,9V
channel_02: 49%
channel_03: 83%
channel_04: 100% (meine letzte Aussage war wohl falsch. Ist immer 100% und somit zu vernachlässigen)
Hi,
kanste du mal deine empfangene RAWMSG posten?
@joffi: Kannst du bitte kurz erklären wie ich das auslese?
Hi,
im Sensor sollte das bei Internals stehen (bei mir):
HMLAN1_RAWMSG
EF31100,0000,0234AB7A,FF,FFA8,048453F311002CD5F200411B4260435344634562464A473C485F
Du kannst aber auch im seriellen Monitor beim Arduino IDE nachschauen was der Sensor sendet.
Ich hae eiene 7 Kanal Sender, der im ersten Kanal die Batteriespannung sendet. Die Werte stehwn ab 41-1B (Batterie Spannung) dann kommen die 7 Feuchtesensoren: 42 - 60, 43-53, 44-63 usw bis 48-5F
Dann könnte man schauen, ob das Modul von PAPA die Werte richtig interpretiert.
Guten Tag
Ich klinke mich einmal in diesen Beitrag ein, weil ich genau das gleiche Problem habe, was auch joffi hatte.
Nach dem Anlernen dea Sensors wird dieser als HM_F31100 im Raum CUL_HM abgelegt. Hier ei List:
Internals:
DEF F31100
FUUID 5f3a86e9-f33f-62ad-daa6-8d550a3e55fdf3ac
IODev SCC
LASTInputDev SCC
MSGCNT 4
NAME HM_F31100
NOTIFYDEV global
NR 581
NTFY_ORDER 50-HM_F31100
SCC_MSGCNT 4
SCC_RAWMSG A0E058453F3110000000000412D4200::-34:SCC
SCC_RSSI -34
SCC_TIME 2020-08-17 17:36:53
STATE RESPONSE TIMEOUT:RegisterRead
TYPE CUL_HM
chanNo 01
lastMsg No:05 - t:53 s:F31100 d:000000 00412D4200
protCmdDel 3
protLastRcv 2020-08-17 17:36:53
protRcv 4 last_at:2020-08-17 17:36:53
protResnd 9 last_at:2020-08-17 17:17:27
protResndFail 3 last_at:2020-08-17 17:17:32
protSnd 3 last_at:2020-08-17 17:17:12
protState CMDs_done_Errors:1
rssi_at_SCC cnt:4 min:-46.5 max:-33.5 avg:-36.87 lst:-34
READINGS:
2020-08-17 15:33:13 D-firmware 1.0
2020-08-17 15:33:13 D-serialNr JPCAPM0000
2020-08-18 13:49:19 RegL_00.
2020-08-17 17:17:12 cfgState updating
2020-08-17 17:17:32 commState CMDs_done_Errors:1
2020-08-17 17:17:32 state RESPONSE TIMEOUT:RegisterRead
helper:
HM_CMDNR 5
PONtest 1
cSnd 01000FFFF3110000040000000000,01000FFFF3110000040000000000
mId no
supp_Pair_Rep 0
cfgChk:
idRc01 RegL_00.
cmds:
TmplKey :no:1597672380.32461
TmplTs 1597672380.32461
cmdKey 1:1:0::HM_F31100:no:01:
cmdLst:
clear [readings|all]
getConfig noArg
getRegRaw [List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
peerBulk -peer1,peer2,...- [set|unset]
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2- ...
regSet [prep|exec] -regName- -value- ... [-peerChannel-]
tplDel -tplDel-
tplSet_0 -tplChan-
update noArg
virtual -noButtons-
lst:
condition slider,0,1,255
peer
peerOpt
tplChan
tplDel
tplPeer
expert:
def 0
det 0
raw 1
tpl 0
io:
newChn +F31100,00,00,00
nextSend 1597678613.45852
prefIO
rxt 0
vccu
p:
F31100
00
00
00
mRssi:
mNo 05
io:
SCC:
-26
-26
prt:
bErr 0
sProc 0
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_SCC:
avg -36.875
cnt 4
lst -34
max -33.5
min -46.5
tmpl:
Attributes:
IODev SCC
autoReadReg 4_reqStatus
expert rawReg
firmware 1.0
model unknown
room CUL_HM
serialNr JPCAPM0000
subType no
Ich bin dem Link aus Antwort 1 gefolgt und habe die HMConfig_AskSinPPCustom.pm und HMMsg.pm nach /opt/fhem/FHEM kopiert. Rechte auf 666 Benutzer:Gruppe auf fhem:dialout gesetzt und fhem neu gestartet. Ändern tut sich allerdings nichts. Ein getConfig erzeugt lediglich das RESPONSE TIMEOUT:RegisterRead!
Jetzt kommen die Fragen auf: Was ist falsch?
Habe ich unter fhem etwas vergessen? Oder liegt es daran, das ich keinen CC1101 sondern einen TRX868 (breit) verwendet habe, ohne im Sketch etwas anzupassen? Habe ich beim löten Mist gebaut?
Zu erwähnen wäre auch noch, das ich damit schon im letzten Jahr begonnen habe. Da war die alternative TRX868 noch genannt. Darum habe ich auch den Sketch vom Juni 2019 genommen.
Wo sollte ich mit der Fehlersuche beginnen?
edition
Da noch nimand geantwortet hat, editiere ich einmal.
Ich bin jetzt vom Produktivsystem auf ein Testsystem umgestiegen. Frisch installiert und nur mit NanoCUL in Homematic Konfiguration ausgestattet. Die beiden Dateien habe ich wieder eingefügt. Auch hier zeigt sich nach dem Anlernen des Sensors das gleiche Bild.
Ein Blick ins Logfile zeigt folgenden Fehler beim Start von fhem:
2020.08.19 15:04:12 1: Error loading file: ./FHEM/HMConfig_AskSinPPCustom.pm:
Excessively long <> operator at ./FHEM/HMConfig_AskSinPPCustom.pm line 20.
Und beim Anlernen des Sensors werden folgende Fehler generiert:
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in hash element at ./FHEM/10_CUL_HM.pm line 8945.
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in concatenation (.) or string at ./FHEM/10_CUL_HM.pm line 8948.
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in string eq at ./FHEM/10_CUL_HM.pm line 8640.
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in pattern match (m//) at ./FHEM/10_CUL_HM.pm line 8656.
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in pattern match (m//) at ./FHEM/10_CUL_HM.pm line 8660.
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in pattern match (m//) at ./FHEM/10_CUL_HM.pm line 8663.
2020.08.19 15:31:51 1: PERL WARNING: Use of uninitialized value $md in string eq at ./FHEM/10_CUL_HM.pm line 8672.
2020.08.19 15:31:56 1: PERL WARNING: Use of uninitialized value in join or string at ./FHEM/10_CUL_HM.pm line 9038.
2020.08.19 15:31:59 1: PERL WARNING: Use of uninitialized value $st in hash element at ./FHEM/10_CUL_HM.pm line 3883.
2020.08.19 15:31:59 1: PERL WARNING: Use of uninitialized value $md in hash element at ./FHEM/10_CUL_HM.pm line 3884.
2020.08.19 15:31:59 1: PERL WARNING: Use of uninitialized value $st in hash element at ./FHEM/10_CUL_HM.pm line 3895.
2020.08.19 15:31:59 1: PERL WARNING: Use of uninitialized value $md in hash element at ./FHEM/10_CUL_HM.pm line 3896.
Ich gehe davon aus, das dass zusammen hängt. Auf der Suche nach einer Erklärung für die erste Fehlermeldung bin ich allerdings noch nicht weit gekommen.
edition
Nochmal editiert
Fehler gefunden: In den beiden Dateien (HMConfig_AskSinPPCustom.pm und HMMsg.pm) war nach dem herunterladen nicht der Inhalt, der drin sein sollte. Irgendetwas ist beim Download schief gelaufen, oder ich habe falsch geklickt. Mit dem richtigen Inhalt funktioniert alles.
edition