+
+ if ( $hex =~ m/^.+aa fc 39 aa (.+)/ ) {
+ my @l = split(/\s+/,$1);
+ my @d = (
+ hex( $l[0] . $l[1] ),
+ hex( $l[3] . $l[4] ),
+ hex( $l[6] ),
+ hex( $l[12] ),
+ hex( $l[14] ), # * 300,
+ hex( $l[15] ), # * 400,
+ hex( $l[18] ),
+ );
+
+ _mqtt_pub "stat/boiler/" . chr(ord('a') + $_) => $d[$_] foreach 0 .. $#d;
+ }
+
+ my @v = split(/\s+/, $temp, 4);
+ my @n = qw( DS18B20/temperature DHT22/temperature DHT22/humidity DHT22/errors );
+ @n = qw( DS18B20/temperature DHT22/temperature DHT22/humidity DHT22/errors ) if $#v == 1; # no DS18B20
+ foreach (@v) {
+ _mqtt_pub "stat/boiler/" . shift(@n) => $_;
+ }
+