Hi! Ich habe relativ neu Home Assistant auf einem Raspberry am Laufen. Das erste Gerät (Ein Energiezähler) konnte ich ganz einfach in das configuration.yaml eintragen. Nun möchte ich noch ein Gerät hinzufügen und stehe komplett auf dem Schlauch, da HA jeglichen Syntax anmeckert den ich versuche. z.B.dass ich dann 2x modbus integriert habe... Kann mir evtl. jemand einen kleinen Tip geben, wie mehrere Modbus-TCP-Geräte hin geschrieben werden müssen? Habe schon versucht es mit Google heraus zu finden, aber es gibt etliche Syntax-Beispiele und ich kann diese beiden damit nicht zusammenfügen. Grüße! Sebastian
Vorweg: Home Assistant kenne ich nicht, ich arbeite nur viel mit YAML. Bist du sicher, dass die Dateien überhaupt zusammen passen? Für mich hat die zweite Datei (von der offensichtlich falschen Einrückung mal abgesehen) ein ganz anderes logisches Format als die erste. In YAML gibt es u.a. einfache Listen (Arrays) und assoziative Listen (Hashes, Key-Value-Paare). Bei deinem ersten Beispiel ist "modbus" ein Schlüssel und das, was nach dem Doppelpunkt kommt (und tiefer eingerückt ist) der zugehörige Wert. Hier würde ich erwarten, dass du nur einen Modbus hast. Als Wert ist dann eine Liste angegeben, in der du einen Eintrag mit dem Namen "EM24_Energiezaehler Haus" hast, für den dann auf ähnliche Weise diverse Parameter, u.a. die Liste der enthaltenen Sensoren angegeben ist. Für weitere Geräte am Modbus würde ich hier Einträge in folgener Form anhängen:
1 | - name: EPever Charge Controller 4 (2210 AN) |
2 | type: tcp |
3 | host: IPADRESSE |
4 | port: PORTNUMMER |
5 | sensors: |
Und für "sensors" dann eben die ganzen Einträge, die in der anderen Datei bei "registers" angegeben sind. Damit sollte zumindest das Datenformat ungefähr passen. Achte dabei auch auf die richtige Einrückung, ähnlich wie bei Python wird auch bei YAML darüber die Blockstruktur der Daten festgelegt. Ein Editor, der das Datenformat versteht kann da helfen, Fehler zu vermeiden. Visual Studio Code ist da gar nicht so schlecht zur Bearbeitung.
:
Bearbeitet durch User
Hallo Ralf. Danke für Dein Feedback. Ich habe es zusammen bekommen. Er störte sich im Grunde an dem "Modbus:", was scheinbar nur einmal vorkommen darf. Die beiden Sensoren sind dann einfach hintereinander zu kopieren. Das mit der Einrückung wie bei Python ist für mich irgendwie komplett merkwürdig. Ich mag auch kein Pascal Dialekt und bleibe daher lieber bei C... ;) Grüße
Sebastian schrieb: > Das mit der Einrückung wie bei Python ist für mich irgendwie komplett > merkwürdig. dafür gibts YAML<-->JSON konverter.
1 | { |
2 | "modbus": [ |
3 | { |
4 | "name": "EM24_Energiezaehler Haus", |
5 | "type": "tcp", |
6 | "host": "192.168.0.101", |
7 | "port": 502, |
8 | "sensors": [ |
9 | { |
10 | "name": "EM24_V L1-N", |
11 | "unit_of_measurement": "V", |
12 | "slave": 1, |
13 | "address": 0, |
14 | "input_type": "input", |
15 | "data_type": "int32", |
16 | "scale": 0.1, |
17 | "precision": 2, |
18 | "swap": "word", |
19 | "count": 2, |
20 | "device_class": "voltage" |
21 | }, |
22 | { |
23 | "name": "EM24_V L2-N", |
24 | "unit_of_measurement": "V", |
25 | [...] |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.