Merge branch 'master' of mjesec.ffzg.hr:/git/vaillant-thermostat
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 12 Mar 2017 10:33:46 +0000 (11:33 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 12 Mar 2017 10:33:46 +0000 (11:33 +0100)
Conflicts:
parse.pl

1  2 
parse.pl

diff --cc parse.pl
+++ b/parse.pl
@@@ -2,24 -2,37 +2,38 @@@
  use warnings;
  use strict;
  
+ my $curl;
+ my $influx = $ENV{INFLUX}; # || 'http://127.0.0.1:8086/write?db=boiler';
+ my $temp = '';
  while(<>) {
        chomp;
-       if ( m/^([0-9\.]+) .+aa fc 39 aa (.+) \|\s+(\d+\.\d+)/ ) {
+       if ( s/\s+\|\s+(\d+\.\d\d).+$// ) {
+               $temp = $1;
+       }
+ #$temp = ( $temp - 20 ) * 500 + 500;
+       if ( m/^([0-9\.]+) .+aa fc 39 aa (.+)/ ) {
+               my $t = $1;
                #warn "# $1 $2\n";
-               my $temp = $3;
 -              my @l = split(/\s/,$2);
 +              my @l = split(/\s+/,$2);
                my @d = (
-                       $1,
+                       $t,
                        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[14] ), # * 300,
+                       hex( $l[15] ), # * 400,
                        hex( $l[18] ),
 +                      $temp
                );
-               print join(',', @d),$/;
+               if ( $influx ) {
+                       open($curl, '|-', qq( tee /dev/shm/parse.curl | curl -XPOST $influx --data-binary \@- )) unless $curl;
+                       print $curl "thermostat ",join(',', map { chr( ord('a') + $_ ) . '=' . $d[$_] . 'i' } 1 .. $#d ), ($temp ? ",temp=$temp" : ""), " ", int($t * 1_000_000_000), "\n";
+               } else {
+                       print join(',', @d,$temp),$/;
+               }
        } else {
                warn "# $_\n";
        }