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