import dati 123solar e metern in domoticz [GUIDA]

Configurazione ed uso di DOMOTICZ, versatile software free per la gestione domotica.
miki8989
Messaggi: 298
Iscritto il: 22/01/2016, 6:39

import dati 123solar e metern in domoticz [GUIDA]

Messaggioda miki8989 » 12/09/2016, 18:48

in versione alpha
grazie a gianfranco...

ciao
Allegati
import domoticz.zip
(35.16 KiB) Scaricato 315 volte


s_p
Messaggi: 166
Iscritto il: 06/04/2017, 20:49

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda s_p » 13/11/2017, 15:27

siccome mi sta vendendo la curiosità di domoticz, questa procedura alfa è rimasta tale ed è funzionante o è stata superata/aggioranta?

miki8989
Messaggi: 298
Iscritto il: 22/01/2016, 6:39

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda miki8989 » 14/11/2017, 17:13

si sto testando i nuovi script...

a breve sul wiki...

ciao

s_p
Messaggi: 166
Iscritto il: 06/04/2017, 20:49

Re: RE: Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda s_p » 14/11/2017, 17:49

miki8989 ha scritto:si sto testando i nuovi script...

a breve sul wiki...

ciao
Grazie miki, sai se esiste una guida in stile solarjessie? Sul wiki c'è l'installazione, ma una configurazione do devices o hardware vario non c'è. Ho capito a cosa serve domoticz, ma come si usa?
Presumo che la risposta non sia semplice data le molteplici possibilità del software...

Inviato dal mio A0001 utilizzando Tapatalk

s_p
Messaggi: 166
Iscritto il: 06/04/2017, 20:49

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda s_p » 22/12/2017, 17:16

miki8989 ha scritto:si sto testando i nuovi script...

a breve sul wiki...

ciao



miki, li hai poi provati i nuovi script?

ho provato la tua guida per importare i dati metern in domoticz, ma alcuni contatori vanno e altri no.

mi pare di aver modificato tutto correttamente

s_p
Messaggi: 166
Iscritto il: 06/04/2017, 20:49

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda s_p » 22/12/2017, 20:30

ho fatto dei progressi (?)

spiego cosa ho fatto

produzione1.txt

Codice: Seleziona tutto

1(36113795*Wh)


consumi2.txt

Codice: Seleziona tutto

2(3744091*Wh)


metern2.txt

Codice: Seleziona tutto

2(1180.60*W)
2(3744171*Wh)
2_1(234.30*V)
2_2(5.11*A)
2_3(50.00*Hz)
2_4(1.00*F)


metern6.txt (una pompa di calore)

Codice: Seleziona tutto

6(119.70*W)
6(1009058*Wh)
6_1(233.90*V)
6_2(0.47*A)
6_3(50.00*Hz)
6_4(1.00*F)


domoticz.sh

Codice: Seleziona tutto

#!/bin/sh


V=`cat /run/shm/metern2.txt | egrep "^2_1\(" | grep "*V)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
A=`cat /run/shm/metern2.txt | egrep "^2_2\(" | grep "*A)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
W=`cat /run/shm/metern2.txt | egrep "^2(" | grep "*W)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
P=`cat /run/shm/produzione1.txt | egrep "^1\(" | grep "*Wh)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
C=`cat /run/shm/consumi2.txt | egrep "^2(" | grep "*Wh)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
APdC=`cat /run/shm/metern6.txt | egrep "^6_2\(" | grep "*A)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`
WPdC=`cat /run/shm/metern6.txt | egrep "^6\(" | grep "*W)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'`

curl -s "http://localhost:8080/json.htm?type=command&param=udevice&idx=1&nvalue=0&svalue=$V"
curl -s "http://localhost:8080/json.htm?type=command&param=udevice&idx=2&nvalue=0&svalue=$A"
curl -s "http://localhost:8080/json.htm?type=command&param=udevice&idx=3&nvalue=0&svalue=$W"
curl -s "http://localhost:8080/json.htm?type=command&param=udevice&idx=4&nvalue=0&svalue=$P"
curl -s "http://localhost:8080/json.htm?type=command&param=udevice&idx=5&nvalue=0&svalue=$C"
curl -s "http://localhost:8080/json.htm?type=command&param=udevice&idx=6&nvalue=0&svalue=$APdC"


