Browse code

v1.1.0: nu procesez LWT in primul minut dupa ce porneste serverul

Liviu Pislaru authored on 08/03/2018 16:46:16
Showing 1 changed files
... ...
@@ -1,6 +1,6 @@
1 1
 #!/usr/bin/perl
2 2
 # parser pentru mesajele MQTT
3
-# Version: 1.0.8
3
+# Version: 1.1.0
4 4
 
5 5
 use strict;
6 6
 use warnings;
... ...
@@ -32,6 +32,8 @@ my $dbpass;
32 32
 my $dbhost;
33 33
 my $mqttuser;
34 34
 my $mqttpass;
35
+my $startime = strftime("%s", localtime(time));
36
+
35 37
 my $row=1;
36 38
 while( my $line = <$CFG>){
37 39
   my @credentials = split /=/, $line;
... ...
@@ -58,15 +60,20 @@ while (my $mqttMessage = <$SUB> ) {
58 58
       (my $root, my $topic, my $queue) = split /\//, $channel;
59 59
       # aleg canalele de unde salvez date in DB:
60 60
       if ($queue eq "LWT"){
61
-        # stergem consumul pentru azi si ieri cand este offline priza
62
-        if ($nonjson eq 'Offline') {
63
-          delDB($topic);
61
+        my $curtime = strftime("%s", localtime(time));
62
+        my $uptime = $curtime-$startime;
63
+        # nu procesez retained LWT cand pornesc mqttparser 
64
+        if ($uptime>60){ 
65
+          # stergem consumul pentru azi si ieri cand este offline priza
66
+          if ($nonjson eq 'Offline') {
67
+            delDB($topic);
68
+          }
69
+          # salvam ultima stare a releului
70
+          my $script="php /admin/scripts/mqttparser/last_state.php $topic $nonjson\n";
71
+          runSCRIPT ($script);
72
+          # salvam in DB statusul online/offline
73
+          addDB ($topic, "LWT", $nonjson);
64 74
         }
65
-        # salvam ultima stare a releului
66
-        my $script="php /admin/scripts/mqttparser/last_state.php $topic $nonjson\n";
67
-        runSCRIPT ($script);
68
-        # salvam in DB statusul online/offline
69
-        addDB ($topic, "LWT", $nonjson);
70 75
       }
71 76
       else {
72 77
         #print "nu ma intereseaza alte canale fara json";