Das Pairing mit einem HM-CC-RT-DN scheint zu klappen.
Die Einbindung in fhem hat mittlerweile auch geklappt, ich hoffe es ist alles korrekt so. Falls es noch jemand benötigt, das ist mein aktueller Stand.
Code: Alles auswählen
# HB-UNI-Sensor-THPD-BME280
# a="index", s="size", l="list", min="min", max="max", t="id", c="conversion function", f="factor", u="unit", d="show register in readings", t="description"
# possible conversions from 10_CUL_HM: fltCvT, fltCvT60, min2time, m10s3, hex, lit
$HMConfig::culHmRegDefine{"deviceLedMode"} = {a=>5.6,s=>0.2,l=>0,min=>0,max=>1,c=>'',p=>'n',f=>'',u=>'',d=>1,t=>"LED mode"};
$HMConfig::culHmRegDefine{"lowBatLimit"} = {a=>18,s=>1,l=>0,min=>0.9,max=>5.0,c=>'',p=>'n',f=>10,u=>'V',d=>1,t=>"low battery limit"};
$HMConfig::culHmRegDefine{"transmitDevTryMax"} = {a=>20,s=>1,l=>0,min=>1,max=>10,c=>'',p=>'n',f=>'',u=>'',d=>1,t=>"transmitDevTryMax"};
$HMConfig::culHmRegDefine{"transmitTimeInterval"} = {a=>32,s=>2,l=>0,min=>60,max=>43200,c=>'',p=>'n',f=>'',u=>'s',d=>1,t=>"transmiti time interval"};
$HMConfig::culHmRegDefine{"altitudeAboveSeaLevel"} = {a=>34,s=>2,l=>0,min=>0,max=>10000,c=>'',p=>'n',f=>'',u=>'m',d=>1,t=>"altitude above sea level"};
$HMConfig::culHmRegDefine{"temperatureOffset"} = {a=>1,s=>1,l=>1,min=>-5,max=>5,c=>'',p=>'n',f=>'10',u=>'K',d=>1,t=>"temperature offset"};
$HMConfig::culHmRegDefine{"humidityOffset"} = {a=>2,s=>1,l=>1,min=>-5,max=>5,c=>'',p=>'n',f=>'10',u=>'%',d=>1,t=>"humidity offset"};
$HMConfig::culHmRegDefine{"pressureOffset"} = {a=>3,s=>1,l=>1,min=>-10,max=>10,c=>'',p=>'n',f=>'10',u=>'hPa',d=>1,t=>"pressure offset"};
# HB-UNI-Sensor-THPD-BME280
# details in HMConfig.pm, F604 = id, st = type for custom message handling set it to custom, cyc = cycle
$HMConfig::culHmModel{"F604"} = {name=>"HB-UNI-Sensor-THPD-BME280",st=>'custom',cyc=>'00:10',rxt=>'l:c:w',lst=>'1',chn=>""};
$HMConfig::culHmChanSets{"HB-UNI-Sensor-THPD-BME280"}{fwUpdate} = "<filename>";
$HMConfig::culHmChanSets{"HB-UNI-Sensor-THPD-BME280"} = $HMConfig::culHmSubTypeSets{"THSensor"};
# list of available register
$HMConfig::culHmRegModel{"HB-UNI-Sensor-THPD-BME280"} = { deviceLedMode => 1, lowBatLimit => 1, transmitDevTryMax => 1, transmitTimeInterval => 1, altitudeAboveSeaLevel => 1, temperatureOffset => 1, humidityOffset => 1, pressureOffset => 1 };
# process custom message
$customMsg{"HB-UNI-Sensor-THPD-BME280"} = sub {
my ($msg,$target) = @_;
my $device = main::CUL_HM_id2Hash($msg->from);
my @evtEt=();
if( $msg->isWeather ) {
my $temp = $msg->payloadWord(0) & 0x7fff;
my $battery = "ok";
$battery = "low" if (($msg->payloadByte(0) & 0x80)==0x80);
my $humidity = $msg->payloadWord(2);
my $pressure = $msg->payloadWord(4);
my $dewpoint = $msg->payloadWord(6);
my $vapor = $msg->payloadWord(8);
my $voltage = $msg->payloadWord(10);
push @evtEt,[$device,1,"temperature:".$temp/10];
push @evtEt,[$device,1,"battery:".$battery];
push @evtEt,[$device,1,"humidity:".$humidity/10];
push @evtEt,[$device,1,"pressure:".$pressure/10];
push @evtEt,[$device,1,"dewpoint:".$dewpoint/10];
push @evtEt,[$device,1,"vapor:".$vapor/100];
push @evtEt,[$device,1,"voltage:".$voltage/1000];
push @evtEt,[$device,1,"state:T: ".($temp/10)." P: ".($pressure/10)." H: ".($humidity/10)];
return @evtEt;
}
return ();
};