X-Git-Url: http://git.rot13.org/?p=air-quality;a=blobdiff_plain;f=mh-z19b.pl;h=c2f8ffe302d16299fc7f41fb5292719af320a764;hp=b71b3656959966f9f6b9ddec7fdaadd2297e16ec;hb=bcefa9e3896d896801b4361aa7a03c17eae60ad3;hpb=a25b1d3919cbaf5ac569df06a5c35e32c0445af3 diff --git a/mh-z19b.pl b/mh-z19b.pl index b71b365..c2f8ffe 100755 --- a/mh-z19b.pl +++ b/mh-z19b.pl @@ -6,7 +6,7 @@ use Device::SerialPort; use Time::HiRes; use Data::Dump qw(dump); -my $port = shift @ARGV || '/dev/ttyUSB0'; +my $port = shift @ARGV || '/dev/serial/by-path/pci-0000:00:1a.7-usb-0:5.3.4:1.2'; my $influx_url = shift @ARGV || 'http://10.13.37.229:8186/write?db=telegraf'; $influx_url = 'http://10.13.37.92:8086/write?db=rot13'; @@ -16,7 +16,7 @@ $s->databits(8); $s->parity('none'); $s->stopbits(1); $s->handshake('none'); -$s->read_char_time(0); +$s->read_char_time(1); $s->read_const_time(10); $s->debug(1); @@ -29,7 +29,9 @@ while (1) { die $! if ! defined($len); if ( $len > 0 ) { my @v = unpack('C*', $string); - #warn "# $len ",dump($string), dump( @v ), $/; + if ( $#v < 8 ) { + die "# $len ",dump($string), dump( @v ), $/; + } my $sum = 0; foreach my $i ( 1 .. $#v - 1 ) { @@ -38,7 +40,7 @@ while (1) { } $sum = 0xff - $sum + 1; - my $checksum = $v[8] || die "no checksum"; + my $checksum = $v[8]; my $co2 = $v[2] * 255 + $v[3]; if ( $v[0] == 0xff && $sum == $checksum ) { my $influx = "mh-z19b,dc=trnjanska co2=$co2 $t";