Forum: Haus & Smart Home Yaml Syntax-Problem bei Home Assistant


von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

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

von Ralf D. (doeblitz)


Lesenswert?

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
von Sebastian (Gast)


Lesenswert?

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

von Εrnst B. (ernst)


Lesenswert?

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
Noch kein Account? Hier anmelden.