Sensordaten bei Aktualisierung in eine Textdatei schreiben? Thema ist als GELÖST markiert

Keine passende Kategorie? Bzw. Allgemeine Diskussionen rund um Home Assistant.


Antworten
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von Andifidi »

Guten Abend,
hat schonmal jemand probiert die DSL-Neuverbindungen aus der Fritz Box oder andere Sensordaten in eine Textdatei zu exportieren?

Würde es gerne als Fehlerreport für den Internetprovider haben um bequem aufzuzeigen, wie oft eine Neuverbindung aufgrund schlechter Leitung stattfindet.

Der Sensor hierzu in der FritzBox-Integration heisst sensor.fritz_box_7590_connection_uptime
Vielleicht später dazu noch die Information der Geschwindigkeit mit dem neu verbunden wurde…
sensor.fritz_box_7590_max_connection_download_throughput

Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von Osorkon »

Hast Du Dir schon mal die Google Sheets Integration angeschaut.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

Re: Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von Andifidi »

Moin Osorkon. Danke für den Tipp. Hört sich ganz gut an, aber würde es auch anders (mit Bordmitteln ohne einen Cloudbasierten Dienst) gehen?

manni
Beiträge: 52
Registriert: Do 16. Dez 2021, 13:00
2
Has thanked: 2 times
Been thanked: 3 times

Re: Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von manni »

Dies habe ich mir mal irgendwann testwiese eingerichtet, vielleicht kannst du es brauchen:

Code: Alles auswählen

# Das Untere erzeugt einen neuen Notify-Dienst, diesen dann in Automation
# aufrufen
notify:
  - platform: file
    name: garten_nodemcu_4
    filename: /config/dateien/garten_nodemcu_4.csv
    timestamp: false

Die Automation: (ja, ich weiß, sagt man nicht) :-)

Code: Alles auswählen

alias: Garten_NodeMCU_4_File
description: >-
  Soll Daten in ein csv schreiben --- Sensoren von NodeMCU_4 Temp und Feuchte
trigger:
  - platform: time
    at: "11:59"
  - platform: time
    at: "23:59"
condition: []
action:
  - service: notify.garten_nodemcu_4
    data_template:
      message: >
        {{now().strftime('%a,%d.%m.%Y,%H:%M,')}}{{states.sensor.nodemcu_4_temperatur_degc.state}},{{states.sensor.nodemcu_4_luftfeuchte.state}}
mode: single

Kann sein dass man noch das Verzeichnis irgendwo freigeben muss.
Habe dies noch gefunden, keine Ahnung ob das noch oder überhaupt so muss, zu lange her.
Unter homeassistant:

Code: Alles auswählen

  allowlist_external_dirs:
    - "/config/dateien"
Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

Re: Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von Andifidi »

Moin Manni, das sieht einleuchtend und logisch aus.
Ich probiere mal und melde mich….Danke :-)

Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

Re: Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von Andifidi »

Ich denke sowas wird es funktionieren.

In der configuration.yaml:

Code: Alles auswählen

# Notify für Dateierstellung/Log für DSL z.B.
notify:
  - platform: file
    name: dsl_log
    filename: /config/www/dsl.csv
    timestamp: false

Dann die Datenfelder die ich benötige als template angelegt:

Code: Alles auswählen

 - sensor:
    - name: 'dsl_download'
      unique_id: dsl_download
      state : |
        {{states('sensor.fritz_box_7590_max_connection_download_throughput') | float /1000 | round(0) }}      
state_class: measurement unit_of_measurement: "Mbit/s" - name: 'dsl_upload' unique_id: dsl_upload state : | {{states('sensor.fritz_box_7590_max_connection_upload_throughput') | float /1000 | round(0) }}
state_class: measurement unit_of_measurement: "Mbit/s"
- name: 'dsl_zeit' unique_id: dsl_time state : | {{as_timestamp(states('sensor.fritz_box_7590_connection_uptime')) | timestamp_custom("%d.%m.%Y %H:%M")}}
state_class: measurement unit_of_measurement: "Uhr"

@osorkon: Dank deiner Grundlagen habe ich das erste mal templatesensoren ohne Fehler erstellt;-)

Die Automatisierung sollte so funktionieren:

Code: Alles auswählen

alias: Log_DSL
description: DSL Log Datei aktualisieren bei Reconnect
trigger:
  - platform: device
    device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxx
    domain: button
    entity_id: button.fritz_box_7590_reconnect
    type: pressed
condition: []
action:
  - service: notify.dsl_log
    data:
      message: >
        {{states('sensor.dsl_zeit',)}} Downstream:
        {{states('sensor.dsl_download')}} Mbit/s, Upstream:
        {{states('sensor.dsl_upload')}} Mbit/s
mode: single

Das Ergebnis in der CSV Datei sieht dann so aus:

Code: Alles auswählen

Home Assistant notifications (Log started: 2022-11-24T18:47:33.160173+00:00)
--------------------------------------------------------------------------------
24.11.2022 04:08 Uhr Downstream: 214.666 Mbit/s, Upstream: 31.262 Mbit/s
24.11.2022 04:08 Uhr Downstream: 214.666 Mbit/s, Upstream: 31.262 Mbit/s

Habt vielen Dank für die konspirative Unterstützung :-)

Benutzeravatar
Andifidi
Beiträge: 58
Registriert: So 5. Jun 2022, 18:19
1
Has thanked: 4 times
Been thanked: 1 time

Re: Sensordaten bei Aktualisierung in eine Textdatei schreiben?

Beitrag von Andifidi »

Musste übrigens noch den Auslöser ändern:
Von:

Code: Alles auswählen

trigger:
  - platform: device
    device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxx
    domain: button
    entity_id: button.fritz_box_7590_reconnect
    type: pressed
condition: []

in

Code: Alles auswählen

trigger:
  - type: connected
    platform: device
    device_id: xxxxxxxxxxxxxxxxxxxxxxxxxxx
    entity_id: binary_sensor.fritz_box_7590_connection
    domain: binary_sensor
    condition: []

8-)

Antworten