X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=inline;f=iio2mqtt.pl;h=1879ce117e32dcc2d2189a052a281c4d8df8184a;hb=0d538f686d23b6779e07a4efa9e0faebc636c5ed;hp=a9dce9f5c15cf451b474ccb4e28a90e13909a889;hpb=c9bfa79f7249f0963798648a565243e4a3e63161;p=air-quality diff --git a/iio2mqtt.pl b/iio2mqtt.pl index a9dce9f..1879ce1 100755 --- a/iio2mqtt.pl +++ b/iio2mqtt.pl @@ -6,18 +6,22 @@ use Time::HiRes; # sudo apt install libiio-utils mosquitto-clients +my $influx_url = shift @ARGV || 'http://10.13.37.92:8086/write?consistency=any&db=rot13'; + my $hostname = `hostname -s`; chomp($hostname); while(1) { my $t = Time::HiRes::time; + my $t_influx = int( $t * 1_000_000_000 ); my $iio = `iio_info`; my $device; my $name; + my @influx; foreach ( split(/\n/, $iio) ) { if ( m/iio:device\d+:\s+(\S+)/ ) { $device = $1; @@ -31,10 +35,14 @@ while(1) { my $topic = "iio/$hostname/$device/$name"; #print "$topic $val\n"; system "mosquitto_pub -h rpi2 -t $topic -m $val"; + + push @influx, "${device}_${name}=$val"; } else { #warn "# $_\n"; } } + my $influx = "iio,dc=trnjanska,host=$hostname " . join(",", @influx) . " $t_influx"; + system "curl --silent -XPOST '$influx_url' --data-binary '$influx'"; sleep Time::HiRes::time + 1 - $t; }