Entität Number Handhabung

copalethri

New member
Hallo,
nachdem ich von meiner Frischwasserstation die Sensorwerte per YAML angelegt und in einem Dashboard abgelegt habe, versuche ich mich an diversen Werteeinstellungen z.b. Temperaturen. Dafür habe ich über die number-Entität in meiner Modbus-YAML folgende Code hinterlegt:
numbers:
- name: "Frischwasser Solltemperatur"
address: 186
write_method: write_multiple_registers # Erzwingt den Funktionscode 16
input_type: holding # Nutzt Funktionscode 03 zum Lesen
data_type: uint32
scale: 0.1 # Dividiert beim Lesen durch 10 / Multipliziert beim Schreiben
precision: 1 # Zeigt eine Nachkommastelle an (z.B. 45.5 °C)
unit_of_measurement: "°C"
min_value: 30 # Optional: Mindestwert zum Schutz vor Falscheingaben
max_value: 90 # Optional: Maximalwert zum Schutz vor Falscheingaben
step: 0.5
Im Editor gibt es keine Fehlermeldung und auch Neustarts verlaufen problemlos - allerdings. ich kann die Entität nirgendwo finden und somit ist auch keine sinnvolle Verwendung im Dashboard möglich...
Hat wer eine Idee, wo das Problem liegen könnte? Vielen Dank im voraus für jedwede Unterstützung...
 
Vielleicht prüfst Du erst einmal ob der Wert im richtigen Modbus Register steht und ob Offset oder Registernummer gemeint ist.
Dann müssen die Register im richtigen Modbus Kontext deklariert sein, Z.B.
YAML:
modbus:
  - name: mein_modbus
    type: tcp
    host: 192.168.1.100
    port: 502

    numbers:
      - name: "Frischwasser Solltemperatur"
        address: 186
        write_method: write_multiple_registers
        input_type: holding
        data_type: uint32
        scale: 0.1
        precision: 1
        unit_of_measurement: "°C"
        min_value: 30
        max_value: 90
        step: 0.5
 
Ich weis zwar nicht wie das hier ist aber normalerweise liegt der Adressraum der Holding Register zwischen 40001 und 49999.
Programme wie QMOD-Master etc. findest Du im Internet.
 
Was hast Du für ein Gerät und magst Du mal die genaue Bezeichnung posten, dann kann man mal in der Doku nachsehen.
 
Danke:
- der Kontext stimmt(Host und Port etc.) soweit und die Adressen auch - hier die Vorgabewerte aus der Sailer Variablenliste:
93L10.30gewünschte FrischwassertemperaturX[1/10 °C]35090010350FRILesen: 03 00 BA 00 02
Schreiben: 10 00 BA 00 02 04 00 00 02 58
Registernummer = Variable * 2, Anzahl immer = 2, Wert hier 600
 
ja klar, es handelt sich um eine Sailer Frischwasserstation - btw. mit genau den Einstellungen funktioniert das Ganze in IP-Symcon ohne Probleme...hm und den reinen aktuell eingestellten Wert als Sensorabfrage an Adresse 186 funktioniert auch in HA
 
ok - nachfolgend der komplette Code
YAML:
  - name: "Sailer Frischwasserstation"
    type: tcp
    host: 192.168.***.***
    port: 502
    sensors:
      - name: Friwa_Vorlauf
        slave: 1
        address: 5
        input_type: input
        unit_of_measurement: °C
        state_class: measurement
        scale: 0.1
        offset: 0
        precision: 1
        data_type: int16
      - name: Friwa_Warmwasser
        slave: 1
        address: 6
        input_type: input
        unit_of_measurement: °C
        state_class: measurement
        scale: 0.1
        offset: 0
        precision: 1
        data_type: uint16
      - name: Friwa_Zirkulation
        slave: 1
        address: 8
        input_type: input
        unit_of_measurement: °C
        state_class: measurement
        scale: 0.1
        offset: 0
        precision: 1
        data_type: uint16
      - name: Friwa_Rücklauf
        slave: 1
        address: 16
        input_type: input
        unit_of_measurement: °C
        state_class: measurement
        scale: 0.1
        offset: 0
        precision: 1
        data_type: uint16
      - name: Friwa_Soll
        slave: 1
        address: 186
        input_type: holding
        unit_of_measurement: °C
        state_class: measurement
        scale: 0.1
        offset: 0
        precision: 1
        data_type: uint32
# --- Durchfluss & Leistung ---
      - name: "Friwasta Frischwasserfluss"
        unique_id: friwasta_frischwasserfluss
        address: 230  # EA 0073 (Hex 73 = Dezimal 115)
        slave: 1
        input_type: holding
        unit_of_measurement: "l/min"
        state_class: measurement
        scale: 0.1
        precision: 1
        data_type: uint32
      - name: "Friwasta Aktuelle Leistung Primärpumpe Klein"
        unique_id: friwasta_leistung_primaerpumpe_klein
        address: 92  # EA 002E (Hex 2E = Dezimal 46)
        slave: 1
        input_type: holding
        unit_of_measurement: "%"
        state_class: measurement
        offset: 0
        precision: 1
        data_type: uint32
    binary_sensor:
      - name: "Friwasta Zirkulationspumpe Status"
        unique_id: friwasta_zirkulationspumpe_status
        address: 284  # Hex: EA 008F -> Dezimal 143 (Ausgang A5)
        slave: 1
        input_type: holding
        data_type: uint32
        device_class: running
    # --- SCHREIBBARE TEMPERATUREN (SCHIEBEREGLER) ---
    numbers:
      - name: "Frischwasser Solltemperatur"
        address: 186
        write_method: write_multiple_registers # Erzwingt den Funktionscode 16
        input_type: holding                    # Nutzt Funktionscode 03 zum Lesen
        data_type: uint32
        scale: 0.1                             # Dividiert beim Lesen durch 10 / Multipliziert beim Schreiben
        precision: 1                           # Zeigt eine Nachkommastelle an (z.B. 45.5 °C)
        unit_of_measurement: "°C"
        min_value: 30                          # Optional: Mindestwert zum Schutz vor Falscheingaben
        max_value: 90                          # Optional: Maximalwert zum Schutz vor Falscheingaben
        step: 0.5
 
Bei der Modbus Integration muss es "binary_sensors:" heißen. Vielleicht ist das der Grund weshalb der Sensor nicht angelegt wird.
Ansonsten ist mir jetzt nicht "verwerfliches" aufgefallen.
 

Letzte Anleitungen

Statistik des Forums

Themen
8.193
Beiträge
80.886
Mitglieder
8.944
Neuestes Mitglied
habemax
Zurück
Oben