Wiki-Quellcode von FEMS - Fennecon Energy Management System
Zuletzt geändert von Jan Tobias Biedermann am 2024/01/16 22:19
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | **Einen Fennceon FEMS (Fennecon Energy Management System), zum Beispiel die Heckert Symphon-E, in das Dashboard des Homeassistant einbinden:** | ||
2 | |||
3 | === Kurze Einführung: === | ||
4 | |||
5 | Das FEMS bringt nicht nur einen Link auf die Cloud mit, den man in der Regel per Email zugesendet bekommt, auch im internen LAN stellt es die gleichen Informationen bereit. | ||
6 | |||
7 | Zusätzlich stellt das Gerät eine sogenannte Rest-API zur Verfügung, über die man aktuelle Werte der Anlage abfragen kann. | ||
8 | |||
9 | Details zur API finden sich hier: | ||
10 | |||
11 | [[https:~~/~~/docs.fenecon.de/de/_/latest/fems/fems-app/includes/FEMS_App_REST_JSON.html>>url:https://docs.fenecon.de/de/_/latest/fems/fems-app/includes/FEMS_App_REST_JSON.html]] | ||
12 | |||
13 | In der Dokumentation zur API ist genau angegeben, über welchen Link man die Rest-API anspricht. Das Passwort steht dort auch, ist also kein Geheimnis, es lautet „user“. | ||
14 | |||
15 | In der Kommandozeile kann man dieses hier ausprobieren (IP Adresse anpassen!): | ||
16 | |||
17 | curl http:~/~/x:[[user@192.168.2.121>>mailto:user@192.168.2.121]]:8084/rest/channel/_sum/EssSoc | ||
18 | |||
19 | Dieser direkte Zugriff ist ganz praktisch, da man so in Homeassistant recht leicht an die entsprechenden Werte kommt. | ||
20 | |||
21 | Leider habe ich jedoch trotz der sehr umfangreichen Dokumentation von Homeassistant länger gebraucht um herauszufinden, was ich wo eintragen muss. | ||
22 | |||
23 | Ein Beispiel hätte mir sehr geholfen, daher im Folgenden eine kurze | ||
24 | |||
25 | === Anleitung: === | ||
26 | |||
27 | Wie kann man also jetzt über die configuration.yaml seine Sensoren einfügen? | ||
28 | |||
29 | * Man öffnet das Web Frontend seiner Homeassistant Instanz (Standardmässig Port 8123) | ||
30 | * Unter Einstellungen Add-Ons:((( | ||
31 | [[image:HowtoHeckertHomeassistant_html_d1a85b4c3b96274c.png||height="62" width="584"]] | ||
32 | ))) | ||
33 | * Den Fileeditor auswählen (oder installieren, dann auswählen) | ||
34 | * Die Benutzeroberfläche öffnen | ||
35 | * [[image:HowtoHeckertHomeassistant_html_393e18dd24aa3605.png||height="95" width="325"]] | ||
36 | * Dort die Datei configuration.yaml auswählen | ||
37 | * [[image:HowtoHeckertHomeassistant_html_40cee925dd2f7b9b.png||height="157" width="167"]] | ||
38 | * [[image:HowtoHeckertHomeassistant_html_90e54244e4b8eb27.png||height="69" width="251"]] | ||
39 | * Editieren der Datei erlauben [[image:HowtoHeckertHomeassistant_html_a596c3d90f249047.png||height="59" width="51"]] | ||
40 | * Hier hat man in der Regel bereits einen Sensor angelegt (CPU Temperatur), weswegen ich hier das Stichwort „sensor“ mit dem Rautezeichen (#) auskommentiert habe. | ||
41 | * Zur Sicherheit lädt man die Datei herunter, damit man im Zweifelsfall alles rückgängig machen kann. | ||
42 | * Ans Ende der Datei fügt man nun im Online-Editor die folgenden Zeilen an: | ||
43 | |||
44 | {{{# Anlegen von Sensoren, die über die Rest-API Infos aus der FEMS von Fennecon lesen | ||
45 | # Geht davon aus, dass das Stichwort "sensor" bereits weiter oben steht (z.B. CPU Temperatur) | ||
46 | # ACHTUNG: Immer unter Entwicklerwerkzeuge die Konfiguration prüfen bevor man neu startet! | ||
47 | # IP Adresse muss natürlich in der Regel die eurer Anlage im LAN sein! | ||
48 | #sensor: | ||
49 | - platform: rest | ||
50 | name: Solar Battery State | ||
51 | unit_of_measurement: "%" | ||
52 | device_class: battery | ||
53 | json_attributes: | ||
54 | value | ||
55 | value_template: "{{value_json.value}}" | ||
56 | resource: http://x:user@192.168.2.121:8084/rest/channel/_sum/EssSoc | ||
57 | username: x | ||
58 | password: user | ||
59 | authentication: basic | ||
60 | headers: | ||
61 | User-Agent: Home Assistant | ||
62 | Content-Type: application/json | ||
63 | |||
64 | |||
65 | - platform: rest | ||
66 | name: Solar Income | ||
67 | unit_of_measurement: "W" | ||
68 | device_class: energy | ||
69 | json_attributes: | ||
70 | value | ||
71 | value_template: "{{value_json.value}}" | ||
72 | resource: http://x:user@192.168.2.121:8084/rest/channel/_sum/ProductionActivePower | ||
73 | username: x | ||
74 | password: user | ||
75 | authentication: basic | ||
76 | headers: | ||
77 | User-Agent: Home Assistant | ||
78 | Content-Type: application/json | ||
79 | |||
80 | - platform: rest | ||
81 | name: House Consumption | ||
82 | unit_of_measurement: "W" | ||
83 | device_class: energy | ||
84 | json_attributes: | ||
85 | value | ||
86 | value_template: "{{value_json.value}}" | ||
87 | resource: http://x:user@192.168.2.121:8084/rest/channel/_sum/ConsumptionActivePower | ||
88 | username: x | ||
89 | password: user | ||
90 | authentication: basic | ||
91 | headers: | ||
92 | User-Agent: Home Assistant | ||
93 | Content-Type: application/json }}} | ||
94 | |||
95 | Abspeichern (Diskettensymbol rechts oben) | ||
96 | |||
97 | Hokuspokus. Und was jetzt? Nun schaut man, ob ein kleines rotes Ausrufungszeichen über dem Editor erscheint. Wenn ja, klickt man es an und beseitigt ggf. den Fehler. | ||
98 | |||
99 | Zur Sicherheit geht man nun noch auf Entwicklerwerkzeuge | ||
100 | |||
101 | u[[image:HowtoHeckertHomeassistant_html_55c9f529bf5f36cf.png||height="159" width="643"]] nd überprüft dort die Konfiguration um ggf. Fehler zu beheben. | ||
102 | |||
103 | Nach einem Neustart stehen die Sensoren zur Verfügung. | ||
104 | |||
105 | Was nun? | ||
106 | |||
107 | Nun kann man im Dashboard Schaltflächen für die neu angelegten Sensoren erstellen. Dazu einfach eine Schaltfläche „Sensor“ wählen und die ensprechende Enitität suchen und auswählen (sensor.solar_income zum Beispiel). Die Namen der Sensoren ergeben sich aus dem Schlüsselwort „sensor“ gefolgt von einem Punkt und dem Namen in der configuration.yaml mit Unterstrich anstelle von Leerzeichen). | ||
108 | |||
109 | Nun kann man die Kennwerte seiner Solaranlage im Dashboard auslesen. Natürlich kann man das analog für alle in der API Dokumentation angegebenen Werte machen. | ||
110 | |||
111 | Viel Spaß | ||
112 | |||
113 | Johannes |