questo è il risultato però incompleto

Immagine

cercando in giro ho trovato anche l'uso di questi comandi, che peò non so cosa diano come risultato

Codice: Seleziona tutto

sudo poolerconsumi 2 power grep "^1\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'
sudo poolerconsumi 2 energy grep "^1\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'
sudo poolerproduzione 2 power grep "^1\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'
sudo poolerproduzione 2 energy grep "^1\(.*W\)" | egrep -o '[0-9]*(\.)?[0-9]*\*' | egrep -o '[0-9]*(\.)?[0-9]*'

rinoronie
Messaggi: 150
Iscritto il: 08/03/2018, 0:27

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda rinoronie » 24/03/2018, 1:01

miki8989 ha scritto:si sto testando i nuovi script...

a breve sul wiki...

ciao


Scusate, sono poi stati aggiunti sul wiki i nuovi script?
in demoticz come bisogna configurare i device? credo uno per ogni metern...
Sarei interessato al progetto...
grazie

Albertol
Messaggi: 19
Iscritto il: 19/02/2018, 17:00

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda Albertol » 11/05/2018, 14:09

Ciao a tutti,
da un po di tempo sto sviluppando l'utilizzo di domoticz a casa e ci sto gestendo parecchie cose (VMC, Umidità bagni, Scalda salviette, Sensori allagamento, TV, Raffreddamento quadro lan, ecc.) con gran soddisfazione!
Ora sto tentando di portare i dati dell'inverter rilevati con 123solar in domoticz, ma non ci sono ancora riuscito.

Sulla teoria penso di esserci, e questo è quanto ho capito:
- con aurora prelevo i dati dal.'inverter abb con il convertitore usb-485
- i dati vengono letti e interpretati da 123solar
--------- e fin qui tutto perfetto ---------
--------- ora vengono i dubbi ---------
- 123solar scrive il log dei dati in un file .txt
- in Domoticz si creano i vari dispositivi virtuali (si avranno i vari idx)
- si configura uno script che legge il file .txt ed invia i dati a Domoticz (opportunamente indirizzati ai corretti idx), come se arrivassero da un qualsiasi dispositivo di rete (ad esempio un Sonoff)
- in Domoticz i dispositivi virtuali visualizzeranno i valori.

Quello che non ho davvero capito è quale sia il file .txt dove 123solar salva il log dei dati???

Per lo srcipt, leggendo i precedent post, ho capito come vada configurato per passare i dati che voglio.

Mi sento perso in un bicchiere d'acqua! HELP!!!

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

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda Flane » 11/05/2018, 15:14

Nella cartella /dev/shm sia 123Solar che Metern salvano in live tutti i valori letti in alcuni file temporanei:

Per 123Solar:
123s_LIVEMEMORY.json

Per Metern:
mN_ILIVEMEMORY.json per gli indicatori (non loggati)
mN_LIVEMEMORY.json per i misuratori (loggati)

Gli script di importazione fatti sopra per Metern non utilizzano questi file ma le stesse comapps che utilizza Metern per leggere i vari dati.

Per 123Solar invece a mio parere conviene passare per il file 123s_LIVEMEMORY.json.
Questo file è in formato JSON e pertanto i dati possono eventualmente essere facilmente estratti con json_decode come ho ad esempio indicato qui
viewtopic.php?f=20&t=2016&hilit=reqsdm+json#p4902
anche se in questo caso si trattava di sensori wireless fatti con ESP8266 e firmware ESPeasy ed il valore era da importare in MeterN.

Per estrarre da 123Solar, il tutto potrebbe essere adattato in questo modo (da verificare):

Codice: Seleziona tutto

