Browse code

Am generalizat modul de apelare a scripturilor externe

Liviu Pislaru authored on 08/03/2018 16:00:28
Showing 1 changed files
... ...
@@ -1,6 +1,6 @@
1 1
 #!/usr/bin/perl
2 2
 # parser pentru mesajele MQTT
3
-# Version: 1.0.7
3
+# Version: 1.0.8
4 4
 
5 5
 use strict;
6 6
 use warnings;
... ...
@@ -58,10 +58,14 @@ 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
61
+        # stergem consumul pentru azi si ieri cand este offline priza
62 62
         if ($nonjson eq 'Offline') {
63 63
           delDB($topic);
64
-        }        
64
+        }
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
65 69
         addDB ($topic, "LWT", $nonjson);
66 70
       }
67 71
       else {
... ...
@@ -129,7 +133,8 @@ while (my $mqttMessage = <$SUB> ) {
129 129
       } 
130 130
       if ($queue eq "ALARM"){
131 131
         $json=~ s/\"/\\"/g;
132
-        pushALARM ($topic, $json);
132
+        my $script="php /admin/scripts/mqttparser/alarm.php $topic $json";
133
+	runSCRIPT ($script);
133 134
       }      
134 135
     }
135 136
   }
... ...
@@ -143,16 +148,15 @@ if ($daemon==1){
143 143
   }
144 144
 }
145 145
 
146
-# loghez alarmele pe care le trimit
147
-sub pushALARM {
148
-  (my $topic, my $json) = @_;
149
-  my $script = "php /admin/scripts/alarma/alarm.php $topic $json";
150
-  my $logfile='/var/log/mqttparser/mqtt-alarm.log';   
146
+# rulez scripturi cand primesc input specific via mqtt
147
+sub runSCRIPT { 
148
+  (my $script) = @_;
149
+  my $logfile='/var/log/mqttparser/scripts.log';
151 150
   my $timealarm = strftime("%d/%m/%Y %H:%M:%S", localtime(time));
152
-  open (my $lh, '>>', $logfile) or die "Cannot open $logfile";
153
-  print $lh "$timealarm - Am lansat: $script";
154
-  close $lh;
155
-  system('1', "$script"); # lansez scriptul de alarma cu timeout 1 secunda
151
+  open (my $fh, '>>', $logfile) or die "Cannot open $logfile";
152
+  print $fh "$timealarm - Am lansat: $script";
153
+  close $fh;
154
+  system('1', "$script"); # lansez scriptul
156 155
   return;
157 156
 }
158 157