| ... | ... |
@@ -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"; |