$url = 'http://localhost/dev/shm/123s_LIVEMEMORY.json';
$pagina = file_get_contents($url);
$json_output = json_decode($pagina, true);
$pot_ist = $json_output['G1P1'];
$pot_tot = $json_output['KWHT1'];
.......
.......

Il parametro di json_output dovrà essere sostituito con quello che si vuole estrarre dal file json o poi basterà inviare la lettura estratta a Domoticz con i comandi visti sopra in questa discussione.


Comunque 123Solar salva i dati in modo permanente in:
- le letture ogni cinque minuti in un file csv giornaliero nella cartella /var/www/123solar/data/int1/csv
- il totale di produzione giornaliera nel file /var/www/123solar/data/int1/production/energy2018.csv

miki8989
Messaggi: 298
Iscritto il: 22/01/2016, 6:39

Re: import dati 123solar e metern in domoticz [GUIDA]

Messaggioda miki8989 » 11/05/2018, 21:25

questo e lo script che uso io...

Codice: Seleziona tutto

#!/usr/bin/php
<?php
// LIVE INVERTER
// Live (/dev/shm/123s_LIVEMEMORY.json)
//
// EFF1      efficenza   I1
// INVT1   temp. inv   I2
// FRQ1      frequenza   I3
// BOOT1   temp. boost   I4
// I1V1      tensione str.1   I5
// I1A1      corrente str.1   I6
// I1P1      potenza str.1   I7
// I2V1      tensione str.1   I8
// I2A1      corrente str.1   I9
// I2P1      potenza str.1   I10
// [msgq1]    
// [AWt1]    
// [AWriso1]    Riso      I11
// [AWileak1]   iLeak      I12
// [peakotd1]   pk_gg      I13
// [peakoat1]   pk_tot      I14
//

// IMPOSTAZIONI LETTURA JSON
$url_inv = '/dev/shm/123s_LIVEMEMORY.json';
$json_inv = json_decode((file_get_contents($url_inv)), true);

// LETTURA DATI
$I1 = $json_inv['EFF1'];
$I2 = $json_inv['INVT1'];
$I3 = $json_inv['FRQ1'];
// $I4 = $json_inv['BOOT1'];
$I5 = $json_inv['I1V1'];
$I6 = $json_inv['I1A1'];
$I7 = $json_inv['I1P1'];
$I8 = $json_inv['I2V1'];
$I9 = $json_inv['I2A1'];
$I10 = $json_inv['I2P1'];

// IMPOSTAZIONI LETTURA JSON
$url_inv = '/dev/shm/123s_MEMORY.json';
$json_inv = json_decode((file_get_contents($url_inv)), true);

// LETTURA DATI
$I11 = $json_inv['AWriso1'];
$I12 = $json_inv['AWileak1'];
$I13 = $json_inv['peakotd1'];
$I14 = $json_inv['peakoat1'];

// ARROTONDA A 2 CIFRE DECIMALI
$I1 = number_format($I1, 2);      // con 1 arrotonda a 1 cifra decimale
$I2 = number_format($I2, 1);
$I3 = number_format($I3, 2);
$I4 = number_format($I4, 1);
$IV = number_format (($I5+$I8), 2);
$IA = number_format (($I6+$I9), 2);
$IP = ($I7+$I10);

// INVIO DATI A DOMOTICZ
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=70&nvalue=0&svalue=$I1"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=71&nvalue=0&svalue=$I2"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=72&nvalue=0&svalue=$I3"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=73&nvalue=0&svalue=$IV"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=65&nvalue=0&svalue=$IA"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=66&nvalue=0&svalue=$IP"));
//
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=80&nvalue=0&svalue=$I11"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=81&nvalue=0&svalue=$I12"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=82&nvalue=0&svalue=$I13"));
curl_exec(curl_init("http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=83&nvalue=0&svalue=$I14"));
?>


logicamente va personalizzato con i valori e id voluti ed inserito in crontab per lanciarlo ogni x minuti

ciao


Torna a “Domoticz”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite