import dati temperatura da sonoff + DHT22
Inviato: 28/08/2018, 22:57
ciao
per chi vuole usare un sonoff con DHT22 e leggere i dati della temperatura in wifi ed importarli in metern
chiaramente salto tutta la parte di collegamento del sonoff e sensori, quindi partiamo da sonoff connesso alla rete wifi e con sensore attivo e funzionante
leggiamo, per controllare che tutto sia OK, i dati della temperatura con il comando
http://192.168.x.xxx/json?tasknr=yy
le xx vanno sostituite con l'indirizzo ip del sonoff
le yy vanno sostituite con il numero del sensore che vogliamo importare
se tutto ok la risposta sarà
creiamo un file php (sonoff.php) nella cartella \var\www\MyScripts con il seguente contenuto
(alcune righe sono commentate con il doppio //, logicamente và personalizzato il dato che vogliamo estrapolare)
diamo i permessi pi 755
inseriamo in crontab
in questa maniera ogni 5 minuti viene interrogato il sensore e memorizzato nella cartella /dev/shm/sonoff
editiamo il reqsdm.php nella cartella comapps ed aggiungiamo le righe (logicamente sotto le corrispondneti)
creiamo un nuovo sensore con
Name = queellochevuoi
ID = tempsonoff
mode = Value
Command = reqsdm tson
Unit = T
test command - save config
ciao
per chi vuole usare un sonoff con DHT22 e leggere i dati della temperatura in wifi ed importarli in metern
chiaramente salto tutta la parte di collegamento del sonoff e sensori, quindi partiamo da sonoff connesso alla rete wifi e con sensore attivo e funzionante
leggiamo, per controllare che tutto sia OK, i dati della temperatura con il comando
http://192.168.x.xxx/json?tasknr=yy
le xx vanno sostituite con l'indirizzo ip del sonoff
le yy vanno sostituite con il numero del sensore che vogliamo importare
se tutto ok la risposta sarà
{
"TaskName": "TEMP_EXT",
"Temperature": 23.84,
"Humidity": 81.06,
"Pressure": 1018.58
}
creiamo un file php (sonoff.php) nella cartella \var\www\MyScripts con il seguente contenuto
Codice: Seleziona tutto
#!/usr/bin/php
<?php
// valori sonoff
// Indicators (http://192.168.x.xxx/json?tasknr=x)
// in tasknr inserire il numero del sensore
//
// Temperature S1
// Humidity S2
// Pressure S3
//
// IMPOSTAZIONI LETTURA JSON
$url_son1 = 'http://192.168.x.xxx/json?tasknr=x;
$json_son1 = json_decode((file_get_contents($url_son1)), true);
// APERTURA FILE INVERTER PER PVOUTPUT
$fo = fopen("/dev/shm/sonoff.txt","w+");
// LETTURA DATI
$S1 = $json_son1['Temperature'];
// $S2 = $json_son1['Humidity'];
// $S3 = $json_son1['Pressure'];
// ARROTONDA A 2 CIFRE DECIMALI
// $S1 = number_format($S1, 1); // con 1 arrotonda a 1 cifra decimale
// SCRITTURA DATI
fwrite($fo, $S1);
?>
(alcune righe sono commentate con il doppio //, logicamente và personalizzato il dato che vogliamo estrapolare)
diamo i permessi pi 755
inseriamo in crontab
Codice: Seleziona tutto
*/5 * * * * root /var/www/MyScripts/sonoff.php
in questa maniera ogni 5 minuti viene interrogato il sensore e memorizzato nella cartella /dev/shm/sonoff
editiamo il reqsdm.php nella cartella comapps ed aggiungiamo le righe (logicamente sotto le corrispondneti)
Codice: Seleziona tutto
} elseif ($argv[1] == 'tson') {
$outstr = exec('cat /dev/shm/sonoff.txt');
$outstr = "tempsonoff($outstr*°T)";
creiamo un nuovo sensore con
Name = queellochevuoi
ID = tempsonoff
mode = Value
Command = reqsdm tson
Unit = T
test command - save config
ciao