letture sensore dht22 su esp che saltano

Discussioni relative al software di monitoraggio energetico METERN
megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

letture sensore dht22 su esp che saltano

Messaggioda megamarco83 » 12/09/2018, 19:13

ciao, ho due dh22 montati su due esp8266
uno però funziona bene e non perde un colpo nella registrazione dei dati, l'altro invece va spesso in lost comunication
questo è quello che va bene
Immagine
questo è quello che fa i capricci
Immagine

le rihieste di lettura vengono fatte con reqsdm
queste per quello che funziona:

Codice: Seleziona tutto

reqsdm espdht22t
reqsdm espdht22u


queste per quello che non funziona:

Codice: Seleziona tutto

reqsdm espdht22t_primo_piano
reqsdm espdht22u_primo_piano


Codice: Seleziona tutto

      } elseif ($argv[1] == 'espdht22t') {
         $outstr =  exec('curl -s http://192.168.0.195/json?tasknr=2 | egrep "Temperature"  | cut -d: -f2 | cut -d, -f1 | tr -d  [:blank:]');
         $outstr = "16($outstr*°C)";
      } elseif ($argv[1] == 'espdht22u') {
         $outstr =  exec('curl -s http://192.168.0.195/json?tasknr=2 | egrep "Humidity"  | cut -d: -f2 | cut -d, -f1 | tr -d  [:blank:]');
         $outstr = "17($outstr*%)";
     } elseif ($argv[1] == 'espdht22t_primo_piano') {
         $outstr =  exec('curl -s http://192.168.0.198/json?tasknr=3 | egrep "Temperature"  | cut -d: -f2 | cut -d, -f1 | tr -d  [:blank:]');
         $outstr = "18($outstr*°C)";
      } elseif ($argv[1] == 'espdht22u_primo_piano') {
         $outstr =  exec('curl -s http://192.168.0.198/json?tasknr=3 | egrep "Humidity"  | cut -d: -f2 | cut -d, -f1 | tr -d  [:blank:]');
         $outstr = "19($outstr*%)";


come mai ci sono queste differenze di lettura secondo voi?
entrambi gli esp hanno segnali molto buoni di wifi...


Avatar utente
Flane
Messaggi: 2479
Iscritto il: 16/01/2016, 15:02

Re: letture sensore dht22 su esp che saltano

Messaggioda Flane » 12/09/2018, 23:55

E' possibile anche estrarre i valori dalla pagina json di espeasy direttamente con comandi json in modo molto più pulito.

Con un sensore DHT22 collegato al sonoff con firmware ESPEASY, le righe da aggiungere a reqsdm per estrarre la temperatura in formato MeterN:

Codice: Seleziona tutto

   } elseif ($argv[1] == 'garage-temp') {
         $url = 'http://192.168.3.147/json?tasknr=4';
         $pagina = file_get_contents($url);
         $json_output = json_decode($pagina, true);
         $outstr = $json_output['Temperature'];
         $outstr = "22($outstr*°C)";   


Con un sensore DHT22 collegato al sonoff con firmware ESPEASY, le righe da aggiungere a reqsdm per estrarre l'umidità in formato MeterN:

Codice: Seleziona tutto

   } elseif ($argv[1] == 'garage-umi') {
         $url = 'http://192.168.3.147/json?tasknr=4';
         $pagina = file_get_contents($url);
         $json_output = json_decode($pagina, true);
         $outstr = $json_output['Humidity'];
         $outstr = "23($outstr*%)";   


Ovviamente il tasknr va cambiato in funzione del vostro numero di task che avete configurato in espeasy, oltre a cambiare l'IP del sonoff (192.168.3.147) ed il numero di meter che volete utilizzare in MeterN(22 - 23)

megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: letture sensore dht22 su esp che saltano

Messaggioda megamarco83 » 13/09/2018, 0:32

provato e funziona, grazie Flavio
per ora non da errori, vediamo se continua così....

una domanda però, negli script sh che poi uso per passare il valore a domoticz invece cosa consigli?

io ora faccio così, all'interno dello script in sh aggiungo:

Codice: Seleziona tutto

TEM_ESP_MANS=`curl -s http://192.168.0.198/json?tasknr=3 | egrep "Temperature" | cut -d: -f2 | cut -d, -f1 | tr -d [:blank:]`
HUM_ESP_MANS=`curl -s http://192.168.0.198/json?tasknr=3 | egrep "Humidity" | cut -d: -f2 | cut -d, -f1 | tr -d [:blank:]`
curl -s "http://192.168.0.105:8085/json.htm?type=command&param=udevice&idx=14&nvalue=0&svalue=$TEM_ESP_COR;$HUM_ESP_COR;2"
curl -s "http://192.168.0.105:8085/json.htm?type=command&param=udevice&idx=21&nvalue=0&svalue=$TEM_ESP_MANS;$HUM_ESP_MANS;2"

novembre62
Messaggi: 31
Iscritto il: 19/04/2018, 16:56

Re: letture sensore dht22 su esp che saltano

Messaggioda novembre62 » 07/07/2021, 16:05

Flane ha scritto:E' possibile anche estrarre i valori dalla pagina json di espeasy direttamente con comandi json in modo molto più pulito.

Con un sensore DHT22 collegato al sonoff con firmware ESPEASY, le righe da aggiungere a reqsdm per estrarre la temperatura in formato MeterN:

Codice: Seleziona tutto

   } elseif ($argv[1] == 'garage-temp') {
         $url = 'http://192.168.3.147/json?tasknr=4';
         $pagina = file_get_contents($url);
         $json_output = json_decode($pagina, true);
         $outstr = $json_output['Temperature'];
         $outstr = "22($outstr*°C)";   


Con un sensore DHT22 collegato al sonoff con firmware ESPEASY, le righe da aggiungere a reqsdm per estrarre l'umidità in formato MeterN:

Codice: Seleziona tutto

   } elseif ($argv[1] == 'garage-umi') {
         $url = 'http://192.168.3.147/json?tasknr=4';
         $pagina = file_get_contents($url);
         $json_output = json_decode($pagina, true);
         $outstr = $json_output['Humidity'];
         $outstr = "23($outstr*%)";   


Ovviamente il tasknr va cambiato in funzione del vostro numero di task che avete configurato in espeasy, oltre a cambiare l'IP del sonoff (192.168.3.147) ed il numero di meter che volete utilizzare in MeterN(22 - 23)


salve,
con le nuove build del firmware espeasy l'output JSON è cambiato


http://192.168.1.43/json?tasknr=1

Codice: Seleziona tutto

{
"TaskValues": [
{"ValueNumber":1,
"Name":"Temperature",
"NrDecimals":2,
"Value":26.80
},
{"ValueNumber":2,
"Name":"Humidity",
"NrDecimals":2,
"Value":59.80
}],
"TTL":5000,
"DataAcquisition": [
{"Controller":1,
"IDX":0,
"Enabled":"false"
},
{"Controller":2,
"IDX":0,
"Enabled":"false"
},
{"Controller":3,
"IDX":0,
"Enabled":"false"
}],
"TaskInterval":5,
"Type":"Environment - DHT11/12/22  SONOFF2301/7021",
"TaskName":"tem",
"TaskDeviceNumber":5,
"TaskEnabled":"true",
"TaskNumber":1
}


...come va cambiato reqsdm per estrarre la temperatura e umidità in formato MeterN

grazie

megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: letture sensore dht22 su esp che saltano

Messaggioda megamarco83 » 13/07/2021, 23:48

io farei così:

Codice: Seleziona tutto

      } elseif ($argv[1] == 'esp_dht22_temp_primo_piano_NEW') { //DHT22 su ESP NUOVE versioni espeasy
         $url = 'http://192.168.0.198/json?tasknr=3';
         $pagina = file_get_contents($url);
         $json_output = json_decode($pagina, true);
         $val    = $json_output['TaskValues'][0]['Value'];
         $outstr = ("18($val*°C)\n");
       } elseif ($argv[1] == 'esp_dht22_umid_primo_piano_NEW') {
         $url = 'http://192.168.0.198/json?tasknr=3';
         $pagina = file_get_contents($url);
         $json_output = json_decode($pagina, true);
         $val    = $json_output['TaskValues'][1]['Value'];
         $outstr = ("19($val*%)\n");


ho fatto una prova e mi sembra funzionare.
ovviamente cambia IP del tuo device, il numero di task (3 nel mio caso) ed il numero del sensore di metern (18 e 19) nel mio caso)
ciao!

novembre62
Messaggi: 31
Iscritto il: 19/04/2018, 16:56

Re: letture sensore dht22 su esp che saltano

Messaggioda novembre62 » 20/07/2021, 13:20

Ho provato....funziona perfettamente.
Non legge la seconda cifra decimale, ma per le misure in questione va benissimo così.
Grazie

megamarco83
Messaggi: 247
Iscritto il: 22/08/2016, 14:13

Re: letture sensore dht22 su esp che saltano

Messaggioda megamarco83 » 20/07/2021, 13:39

Strano, deve leggerla.. Non c'è motivo per cui non li faccia... In espeasy hai impostato i decimali a una o due cifre? Non vorrei avessi lasciato zero...

novembre62
Messaggi: 31
Iscritto il: 19/04/2018, 16:56

Re: letture sensore dht22 su esp che saltano

Messaggioda novembre62 » 20/07/2021, 20:04

Certo in espeasy sono impostate due cifre...ma anche l'output JSON mi da due cifre decimali


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 32 ospiti