MeterN e HomeHassistant
-
- Messaggi: 8
- Iscritto il: 22/02/2016, 13:50
MeterN e HomeHassistant
Buongiorno a tutti,
stavo cercando di capire come integrare in Home Hassistant (Hass.io) i dati raccolti da metern.
Ci sono diverse integrazioni, anche con EMONCMS, ma volevo sapere se qualcuno di voi ci aveva già messo la testa ad aveva creato qualcosa.
L'idea è di creare più Entità che dicano in Real Time quanto il nostro solare sta producendo e quanto stiamo prelevando, il tutto poi sarebbe comodo da implementare sull'interfaccia di Hassio, (come per esempio Home Panel) ed avere così un tablet in casa che oltre ad accendere e spegnere luci, o sensori, possa conoscere anche i dati energetici.
Qualcuno ha già provato? Ha entrambe le soluzioni?
stavo cercando di capire come integrare in Home Hassistant (Hass.io) i dati raccolti da metern.
Ci sono diverse integrazioni, anche con EMONCMS, ma volevo sapere se qualcuno di voi ci aveva già messo la testa ad aveva creato qualcosa.
L'idea è di creare più Entità che dicano in Real Time quanto il nostro solare sta producendo e quanto stiamo prelevando, il tutto poi sarebbe comodo da implementare sull'interfaccia di Hassio, (come per esempio Home Panel) ed avere così un tablet in casa che oltre ad accendere e spegnere luci, o sensori, possa conoscere anche i dati energetici.
Qualcuno ha già provato? Ha entrambe le soluzioni?
Re: MeterN e HomeHassistant
CIao anche io ci sto provando è secondo me una strada interessante sarebbe quella cell'uso della lettura tramite MQTT seguendo questa guida...
viewtopic.php?f=4&t=2039 utilizzando il monitor come lettura, io non ci sono ancora riuscito...
viewtopic.php?f=4&t=2039 utilizzando il monitor come lettura, io non ci sono ancora riuscito...
Re: MeterN e HomeHassistant
Io ho "integrato" sia 123solar che metern con home assistant. Ho usato la parola "integrato" tra virgolette molto grandi perchè ho solo creato dei sensori in home assistant che vanno a leggere i file di 123solar e metern in cui vengono riportate le cose che mi interessano.
Premetto che io ho sia home assistant che 123 solar che metern su un raspberry pi. Avendo rete trifase ho un modbus SDM630 collegato direttamente al raspberry, ma andando a leggere i file di metern e 123solar come raccogliete i dati è indifferente.
In primo luogo vi consiglio di studiare la struttura dei file con relativa formattazione e nomenclatura:
/dev/shm/123s_LIVEMEMORY.json
/dev/shm/mN_ILIVEMEMORY.json
Vi riporto il pezzo del file configuration.yaml di home assistant in cui definisco i sensori (considerate che ho 3 inverter e una rete elettrica con 3 fasi e per non appesantire il tutto ho fatto un aggiornamento dei dati ogni 5 secondi = scan_interval ):
LOGICAMENTE: il codice va modificato con i nomi che avete dato voi, per questo vi dicevo di studiarvi la struttura dei file
/dev/shm/123s_LIVEMEMORY.json
/dev/shm/mN_ILIVEMEMORY.json
INOLTRE con home assistant potete far fare i calcoli sottrazioni ecc ecc...
FONDAMENTALE sempre in home assistant permettere l'accesso di quest'ultimo al percorso in cui risiedono i file, quindi ho aggiunto sempre nel file configuration.yaml di home assistant:
Calcolate che sono un dilettante... però l'accrocchio funziona... (sicuramente NON è efficente ma perlomeno è efficacie)
Tralasciando l'impaginazione sotto trovate quello che per ora ho.
Immagino sappiate che con home assistant potete creare automazioni niente male...
Spero di esservi stato utile
Premetto che io ho sia home assistant che 123 solar che metern su un raspberry pi. Avendo rete trifase ho un modbus SDM630 collegato direttamente al raspberry, ma andando a leggere i file di metern e 123solar come raccogliete i dati è indifferente.
In primo luogo vi consiglio di studiare la struttura dei file con relativa formattazione e nomenclatura:
/dev/shm/123s_LIVEMEMORY.json
/dev/shm/mN_ILIVEMEMORY.json
Vi riporto il pezzo del file configuration.yaml di home assistant in cui definisco i sensori (considerate che ho 3 inverter e una rete elettrica con 3 fasi e per non appesantire il tutto ho fatto un aggiornamento dei dati ogni 5 secondi = scan_interval ):
Codice: Seleziona tutto
sensor:
- platform: file
file_path: /dev/shm/mN_LIVEMEMORY.json
name: ConsumiTotali
value_template: '{{ value_json["Consumi totali2"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/mN_ILIVEMEMORY.json
name: Consumi1fase
value_template: '{{ value_json["Cons.Fase14"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/mN_ILIVEMEMORY.json
name: Consumi2fase
value_template: '{{ value_json["Cons.Fase25"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/mN_ILIVEMEMORY.json
name: Consumi3fase
value_template: '{{ value_json["Cons.Fase36"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: ProduzioneTotale
value_template: '{{ value_json["G1P1"] | round(0) + value_json["G1P2"] | round(0) + value_json["G1P3"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: Inverter1
value_template: '{{ value_json["G1P1"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: Inverter2
value_template: '{{ value_json["G1P2"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: Inverter3
value_template: '{{ value_json["G1P3"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: template
sensors:
immissionioprelievi:
value_template: '{{ states.sensor.produzionetotale.state | float | round(0) - states.sensor.consumitotali.state | float | round(0) }}'
unit_of_measurement: 'W'
- platform: template
sensors:
immissioni:
value_template: '{% if states.sensor.consumitotali.state | float | round(0) - states.sensor.produzionetotale.state | float | round(0) > 0 %} {{0}} {% else %} {{ states.sensor.produzionetotale.state | float | round(0) - states.sensor.consumitotali.state | float | round(0)}} {% endif %}'
unit_of_measurement: 'W'
- platform: template
sensors:
prelievi:
value_template: '{% if states.sensor.consumitotali.state | float | round(0) - states.sensor.produzionetotale.state | float | round(0) < 0 %} {{0}} {% else %} {{ states.sensor.consumitotali.state | float | round(0) - states.sensor.produzionetotale.state | float | round(0) }} {% endif %}'
unit_of_measurement: 'W'
LOGICAMENTE: il codice va modificato con i nomi che avete dato voi, per questo vi dicevo di studiarvi la struttura dei file
/dev/shm/123s_LIVEMEMORY.json
/dev/shm/mN_ILIVEMEMORY.json
INOLTRE con home assistant potete far fare i calcoli sottrazioni ecc ecc...
FONDAMENTALE sempre in home assistant permettere l'accesso di quest'ultimo al percorso in cui risiedono i file, quindi ho aggiunto sempre nel file configuration.yaml di home assistant:
Codice: Seleziona tutto
homeassistant:
whitelist_external_dirs:
- /dev/shm
Calcolate che sono un dilettante... però l'accrocchio funziona... (sicuramente NON è efficente ma perlomeno è efficacie)
Tralasciando l'impaginazione sotto trovate quello che per ora ho.
Immagino sappiate che con home assistant potete creare automazioni niente male...
Spero di esservi stato utile
Re: MeterN e HomeHassistant
Sono in montagna, non non appena torno a casa ci provo anche io, quello che a me serve è la lettura istantanea della produzione e consumi.
Re: MeterN e HomeHassistant
metus ha scritto:Io ho "integrato" sia 123solar che metern con home assistant. Ho usato la parola "integrato" tra virgolette molto grandi perchè ho solo creato dei sensori in home assistant che vanno a leggere i file di 123solar e metern in cui vengono riportate le cose che mi interessano.
Premetto che io ho sia home assistant che 123 solar che metern su un raspberry pi. Avendo rete trifase ho un modbus SDM630 collegato direttamente al raspberry, ma andando a leggere i file di metern e 123solar come raccogliete i dati è indifferente.
In primo luogo vi consiglio di studiare la struttura dei file con relativa formattazione e nomenclatura:
/dev/shm/123s_LIVEMEMORY.json
/dev/shm/mN_ILIVEMEMORY.json
Vi riporto il pezzo del file configuration.yaml di home assistant in cui definisco i sensori (considerate che ho 3 inverter e una rete elettrica con 3 fasi e per non appesantire il tutto ho fatto un aggiornamento dei dati ogni 5 secondi = scan_interval ):Codice: Seleziona tutto
sensor:
- platform: file
file_path: /dev/shm/mN_LIVEMEMORY.json
name: ConsumiTotali
value_template: '{{ value_json["Consumi totali2"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/mN_ILIVEMEMORY.json
name: Consumi1fase
value_template: '{{ value_json["Cons.Fase14"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/mN_ILIVEMEMORY.json
name: Consumi2fase
value_template: '{{ value_json["Cons.Fase25"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/mN_ILIVEMEMORY.json
name: Consumi3fase
value_template: '{{ value_json["Cons.Fase36"] }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: ProduzioneTotale
value_template: '{{ value_json["G1P1"] | round(0) + value_json["G1P2"] | round(0) + value_json["G1P3"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: Inverter1
value_template: '{{ value_json["G1P1"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: Inverter2
value_template: '{{ value_json["G1P2"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: file
file_path: /dev/shm/123s_LIVEMEMORY.json
name: Inverter3
value_template: '{{ value_json["G1P3"] | round(0) }}'
unit_of_measurement: 'W'
scan_interval: 5
- platform: template
sensors:
immissionioprelievi:
value_template: '{{ states.sensor.produzionetotale.state | float | round(0) - states.sensor.consumitotali.state | float | round(0) }}'
unit_of_measurement: 'W'
- platform: template
sensors:
immissioni:
value_template: '{% if states.sensor.consumitotali.state | float | round(0) - states.sensor.produzionetotale.state | float | round(0) > 0 %} {{0}} {% else %} {{ states.sensor.produzionetotale.state | float | round(0) - states.sensor.consumitotali.state | float | round(0)}} {% endif %}'
unit_of_measurement: 'W'
- platform: template
sensors:
prelievi:
value_template: '{% if states.sensor.consumitotali.state | float | round(0) - states.sensor.produzionetotale.state | float | round(0) < 0 %} {{0}} {% else %} {{ states.sensor.consumitotali.state | float | round(0) - states.sensor.produzionetotale.state | float | round(0) }} {% endif %}'
unit_of_measurement: 'W'
LOGICAMENTE: il codice va modificato con i nomi che avete dato voi, per questo vi dicevo di studiarvi la struttura dei file
/dev/shm/123s_LIVEMEMORY.json
/dev/shm/mN_ILIVEMEMORY.json
INOLTRE con home assistant potete far fare i calcoli sottrazioni ecc ecc...
FONDAMENTALE sempre in home assistant permettere l'accesso di quest'ultimo al percorso in cui risiedono i file, quindi ho aggiunto sempre nel file configuration.yaml di home assistant:Codice: Seleziona tutto
homeassistant:
whitelist_external_dirs:
- /dev/shm
Calcolate che sono un dilettante... però l'accrocchio funziona... (sicuramente NON è efficente ma perlomeno è efficacie)
Tralasciando l'impaginazione sotto trovate quello che per ora ho.
Immagino sappiate che con home assistant potete creare automazioni niente male...
Spero di esservi stato utile
niente da fare non riesco a farlo andare alla verifica mi appare questo messaggio:
per fare dei test ho copiato direttamente il file mN_LIVEMEMORY.txt nella directory tmp che ovvimante è già configurata nel file di configurazione:
whitelist_external_dirs:
- /tmp
- /config
non so proprio che pesci prendere....
Re: MeterN e HomeHassistant
per fare dei test ho copiato direttamente il file mN_LIVEMEMORY.txt nella directory tmp che ovvimante è già configurata nel file di configurazione:
whitelist_external_dirs:
- /tmp
- /config
Hai dimenticato homeassistan: può essere?
Inoltre per capire se l'errore è causato da una non corretto permesso al percorso procederei così:
1) aggiungo nel file config di home assistant il percorso whitelist
Codice: Seleziona tutto
homeassistant:
whitelist_external_dirs:
- /tmp
2) Faccio verificare ad homeassistant che il file gli piaccia
3) In caso affermativo riavvio home assistant
4) Ora proverei ad aggiungere un sensore con un file locale nel percorso white listato
Fammi sapere se e dove ti blocchi
In bocca al lupo
Re: MeterN e HomeHassistant
io hassio su debian forse c'è qualcosa di diverso... non saprei francamente.bisognerebbe capire a quale cartella si riferisce /tmp
guarda dove debian installa hassio:
guarda dove debian installa hassio:
Re: MeterN e HomeHassistant
Facciamo le cose passo passo....
0) individua il percorso completo in cui c'è il file mN_LIVEMEMORY.json
1) Dopo aver creato una copia del file configuration.yaml scrivci dentro:
esempio:
2) Riavvia home assistant dopo aver controllato che il file configuration sia ok per home assistant
3) Una volta riavviato aggiungi sempre nel file
Modifica quanto sopra (value _template sostituendo ciò che c'è in mezzo alle virgolette) considerando che il mio file mN_LIVEMEMORY.json è composto come sotto:
4)Una volta fatto riverifica il file con home assistant e se da errori facci sapere
0) individua il percorso completo in cui c'è il file mN_LIVEMEMORY.json
1) Dopo aver creato una copia del file configuration.yaml scrivci dentro:
Codice: Seleziona tutto
homeassistant:
whitelist_external_dirs:
- /percorso completo del file
esempio:
Codice: Seleziona tutto
whitelist_external_dirs:
- /dev/shm
2) Riavvia home assistant dopo aver controllato che il file configuration sia ok per home assistant
3) Una volta riavviato aggiungi sempre nel file
Codice: Seleziona tutto
sensor:
- platform: file
file_path: PERCORSO DEL TUO FILE # ESEMPIO: /dev/shm/mN_LIVEMEMORY.json
name: ConsumiTotali
value_template: '{{ value_json["Consumi totali2"] }}'
unit_of_measurement: 'W'
scan_interval: 5
Modifica quanto sopra (value _template sostituendo ciò che c'è in mezzo alle virgolette) considerando che il mio file mN_LIVEMEMORY.json è composto come sotto:
Codice: Seleziona tutto
{"UTC":1578421302,"Produzione totale1":"0","Consumi totali2":"842","Prelievi3":"842","Immissioni4":"0","Autoconsumo5":"0","Prod Inv 16":"0","Prod Inv 27":"0","Prod Inv 38":"0","Prelievi F19":"0","Prelievi F210":"842","Prelievi F311":"0"}
4)Una volta fatto riverifica il file con home assistant e se da errori facci sapere
Re: MeterN e HomeHassistant
Dunque ho settato il percorso cosi:
whitelist_external_dirs:
- /tmp
- /config
- /dev/shm
nessun errore, poi ho riavviato il tutto.
poi ho copiato a mano nella folder /dev/shm il file
mN_LIVEMEMORY.json
in quel file la voce consumi a me si chiama Consumi2 allego il file cosi guardi anche tu:
poi ho aggiunto il sensore cosi:
dopo verifica e controllo mi restituisce il seguente errore:
le ho provate tutte...
whitelist_external_dirs:
- /tmp
- /config
- /dev/shm
nessun errore, poi ho riavviato il tutto.
poi ho copiato a mano nella folder /dev/shm il file
mN_LIVEMEMORY.json
in quel file la voce consumi a me si chiama Consumi2 allego il file cosi guardi anche tu:
Codice: Seleziona tutto
{"UTC":1578405553,"Produzione1":"171","Consumi2":"372","Prelievi3":"201","Immissioni4":"0","Autoconsumo5":"171","Prelievi in F16":"201","Prelievi in F27":"0","Prelievi in F38":"0","Prelievi in F239":"0"}
poi ho aggiunto il sensore cosi:
Codice: Seleziona tutto
sensor:
- platform: file
file_path: /dev/shm/mN_LIVEMEMORY.json
name: Consumi
value_template: '{{ value_json["Consumi2"] }}'
unit_of_measurement: 'W'
scan_interval: 5
dopo verifica e controllo mi restituisce il seguente errore:
le ho provate tutte...
Re: MeterN e HomeHassistant
Io riavvierei lo stesso home assistant anche con quell'errore. Tanto se non riparte rimetti il file configuration com'era e riparte tutto.... o hai giá provato?
Chi c’è in linea
Visitano il forum: Nessuno e 7 ospiti