Hallo zusammen,
ich bin absolut neu in dem Thema - drum bitte um Nachsicht wenn ich die Frage stelle obwohl sie schon mal beantwortet wurde…
Ich habe SMA Wechselrichter (3000TL) die per Bluetooth ausgelesen werden. Leider sind die so alt, dass das Bluetooth-Protokoll noch proprietär ist, d.h. der Sunny Explorer den ich einsetze braucht noch Win7 und einen Bluetooth Dongle den ich für nix anderes einsetzen kann.
Lange Rede kurzer Sinn: ich erzeuge für jeden Tag (im 15-min-Rhythmus) eine Datei die ich dann im besten Fall automatisch in HA einlesen kann und dort die aktuellen Werte habe.
Ist sowas möglich? Hat das evtl. schon einer gemacht?
LG,
MikeE
Benutzt / hast du noch einen Sunny Beam? Den kann man per USB anschließen und auslesen.
Hallo Thobi,
nein, ich benutze den Sunny Explorer (Software) und lasse eine Datei ins Dateisystem meines PCs schreiben. Ich möchte nichts an der besehenden Konfig verändern (da ich es seinerzeit nur mit Mühe geschafft habe ans Laufen zu bekommen) und ausserdem ist das ganze nur lokal im Netz.
Von dort möchte ich die Daten abholen und in HA anzeigen lassen.
Ist das so machbar?
Viele Grüße,
MikeE
Hallo MikeE, in welchen Format speicherst du die Werte *.csv oder *.xls File, zweite Frage hast du Zugriff von Homeassistant auf das Filesystem wo die Daten liegen?
Hallo Thobi,
Das sind .csv-Dateien und ich habe Zugriff (bzw. kann mir selbst Zugriff gewähren, da Netzwerkadmin).
Es gibt die Integration File in Homeassistant die importiert csv daten, https://www.home-assistant.io/integrations/file/.
Hallo Thobi,
Danke Dir für Deinen Tipp. Ich habe nun folgendes gemacht:
1.) unter Einstellungen - System - Speicher habe ich einen Netzwerkspeicher (Typ “Freigeben”) eingerichtet, der auf den entfernten SMB Share zeigt und es wurde so auch ohne Fehlermeldung akzeptiert.
2.) File Integration runtergeladen
3.) versucht einen Dateibasierten Sensor einzurichten. Und das hab ich schon nicht mehr geschafft
Als Dateipfad habe ich den Pfad angegeben, bei mir ist es SMA:HALogs, entsprechend habe ich /SMA:HALogs/datei.csv angegeben
Als Fehler habe ich dann zurückbekommen: “Der Zugriff auf den ausgewählten Dateipfad ist nicht zulässig.”
Habs mit und ohne führenden Slash versucht, mit dem Anzeigenamen statt dem Link, ich habs nicht geschafft.
Hast Du evtl. noch einen Tipp was ich da falsch gemacht haben könnte? Ich gebe zu, ich bin eher in der Windows Welt versiert als in der Linux Welt…
Danke Dir nochmal.
MikeE
Hallo MikeE, kannst du mit dem File-Editor auf deine Datei zugreifen? Schau dir mal den Beitrag von Michael an Netzwerk einbinden.
Hallo Thobi,
ich habe über das SSH Terminal Zugriff auf den Share. Über den File-Editor lässt er mich nicht auf die Root-Ebene, aber über den SSH kann ich den /share/HALogs mit der Datei sehen. mit ‘cat’ kann ich auch auf die Datei zugreifen.
MikeE
Nachtrag:
Hallo Thobi,
jetzt hab ich noch ein wenig rumprobiert…
selbst wenn ich die Datei “dach.csv” lokal nach /homeassistant/dach.csv kopiere (und die Rechte stehen auf 757) kommt der Fehler wieder “Der Zugriff auf den ausgewählten Dateipfad ist nicht zulässig”.
Ich komm nicht weiter…
by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
Hallo Thobi,
so - jetzt hab ich´s - zumindest halb…
ich hab die config.yaml angepasst und jetzt hat er die File Integration zumindest mal akzeptiert.
Was habe ich geändert: ich hatte vorher in der configuration.yaml die allowlist_external_dirs: unter der default_config. Dort gehört sie aber nicht hin.
Seit ich die unter homeassistant: geschrieben hab, hat die File Integration auch nicht mehr gemeckert.
Ach ja: den Pfad habe ich auch noch in doppelten Anführungszeichen geschrieben - ist in der Anleitung zur File Integration nicht korrekt beschrieben.
Nun muss ich nur noch rausfinden warum der Sensor nicht verfügbar ist.
Ich bekomme in der File Integration nun den Fehler “Diese Entität wird nicht mehr von der Integration file bereitgestellt. Wenn die Entität nicht mehr verwendet wird, lösche sie in den Einstellungen.”
Nun hat er sie aber ein paar Sekunden vorher noch akzeptiert…
Wenn hier jemand eine Lösung hat, immer gerne
Edit: auch das letzte Detail hab ich rausgefunden nachdem ich mal die Logs geprüft habe: er kann den Wert nicht auslesen, weil dieser ein Komma statt einen Punkt hat und entsprechend als String und nicht als float gilt. Die Datei umgeschrieben, jetzt gehts
Das hört sich gut an, schreibst du noch deine Änderungen in das Forum damit andere partizipieren können.
Hallo zusammen,
hier nochmal die Zusammenfassung meiner Schritte, die mich zum erfolgreichen Betrieb der File-Integration geführt haben:
1.) Voraussetzungen: File-Editor Add-On, SSH-Terminal Add-On
2.) Netzwerkspeicher einrichten:
- im Home Assistant unter Einstellungen → System → Speicher einen Netzwerkspeicher hinzufügen
- Name: remotespeicher (könnt Ihr Euch aussuchen)
- Verwendung: Freigeben
- Server: Euer Servername (ohne Slash oder Backslash bzw. die IP-Adresse)
- Protokoll: was immer für Euch zutrifft, bei Windows meistens Samba/Windows (CIFS), bei Netzwerkbasierten Speichern wie QNAP oder Synology Disk Stations meist NFS
- bei Samba: Remote-Freigabe eingeben, wie es unter Windows benannt wurde, d.h. wenn Ihr den Freigabenamen “Test” genannt habt, gehört dort Test rein - ohne Anführungszeichen oder Slashes oder ähnlichem. Es ist auf jeden Fall empfehlenswert eine direkte Freigabe zu erstellen, ohne auf Unterordner zuzugreifen. Dies vermeidet Fehleingaben oder künftige Schwierigkeiten bei Updates o.ä.
. Benutzer und Passwort sprechen für sich…
3.) im Terminal testen, ob der Netzwerkspeicher zugreifbar ist:
- chdir /share/remotespeicher (der Name, den Ihr beim Netzwerkspeicher einrichten vergeben habt.)
4.) im File Editor muss nun die configuration.yaml angepasst werden:
- die configuration.yaml aufrufen und allowlist_external_dirs einfügen.
WICHTIG: es muss unter “homeassistant:” passieren, nicht unter “default_config:”, sonst geht’s nicht… da bin ich darauf reingefallen
- Beispiel:
.
- auch hier ist die Einrückung essentiell, da ist yaml sehr eigen (sozusagen eine Diva).
- speichern nicht vergessen!
- ab hier ein mal Home Asssistant neu starten
5.) unter Einstellungen → Geräte und Dienste die File-Integration hinzufügen:
- Eintrag hinzufügen → Einrichten eines dateibasierten Sensors
- Dateipfad: /share/remotespeicher (wieder der Name den Ihr Euch oben ausgesucht habt)
- Wert Template: bei csv-Dateien “{{ value.split(”;“)[2] }}” (ohne die doppelten Anführungszeichen ganz vorne und ganz hinten). Dieses Beispiel bedeutet, dass in der letzten Zeile der Datei die dritte Spalte (Start der Zählung ist bei 0) genommen wird. In diesem Beispiel ist der Spaltentrenner ein Semikolon. Anpassen wie es nötig ist.
- Maßeinheit spricht für sich.
6.) im Log nachsehen ob das ganze nicht noch einen Fehler wirft, z.B. weil der Wert in der Datei ein Komma als Nachkommatrenner hat statt einen Punkt, also statt 2,45 (ist halt deutsch) muss mann 2.45 als Ausgangswert haben (amerikanische Schreibweise).
…und wenn ich nichts vergessen habe, sollte jetzt der Sensor funktionieren
Und nicht zuletzt auch Dank an Thobi für die richtungsweisenden Links!
Viel Spaß!
Hallo Mikel,
danke für die Anleitung. Das hat soweit auch bei mir funktioniert.
Ich hatte aber vier Werte. Falls jemand an dieser Stelle Mal auf Probleme stößt, habe ich noch einen Tipp.
Der erste Wert entsprechend also die erste Entität habe ich entsprechend deiner Anleitung mit Filenamen eingetragen. Um weitere Werte einzutragen bin ich auf die drei Punkte gegangen und habe den ersten Wert umbenannt (ursprünglicher Eintrag ist Pfad+Dateiname der dann auch der Name ist). Danach kann man erst den zweiten Eintrag machen weil man sonst einen Namenskonflikt hat.
Danke nochmal
Hallo Uwe3,
Danke Dir für die Rückmeldung und für die Ergänzung. Freut mich wenns Dir geholfen hat
LG,
MikeE