Browse code

Am adaugat partea cu sters yesterday/today din DB cand priza e Offline.

Liviu Pislaru authored on 05/03/2018 11:02:52
Showing 1 changed files
... ...
@@ -1,6 +1,6 @@
1 1
 #!/usr/bin/perl
2 2
 # parser pentru mesajele MQTT
3
-# Version: 1.0.3
3
+# Version: 1.0.4
4 4
 
5 5
 use strict;
6 6
 use warnings;
... ...
@@ -59,9 +59,9 @@ while (my $mqttMessage = <$SUB> ) {
59 59
       if ($queue eq "LWT"){
60 60
         #stergem consumul pentru azi si ieri cand este offline priza
61 61
         if ($nonjson eq 'Offline') {
62
-         #           mysql_query("delete from getdevinfo where user='$mqtt_user' and devid='$mqtt_dev' and (camp='Yesterday' || camp='Today');");
62
+          delDB($topic);
63 63
         }        
64
-        getdevinfoDB ($topic, "LWT", $nonjson);
64
+        addDB ($topic, "LWT", $nonjson);
65 65
       }
66 66
       else {
67 67
         #print "nu ma intereseaza alte canale fara json";
... ...
@@ -79,19 +79,19 @@ while (my $mqttMessage = <$SUB> ) {
79 79
         # tele/mng9184-1657/ENERGY {"Time":"2018-03-04T13:18:39","Total":1376.995,"Yesterday":23.704,"Today":16.450,"Period":102,"Power":1255,"Factor":0.99,"Voltage":237,"Current":5.298}
80 80
         my $decoded = decode_json($json);
81 81
         if (exists $decoded->{'Yesterday'}){
82
-          getdevinfoDB ($topic, "Yesterday", $decoded->{'Yesterday'});
82
+          addDB ($topic, "Yesterday", $decoded->{'Yesterday'});
83 83
         }
84 84
         if (exists $decoded->{'Today'}){ 
85
-          getdevinfoDB ($topic, "Today", $decoded->{'Today'});
85
+          addDB ($topic, "Today", $decoded->{'Today'});
86 86
         }
87 87
       }
88 88
       if ($queue eq "ESP"){
89 89
         my $decoded = decode_json($json);
90 90
         if (exists $decoded->{'Temp'}){     
91
-          getdevinfoFILE ($topic, "Temp", $decoded->{'Temp'});
91
+          addFILE ($topic, "Temp", $decoded->{'Temp'});
92 92
         }
93 93
         if (exists $decoded->{'Humi'}){      
94
-          getdevinfoFILE ($topic, "Humi", $decoded->{'Humi'});
94
+          addFILE ($topic, "Humi", $decoded->{'Humi'});
95 95
         }
96 96
       }
97 97
     }
... ...
@@ -106,7 +106,8 @@ if ($daemon==1){
106 106
   }
107 107
 }
108 108
 
109
-sub getdevinfoFILE {
109
+# adaug in fisierele pentru graficele senzorilor
110
+sub addFILE {
110 111
   (my $topic, my $camp, my $valoare) = @_;
111 112
   my $cale='/var/www/html/www.clickhome.ro/colect/';
112 113
   my $filename;
... ...
@@ -134,15 +135,27 @@ sub getdevinfoFILE {
134 134
   return;
135 135
 }
136 136
 
137
-sub getdevinfoDB {                                                    
137
+# adaug in tabela getdevinfo din baza de date 
138
+sub addDB {                                                    
138 139
   (my $topic, my $camp, my $valoare) = @_;
139 140
 #  mysql_query("insert into getdevinfo values('$MQTTuser','$MQTTdevice','$MQTTcamp','$MQTTvaloare') on duplicate key update camp='$MQTTcamp',valoare='$MQTTvaloare';");
140 141
 #   my $query = "insert into getdevinfo values (?, ?, ?, ?) on duplicate key update camp=$camp,valoare='$valoare";
141 142
   (my $user, my $devid) = split /\-/, $topic;
142
-   my $query = "UPDATE getdevinfo SET valoare=? WHERE user=? and devid=? and camp=?";
143
-   my $sth = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstr\n";
144
-   $sth->execute("$valoare", "$user", "$devid", "$camp");
145
-   $sth->finish();
143
+  my $query = "UPDATE getdevinfo SET valoare=? WHERE user=? and devid=? and camp=?";
144
+  my $sth = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstr\n";
145
+  $sth->execute("$valoare", "$user", "$devid", "$camp");
146
+  $sth->finish();
147
+  return;
148
+}
149
+
150
+# sterg din tabela getdevinfo din baza de date 
151
+sub delDB {                                    
152
+  (my $topic) = @_;
153
+  (my $user, my $devid) = split /\-/, $topic;
154
+  my $query = "DELETE FROM getdevinfo WHERE user=? and devid=? and (camp='Yesterday' || camp='Today')";
155
+  my $sth = $dbh->prepare($query) or die "Can't prepare $query: $dbh->errstr\n";
156
+  $sth->execute("$user", "$devid");
157
+  $sth->finish();
146 158
   return;
147 159
 }
148 160
 $dbh->disconnect;