Werte per Automation in eine Tabelle (MariaDB) oder in ein File (Text oder csv) schreiben

Welche Möglichkeiten gibt es?

Werte per Automation (YAML) in eine Tabelle (MariaDB) oder in ein File (Text oder csv) schreiben.

So hab’s selber rausgefunden .
Habe ein Nodify für die Erstellung und schreiben in eine .csv
Und eine Automation dazu erstellt.

Der Code/die Vorgehensweise dazu wäre für nachfolgende User sicherlich interessant.

2 „Gefällt mir“
notify:
  - platform: file
    name: Zählerstände_Monat
    filename: /config/www/csv_log/Zaehler.csv
    timestamp: false

#  Automation
alias: Zählerstände_Monat
description: ""
trigger:
  - platform: time
    at: "00:02:00"
condition:
  - condition: template
    value_template: "{{ now().day == 1 }}"
action:
  - service: notify.zahlerstande_monat
    data:
      message: >
        {{now().strftime('%d.%m.%Y')}} ;
        {{states('sensor.stromzahler_sml_total_in',)}} ; kWh ;
        {{states('sensor.gaszahler_m3',)}} ; m3 ;
        {{states('sensor.wasserzaehler_value',)}} ; m3
mode: single

Ergebniss:

image

1 „Gefällt mir“

Hi, sehr interessantes Thema für mich. Ich bekomme es aber nicht hin. Habe dies hier in die configuration.yaml geschrieben.

notify:
  - platform: file
    name: Zählerstände_Jahr
    filename: /config/www/strom_log/zaehler.csv
    timestamp: false     

aber service: notify.zahlerstande_jahr existiert nicht. (nach Neustart..etc) Was mache ich falsch?
Danke!

Bei name: in der nodify hast du ä und unten ohne mach mal alles ohne umlaute und gleicher Benennung.

Pfad muss existieren!

Gruss

Ich greife das noch einmal auf.

Ich habe in der configuration.yaml folgende erweiter:

notify:
  - platform: file
    name: Zaehlerstaende
    filename: /config/www/csv_log/Zaehler.csv
    timestamp: false

In der Automation versuche ich folgendes zu machen was aber nicht geht zu speichern.

alias: Zaehlerstaende
description: ""
mode: single
triggers:
  - at: "00:00:00"
    trigger: time
conditions: null
actions:
  - data:
      message: >
        {{now().strftime('%d.%m.%Y')}} ;
        {{states('sensor.fritz_smart_energy_250_2_energie',)}} ; kWh ;
        {{states('sensor.energy250_energie',)}} ; kwh 
    action: notify.Zaehlerstaende

Ziel ist es das täglich die Werte der beiden Sensoren gespeichrt werden in der Datei Zaehlerstaende.

Wo ist der Bock begraben?

Danke im Voraus und mfg
Heinz-Jörg Hefer

Ich nutze für so was aus HACS die Erweiterung “pyscript”. Über entsprechende python scripte kann man dann Werte in eine MariaDB schreiben und dabei auch Variablen aus Homeassistant nutzen.

Würde schon gerne bei einer csv Datei bleiben

Folgende Meldung kommt:

Hast du richtigen Neustart gemacht ?

Änder mal die Großschreibung von Zählerstände bei notifiy auf klein

Neustart durchgeführt (System neu starten) und nun auch sowohl in der configuration.yaml als ich in der automation alles klein geschrieben allerdings ohne erfolg. Fehler bleibt bestehen

Was steht in den Protokollen ?

Logger: homeassistant.components.automation.zaehlerstaende
Quelle: helpers/script.py:2098
Integration: Automation (Dokumentation, Probleme)
Erstmals aufgetreten: 13:08:48 (1 Vorkommnis)
Zuletzt protokolliert: 13:08:48

Zaehlerstaende: Error executing script. Service not found for call_service at pos 1: Action notify.zaehlerstaende not found

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Okay dann wurde das nicht angelegt.

Der File Pfad ist vorhanden ?

Falls ja , hängt das dann wohl mit einer Änderung in HA zusammen .

Scheinbar wurde die Yaml Config für Notifiy entfernt.

Ich teste das gerade mal auf meinem Testsystem

Per Windows Rechner kann ich den Ordner \\homeassistant\config aufrufen.

Habe auch

notify:
  - platform: file
    name: Zaehlerstaende
    filename: /config/www/csv_log/Zaehler.csv
    timestamp: false

in

notify:
  - platform: file
    name: Zaehlerstaende
    filename: /config/Zaehler.csv
    timestamp: false

geändert

Ok vorgehen ist nun komplett anders :

Du musst die Integration File installieren

Die fragt was du anlegen willst dort wählst du Einrichten eines Benachrichtigungsdienstes

Wenn du hier Timestamp wählst wird in der Textdatei ein zeitstempel dem Text vorrangestellt.

Dann in deiner Automation als Aktion Benachrichtigungen: Benachrichtigungsmeldung senden

Als Ziel wählst du die in File angelegte Entität

In Meldung kannst du dann deine Daten eingeben

Das wars

Aber

notify:
  - platform: file
    name: zaehlerstaende
    filename: /config/Zaehler.csv
    timestamp: false

das muss schon noch in der configuration.yaml bleiben oder?

Was muss dann in der Automation stehen?

Kann da noch der yaml bleiben wie oben geschrieben oder muss hier was geändert werden?

Nein in. der config steht nichts mehr, dein Zaehlerstande wird jetzt über die file Integration angelegt.

Hast du das gemacht ?

Du kannst das noch benennen in dem du auf die Entität klickst und der dann einen Namen gibst

Hier z.B. Test

In der Automation wie oben beschrieben vorgehen :

dann auf yaml umschalten über das 3 Punkte menü

Da kannst du dann deinen Text füllen

- data:
      message: >
        {{now().strftime('%d.%m.%Y')}} ;
        {{states('sensor.fritz_smart_energy_250_2_energie',)}} ; kWh ;
        {{states('sensor.energy250_energie',)}} ; kwh 

Vielen Dank schon mal bis hierher.
Jetzt kommt die Meldung im Protokoll:

Logger: homeassistant.components.automation.zaehlerstaende
Quelle: helpers/script.py:2098
Integration: Automation (Dokumentation, Probleme)
Erstmals aufgetreten: 14:49:51 (1 Vorkommnis)
Zuletzt protokolliert: 14:49:51

Zaehlerstaende: Error executing script. Error for call_service at pos 1: Write access to www/homeassistant/csv/zaehlerstaende.csv failed: FileNotFoundError(2, 'No such file or directory')

Im Explorer in Windows habe ich diesen Pfad per SMB:

\\homeassistant\config\csv\zaehlerstaende.csv

wie bekomme ich den richtigen Pfad/Ordner für die Datei hin?

Und so sieht die automations yaml aus:

alias: Zaehlerstaende
description: ""
triggers:
  - at: "00:00:00"
    trigger: time
conditions: null
actions:
  - action: notify.send_message
    metadata: {}
    data:
      message: >
        {{now().strftime('%d.%m.%Y')}} ;
        {{states('sensor.fritz_smart_energy_250_2_energie',)}} ; kWh ;
        {{states('sensor.energy250_energie',)}} ; kwh 
    target:
      entity_id: notify.file
mode: single

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Dann hast du den Pfad nicht angelegt.

Geh mal in den Fileditor und schau dir da an was im www verzeichniss drin steht und mach nen screen davon