MeterN e HomeHassistant

Discussioni relative al software di monitoraggio energetico METERN
SuxMario78
Messaggi: 8
Iscritto il: 22/02/2016, 13:50

MeterN e HomeHassistant

Messaggioda SuxMario78 » 29/12/2019, 15:23

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?


wifi75
Messaggi: 217
Iscritto il: 29/07/2019, 10:24

Re: MeterN e HomeHassistant

Messaggioda wifi75 » 30/12/2019, 10:28

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...

metus
Messaggi: 121
Iscritto il: 10/05/2019, 1:04

Re: MeterN e HomeHassistant

Messaggioda metus » 02/01/2020, 11:24

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.
Immagine
Immagino sappiate che con home assistant potete creare automazioni niente male...
Spero di esservi stato utile

wifi75
Messaggi: 217
Iscritto il: 29/07/2019, 10:24

Re: MeterN e HomeHassistant

Messaggioda wifi75 » 02/01/2020, 12:19

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.

wifi75
Messaggi: 217
Iscritto il: 29/07/2019, 10:24

Re: MeterN e HomeHassistant

Messaggioda wifi75 » 07/01/2020, 15:48

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.
Immagine
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:
a.JPG


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....

metus
Messaggi: 121
Iscritto il: 10/05/2019, 1:04

Re: MeterN e HomeHassistant

Messaggioda metus » 07/01/2020, 16:38

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

wifi75
Messaggi: 217
Iscritto il: 29/07/2019, 10:24

Re: MeterN e HomeHassistant

Messaggioda wifi75 » 07/01/2020, 18:10

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:
Cattura.PNG

metus
Messaggi: 121
Iscritto il: 10/05/2019, 1:04

Re: MeterN e HomeHassistant

Messaggioda metus » 07/01/2020, 19:24

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:

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

wifi75
Messaggi: 217
Iscritto il: 29/07/2019, 10:24

Re: MeterN e HomeHassistant

Messaggioda wifi75 » 08/01/2020, 9:28

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:

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:
errore.JPG


le ho provate tutte...

metus
Messaggi: 121
Iscritto il: 10/05/2019, 1:04

Re: MeterN e HomeHassistant

Messaggioda metus » 08/01/2020, 9:36

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?


Torna a “MeterN”

Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti