Hallo zusammen,
wie kann man nach ein Ereignis mehrere Messwerte (Entitäten) mit Bezeichnung durch z.B.: ; getrennt in eine Datei speichern.
Wie würde der Aufbau hierfür aussehen?
Gruß WOD
Hallo zusammen,
wie kann man nach ein Ereignis mehrere Messwerte (Entitäten) mit Bezeichnung durch z.B.: ; getrennt in eine Datei speichern.
Wie würde der Aufbau hierfür aussehen?
Gruß WOD
Gruss
Hallo Wolfi1,
danke für deine Antwort.
Ist trotzdem für einen Anfänger ohne Zeilenumbruch und Leerzeichen schwer.
In der Configuration.yaml habe ich jetzt folgendes eingefügt:
notify:
platform: file
name: Zaehlerstaende
# filename: Zaehlerstaende.csv
filename: /config/www/csv_log/Zaehlerstaende.csv
timestamp: false
description: ""
trigger:
platform: time
at: "21:40:00"
# condition:
# - condition: template value_template: "{{ now().day == 1 }}"
action:
- service: notify.zaehlerstaende
data:
message: "{{now().strftime('%d.%m.%Y')}} ; {{states('sensor.pw11_feld1_zaehlerstand',)}} ; kWh"
Im Ordner www habe ich den Ordner csv_log angelegt.
Es wird aber keine Datei angelegt.
Was habe ich falsch gemacht?
Gruß WOD
by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)
Nur die notify in die config.yaml
notify:
- platform: file
name: Zählerstände_Monat
filename: /config/www/csv_log/Zaehler.csv
timestamp: false
Der Rest ist eine Automation wie es auch da als Komentar steht.
# 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
Meine Automation läüft immer einmal im Monat.
Gruss
Wenn keine config.yaml vorhanden ist,
reicht es dann nur eine config.yaml anzulegen und den Code einzufügen?
Dann unter Einstellungen → Automatisierungen & Szenen eine neue Automation erstellen
oder in der automations.yaml einfügen?
Gruß WOD
Das ist mir auch schon ein paar Mal passiert beim schreiben - @Wolfi1 meint unter config/ die configuration.yaml
, die hast du garantiert
Ich glaube seit ein paar Versionen wurde das erlauben von Zugriffen geändert. Ob es jetzt zwingend nötig ist weiß ich nicht, aber wenn du nach dem Aufruf eine Fehlermeldung im log erhältst, dass du die Datei nicht schreiben darfst, kann in der configuration.yaml
homeassistant:
allowlist_external_dirs:
- "/config/www/"
- "/config/"
nicht schaden.
Und, nur zur Sicherheit: Unter “Developer” mindestens die “Notify Services” neustarten nicht vergessen nachdem du den Service angelegt oder bearbeitet hast - wenn du ganz sicher sein willst, einmal komplett HA Restart
Die *.csv-Datei musst du übrigens nicht selbst anlegen, wenn es die nicht gibt, wird die automatisch angelegt.
Edit: In die automations.yaml reinzimmern ist nicht (mehr) so top oder zeitgemäß. Und wird so mit einfach Copy + Paste auch nicht klappen.
Leg dir eine neue, leere Automation an, speichere sie mit einem Namen deiner Wahl. Dann kannst du rechts oben auf die drei … gehen, “Edit in YAML” wählen - da kannste dann das Beispiel reinkopieren. Deine Sensoren musst du natürlich dann noch entsprechend anpassen. Das kannst du dann aber auch wieder im grafischen Editor machen, ist vermutlich intuitiver
Habe ich selber erst gemacht.
in der configuration.yaml wenn deine Datei unter /config liegt. Sonst anpassen.
Bzw. wenn vorhanden nur noch das config im passenden Abschnitt einfügen.
Datei würde ich mit Suffix machen. Also “csv_log.txt”
Es wird für HA kein Einrag notify in der configuration.yaml benötigt. Erzeugt sogar einen Fehler.
Das unter message für Dich anpassen.
homeassistant:
allowlist_external_dirs:
- /config
Hier der Ausschnitt meiner Automation. Speichere damit Windaten ab.
- service: notify.send_message
target:
entity_id: notify.wetterdaten_wind
data:
message: >
{{ "Stärkster Wind am: " +
as_timestamp(states('input_datetime.datum_wind_max_merken')) |
timestamp_custom("%d.%m.%Y") + " mit " +
states('input_number.hochste_windgeschwindigkeit_merken') + " km/h" }}
Ah stimmt! Seit ein paar Versionen wird ja das schreiben in Dateien über Devices gemacht!
Mein Fehler.
Dann ist’s ja noch einfacher:
Sorry
Meinte natürlich die configuration.yaml
Gruss
Für ein Anfänger, was versteht Ihr Automation?
a) unter Einstellungen → Automatisierungen & Szenen eine neue Automation erstellen
b) Code in der automations.yaml einfügen?
Gruß WOD
Beides
Was du über die GUI einträgst, ist faktisch in der automations.yaml.
Ich mach seit längerem fast nur GUI.
Ein Code-Beispiel wäre nett.
Gruß WOD
Hey, Versuch macht klug
Leg mal in der GUI eine neue Testautomation an. Ganz einfach, ein Trigger, eine Action. Speichers.
Dann bleib in der Automation, und klick rechts oben auf die 3 … und wähle “In Yaml bearbeiten” aus.
Da siehst du (nur) diese Automation, eben in Yaml formatiert
Jetzt mach mal die automations.yaml Datei auf und scroll nach unten. Da findest du deine gerade gespeicherte Automation. Aber eben auch alle anderen Automationen. Und sie sind leicht anders formatiert, genauer gesagt - sie sind anders eingerückt, jede Automation beginnt mit einem "-“ und hat noch ein paar andere Infos (z.b. ID). Aber es ist faktisch das gleiche.
Während es bei Änderungen im GUI Modus (oder auch mit Yaml Ansicht, aber eben nur die eine Automation) reicht zu speichern, musst du beim direkten arbeiten in der automations.yaml diese dann neu laden.
Am Ende, finde ich, gibt es nur selten Momente, wo es Sinn macht direkt in der automations.yaml zu arbeiten.
Ich kann dir auch gern morgen n Beispiel posten! Ich glaub nur, da wirste noch öfter drüber stolpern, und was man selbst entdeckt hat ist besser verstanden
Edit:
So siehts in der grafischen Bearbeitung aus:
Die gleiche Automation, wenn man bei der Automationsbearbeitung in den YAML Modus schaltet:
alias: Test für WOD
description: ""
trigger:
- platform: time
at: "15:00:00"
condition:
- condition: numeric_state
entity_id: sensor.klima_temperatur_innen
below: 22
action:
- service: notify.persistent_notification
metadata: {}
data:
message: Test für WOD
mode: single
In der automations.yaml sind alle Automationen, am Ende auch die neue:
- id: '1721715005941'
alias: Test für WOD
description: ''
trigger:
- platform: time
at: '15:00:00'
condition:
- condition: numeric_state
entity_id: sensor.klima_temperatur_innen
below: 22
action:
- service: notify.persistent_notification
metadata: {}
data:
message: Test für WOD
mode: single
Aber wie gesagt - schaus dir am besten selbst mal auf deinem Homeassistant an!
Sorry aber tue Dir selber einen Gefallen und beschäftige dich als allererstes mit den Grundlagen von HA.
Es gibt viele Videos von Simon24 und anderen.
Gruss