7 # sudo apt install libiio-utils mosquitto-clients
9 my $influx_url = shift @ARGV || 'http://10.60.0.92:8086/write?consistency=any&db=rot13';
11 my $delay = $ENV{DELAY} || 1;
13 my $hostname = `hostname -s`;
18 my $t = Time::HiRes::time;
19 my $t_influx = int( $t * 1_000_000_000 );
28 foreach ( split(/\n/, $iio) ) {
29 if ( m/iio:device\d+:\s+(\S+)/ ) {
32 if ( $influx =~ m/,$/ ) {
33 $influx =~ s/,$/ $t_influx\n/;
34 } elsif ( $influx =~ m/ $/ ) { # only device
35 $influx =~ s/\S+\s$//;
37 $influx .= "iio,dc=trnjanska,host=$hostname,device=$device ";
39 } elsif ( m/(\S+):\s+\(input\)/ ) {
41 } elsif ( m/attr\s+0:\s+input\svalue: (\d+[\.\d]+)/ ) {
43 if ( $val !~ m/\d+\.\d+/ ) {
46 my $topic = "iio/$hostname/$device/$name";
47 #print "$topic $val\n";
48 system "mosquitto_pub -h rpi2 -t $topic -m $val";
50 $influx .= "$name=$val,";
56 $influx =~ s/,$/ $t_influx/;
57 system "curl --silent -XPOST '$influx_url' --data-binary '$influx'";
60 my $dt = Time::HiRes::time + $delay - $t - 100;