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
Tasmota+sensori+metern
Tasmota+sensori+metern
Impianto 5kw - inverter ingecom 4.6TL 20 pannelli 250w 2 stringhe - orientamento SUD
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.
Re: Tasmota+sensori+metern
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)
e mi restituisce il valore di umidita con 2 decimali (es, 40.20)
per leggere la temperatura dal sonoff -tasmota
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
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.
Raspberry per il monitoraggio consumi produzione temperature varie con ds18b20.
Re: Tasmota+sensori+metern
La soluzione più semplice è di crearsi uno script in /var/www/comapps/reqtasmota.php
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
A questo punto con
otterrai la temperatura
e con
otterrai l'umidità
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à
Re: Tasmota+sensori+metern
Ecco un'altra soluzione più "pulita" che utilizza i comandi JSON per estrarre i dati:
Nel caso in cui la strutura del file Json sia diversa basta cambiare la sequenza dei campi nella riga:
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']
-
- Messaggi: 31
- Iscritto il: 19/04/2018, 16:56
Re: Tasmota+sensori+metern
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
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
-
- Messaggi: 31
- Iscritto il: 19/04/2018, 16:56
Re: Tasmota+sensori+metern
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
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
Re: Tasmota+sensori+metern
Grazie della segnalazione.
Effettivamente è una novità introdotta da JM nell'ultima versione per via di una vulnerabilità che era stata segnalata.
Effettivamente è una novità introdotta da JM nell'ultima versione per via di una vulnerabilità che era stata segnalata.
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti