draw numeric values using tredd
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 21 Mar 2017 07:33:00 +0000 (08:33 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 21 Mar 2017 07:33:00 +0000 (08:33 +0100)
mqtt-trend.pl [new file with mode: 0755]

diff --git a/mqtt-trend.pl b/mqtt-trend.pl
new file mode 100755 (executable)
index 0000000..e256a45
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+
+my $trend = {
+       hist_spec => {
+               'fade/LDR' => '300x1',
+               '__default' => '100x1',
+       }
+};
+
+sub DESTROY {
+       warn "DESTROY";
+       system "killall mosquitto_sub trend";
+}
+system "killall mosquitto_sub trend";
+system "i3-msg layout splitv";
+#system "i3-msg border none";
+
+my $border = 2;
+
+open(my $in, '-|', 'mosquitto_sub -h rpi2 -t stat/# -t fade/# -v');
+while(<$in>) {
+       s/\s+$//sg;
+
+       my ($t,$v) = split(/\s/,$_,2);
+       warn "$t\t$v\n";
+
+       if ( ! exists $trend->{$t} && $v =~ m/^\d+/ ) {
+               my $hist = $trend->{hist_spec}->{$t} || $trend->{hist_spec}->{__default};
+               my $label = $t;
+               $label =~ s/^.+\///;
+               open($trend->{$t}, '|-', "trend -L $label -v - $hist");
+               $border = 2;
+       }
+
+       if ( $trend->{$t} ) {
+               select $trend->{$t};
+               $| = 1;
+               print "$v\n";
+       } else {
+               warn "CLOSED $!\n";
+       }
+
+       system "i3-msg border 1pixel" if $border-- > 0;
+}
+