Ga naar inhoud


csv file uitlezen lukt niet in HA


Ga naar oplossing Opgelost door Con,

Aanbevolen berichten

Geplaatst: (aangepast)

Sinds een aantal dagen ligt de Growatt-server er weer uit. Althans

Growatt stuurt geen gegevens meer terug dus de integratie hiervan

in HA is (tijdelijk) voorbij.

Voorheen (in Domoticz) las ik de Growatt zelf uit via de RS485

uitgang met een Python script.

Op mijn NUC heb ik HA ooit geïnstalleerd. In de directory

home/growat staat het pythonscript welke iedere minuut (kan

korter) mijn omvormer uitleest en de gegevens plaatst in een

csv file.

Als ik internet lees is het mogelijk om de laatste regel in te lezen

in HA, te splitten en in sensors te stoppen.

Mijn leven bestaat uit veel tut's lezen, trail and error maar dit keer

kom ik daar niet mee weg.

Wie kan mij op weg helpen.

Een fragment van de csv file staat hieronder;

31.12.2022 13:30,101,400,9428
31.12.2022 13:31,105,400,9428
31.12.2022 13:32,108,400,9428
31.12.2022 13:33,101,400,9428
31.12.2022 13:34,92,400,9428

 

Nog even het stukje script wat ik nu heb;

  allowlist_external_dirs:
    - "/usr/share/"
    - "//ha@192.168.2.130/home/growat/"
  whitelist_external_dirs:
     - //ha@192.168.2.130/home/growat/


  sensor:
    - platform: file
      name: growat
      file_path: /usr/share/log.CSV
      value_template: >
        {{ value.split(',')[2] }}
      unit_of_measurement: "W"

 

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.


Geplaatst:
20 uren geleden, Con zei:
{{ value.split(',')[2] }}

[2] staat voor maxsplit toch je hebt echter 4 values in een regel van de cvs

en nu is nog de vraag wat je wil schrijven printa printb printc printd in die sensor

Nothing Compares 2U

Jimmy Scott

 

Geplaatst:
4 uren geleden, Tonskidutch zei:

[2] staat voor maxsplit toch je hebt echter 4 values in een regel van de cvs

en nu is nog de vraag wat je wil schrijven printa printb printc printd in die sensor

 

{{ value.split(',')[2] }}
veranderd in;
{{ value.split(',')[4] }}

 

Maar bracht geen soelaas.

Echter heb ik het idee dat de file log.CSV niet wordt gelezen

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

  • Oplossing
Geplaatst:

Goed, het werkt allemaal na een dikke week.

 

Eerst nog maar even waarom dit belangrijk was.

In 2013 zonnepanelen laten plaatsen met een

Wifi-stick.

Toen viel veel de Growatt-server uit en kreeg je

geen info meer van de server. Ik heb destijds een

Python-script geschreven die direct (via modbus)

de omvormer uitlas. En dat ging goed in Domoticz.

Met een Cronjob wordt iedere minuut geupdate.

 

Nu ik al even met HA bezig ben ontstond het probleem

door veranderingen op de server de integratie van HA

niet meer werkte.

 

Dus heb ik mijn Python script weer leven ingeblazen

maar kreeg de waarde uit de csv niet uitgelezen en

nu blijkt om een aantal redenen.

Als eerste kun je alleen files benaderen in de directory;

/usr/share/hassio/share. Mijn csv file stond in /home/.

 

Als tweede was het configureren van Yaml echt tobben,

het stukje script maakte sowieso geen entity aan dus 

kun je ook niet uitlezen.

 

Bleek dat mijn "allowlist_external_dirs:" niet goed was

geconfigureerd. Uiteindelijk moe(s)t het als volgt zijn;

homeassistant:
  allowlist_external_dirs:
    - /share

Blijkbaar was "/share" voldoende, sterker nog hetvolgende

ging niet;

homeassistant:
  allowlist_external_dirs:
    - /usr/share/hassio/share

 

Toen werd er een entity aangemaakt. de volgende stukjes

script haalt de momentane en uurlijkse waarden binnen;

  - platform: file
    name: csvfile
    file_path: '/share/log.csv'
    value_template: >
      {{ value.split(",")[1] }}

  - platform: file
    name: csvuur
    file_path: '/share/log.csv'
    value_template: >
      {{ value.split(",")[2] }}

 

Met een template heb ik dan 4 parameters;

  • Afname net
  • Growatt levering
  • Levering net
  • Gebruik

Hetgeen resulteert in het volgende fragment;

image.png.7cf4348e7153f9ad1e49ebbbb1bc4e5e.png

 

En alles wordt iedere minuut ververst, Growatt gaf per

10 minuten een update hetgeen resulteerde in een

negatief gebruik wanneer de zon aantrok, heel vervelend.

 

Kortom mission completed.

  • Like 1

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

PC: Intel Nuc i7 met W11. Laptop Thinkpad met W11.

Asus Gigabyte Home Assistant, 20 Shelly's en 2 ESP-tjes en Zigbee.

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...