Tasmota+sensori+metern

Progetti domotici con il Raspberry .... con o senza il supporto di MeterN e 123Solar
turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

Tasmota+sensori+metern

Messaggioda turbuntux » 21/04/2019, 11:53

Buongiorno,
mi sto approcciando alla domotica di casa con i vari shelly 1 e 2 e sonoff(nelle sue diverse versioni/produttori), e sto scoprendo un mondo a me sconosciuto.

Ho scoperto per esempio che gli shelly 2.5, hanno le stesse funzioni del SDM** e rilevano gli stessi dati anche se non so se con la stessa precisione/qualità.

La mia domanda è relativa all'integrazione di tasmota e metern, per il monitoraggio esempio delle temperature/umidità della zona notte.
Con il formware tasmota, riesco a far funzionare i vari shelly/sonoff con la lettura di sensori dht**/movimento/relè nel sistema Home Assistant, e tutto funziona regolarmente.

essendoci la possibilità di estrarre i dati json dal tasmota, pensavo di farli inserire nel metern in modo da avere uno storico/monitoraggio. Il problema di base è la mia totale ignoranza di programmazione....(mi limito al copia incolla :( :( )
... qualcuno ha per caso fatto qualcosa del genere o sa come fare?
grazie
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.


turbuntux
Messaggi: 34
Iscritto il: 04/01/2018, 19:33

Re: Tasmota+sensori+metern

Messaggioda turbuntux » 20/10/2019, 19:19

Piccolo passo avanti, essendo completamente a 0 di programmazione, sono costretto a perdere la vista sui vari forum e sono riuscito a trovare i comandi di come leggere i dati json del tasmota, sono riuscito a trovare questi comandi:
per leggere l'umidita dal sonoff -tasmota con IP (192.168.1.2)

Codice: Seleziona tutto

curl --silent http://192.168.1.2/cm?cmnd=Status%2010 | grep 'Humidity' | cut -d ':' -f8 | cut -d ',' -f1 | cut -d '}' -f1

e mi restituisce il valore di umidita con 2 decimali (es, 40.20)

per leggere la temperatura dal sonoff -tasmota

Codice: Seleziona tutto

curl --silent http://192.168.1.2/cm?cmnd=Status%2010 | grep 'Temperature' | cut -d ':' -f7 | cut -d ',' -f1

qui invece mi restituisce la temperatura, ma non so come mai a 3 decimali (Es. 20.412)

a questo punto come posso integrarlo in Metern?
grazie a tutti
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.

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

Re: Tasmota+sensori+metern

Messaggioda Flane » 21/10/2019, 17:29

La soluzione più semplice è di crearsi uno script in /var/www/comapps/reqtasmota.php

Codice: Seleziona tutto

#!/usr/bin/php
<?php
// This script will output a meterN compatible format for the main or live command
// You'll need to setup correct permission chmod +x
// then ln -s /var/www/comapps/reqtasmota.php /usr/local/bin/reqtasmota
// Request command with 'reqtasmota temp' or 'reqtasmota umi'

if (isset($_SERVER['REMOTE_ADDR'])) {
    die('Direct access not permitted');
}
if (!isset($argv[1])) {
   die("Abording: no valid argument given.\n");
      } elseif ($argv[1] == 'temp') {
         $temp = exec("curl --silent http://192.168.3.71/cm?cmnd=Status%2010 | grep 'Temperature' | cut -d ':' -f7 | cut -d ',' -f1");
         $outstr = "22($temp*°C)";
      } elseif ($argv[1] == 'umi') {
         $umi = exec("curl --silent http://192.168.3.71/cm?cmnd=Status%2010 | grep 'Humidity' | cut -d ':' -f8 | cut -d ',' -f1 | cut -d '}' -f1");
         $outstr = "22($umi*%)";
      // and so on ....
   } else {
    die("Usage: reqtasmota (temp|umi)\n");
   }
echo "$outstr";
?>

dove ovviamente l'IP del dispositivo tasmota (nel mio caso 192.168.3.71) e il numero di misuratore/indicatore di metern (nel mio caso 22) va modificato secondo le tue esigenze.

Poi dare i permessi in esecuzione al file e creare il symlink

Codice: Seleziona tutto

ln -s /var/www/comapps/reqtasmota.php /usr/local/bin/reqtasmota

A questo punto con

Codice: Seleziona tutto

reqtasmota temp

otterrai la temperatura
e con

Codice: Seleziona tutto

reqtasmota umi

otterrai l'umidità

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

Re: Tasmota+sensori+metern

Messaggioda Flane » 23/10/2019, 23:17

Ecco un'altra soluzione più "pulita" che utilizza i comandi JSON per estrarre i dati:

Codice: Seleziona tutto

#!/usr/bin/php
<?php
// This script will output a meterN compatible format for the main or live command
// You'll need to setup correct permission chmod +x
// then ln -s /var/www/comapps/reqtasmota.php /usr/local/bin/reqtasmota
// Request command with 'reqtasmota temp' or 'reqtasmota umi'

if (isset($_SERVER['REMOTE_ADDR'])) {
    die('Direct access not permitted');
}
if (!isset($argv[1])) {
   die("Abording: no valid argument given.\n");
      } elseif ($argv[1] == 'temp') {
   $url = 'http://192.168.3.71/cm?cmnd=Status%2010';
   $pagina = file_get_contents($url);
   $json_output = json_decode($pagina, true);
   $val = $json_output['StatusSNS']['AM2301']['Temperature'];
   $outstr = ("22($val*°C)\n");
      } elseif ($argv[1] == 'umi') {
   $url = 'http://192.168.3.71/cm?cmnd=Status%2010';
   $pagina = file_get_contents($url);
   $json_output = json_decode($pagina, true);
   $val = $json_output['StatusSNS']['AM2301']['Humidity'];
   $outstr = ("23($val*%)\n");
      // and so on ....
   } else {
    die("Usage: reqtasmota (temp|umi)\n");
   }
echo "$outstr";
?>


Nel caso in cui la strutura del file Json sia diversa basta cambiare la sequenza dei campi nella riga:

Codice: Seleziona tutto

$val = $json_output['StatusSNS']['AM2301']['Temperature']

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

Re: Tasmota+sensori+metern

Messaggioda novembre62 » 05/11/2022, 13:45

salve, ho utilizzato lo script subito sopra per estrarre i dati di un sonoff Pow R3 con firmware Tasmota.
Ho seguito i passi indicati e con il comando "reqtasmota power" ( l'ho chiamato cosi) ottengo il valore letto dal sonoff ( al momento sto usando il solo dato potenza) del sonoff).
Ora per inserire il comando sia come misuratore che come indicatore, nella casella relativa si apre un menu a tendina con altri comandi usati ma non quello che ho indicato....ne tanto meno vi è la possibilità di scriverci dentro.
Uso la versione Metern 1.2.4.....che io ricordi prima era possibile digitarlo manualmente.
Sbaglio io qualcosa..o è cambiata la modalità.
grazie a chi mi può aiutare

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

Re: Tasmota+sensori+metern

Messaggioda novembre62 » 05/11/2022, 16:32

risolto leggendo https://github.com/jeanmarc77/meterN/wiki/2)-Help

Come consentire l'utilizzo dell'app di comunicazione in mN?
Modifica config/allowed_comapps.php, aggiungi una voce nell'array $ALLWDCMD. (ad es. $ALLWDCMD[0] = 'my_comapp';)

grazie comunque

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

Re: Tasmota+sensori+metern

Messaggioda Flane » 07/11/2022, 15:53

Grazie della segnalazione.
Effettivamente è una novità introdotta da JM nell'ultima versione per via di una vulnerabilità che era stata segnalata.


Torna a “Domotica”

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti