send data directly to influx
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 11 Oct 2020 10:58:34 +0000 (12:58 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 11 Oct 2020 11:21:14 +0000 (13:21 +0200)
serial.pl

index c08a73e..2ba83e8 100755 (executable)
--- a/serial.pl
+++ b/serial.pl
@@ -4,6 +4,7 @@ use strict;
 use Device::SerialPort;
 use Data::Dump qw(dump);
 use Time::HiRes qw(time);
+use LWP::UserAgent;
 
 my $read_len = 255;
 
@@ -11,6 +12,8 @@ my $path = shift @ARGV || '/dev/serial/by-path/platform-20980000.usb-usb-0:1.2:1
 
 $|=1;
 
+my $ua = LWP::UserAgent->new;
+
 connect_again:
 
 my $s = new Device::SerialPort( $path ) || die $!;
@@ -75,6 +78,30 @@ while (1) {
                        _mqtt_pub "stat/boiler/" . shift(@n) => $_;
                }
 
+               my $t = int( $ts * 1_000_000_000 );
+               my @a = split(/ /, $hex);
+               if ( $#a == 66 ) {
+                       my $measurement = "boiler " . join(',',
+                               "o19=".hex( $a[19] ),
+                               "o25=".hex( $a[35] . $a[36] ),
+                               "o30=".hex( $a[38] . $a[39] ),
+                               "o41=".hex( $a[41] ),
+                               "o47=".hex( $a[47] ),
+                               "o49=".hex( $a[49] ),
+                               "o50=".hex( $a[50] ),
+                               "o51=".hex( $a[51] ),
+                               "o53=".hex( $a[53] ),
+                               "ds18b20_temp=$v[0]", "dht22_temp=$v[1]", "dht22_hum=$v[2]"
+                       );
+                       my $response = $ua->post( "http://10.60.0.92:8086/write?db=rot13", Content => $measurement );
+                       chomp(my $content = $response->content());
+                       if ($response->is_success()) {
+                               #warn "OK $content\n";
+                       } else {
+                               warn "ERROR $content\n";
+                               die $response->status_line;
+                       }
+               }
        }
 }