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