copalethri
New member
...der Kontext ist richtig, allerdings erscheint ein Sensoreintrag unter den Entitäten, wenn ich diesen als "normalen" Sensor einrichte...
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
name: "Friwasta Zirkulationsstatus"
slave: 1
address: 284
input_type: holding
data_type: uint32
scan_interval: 15
Sieht doch gut aus! Aber klar, 0 oder 100 ist nicht on oder off, das passt nicht zu einem binären Sensor....wenn die Pumpe aus ist= 0 ; wenn an= 100...ich denke, damit kann man was anfangen..![]()
...na die Warmwassertemperatur einstellen, die an den Verbraucherstellen(Wasserhahn, Dusche, Badewanne) gezapft werden kann, da sich diese doch schon mehrfach die Woche ändern kann..Was genau möchtest Du mit diesem Codeblock letztlich erreichen?
so, dass war tatsächlich der richtige Ansatz, so dass ich mit KI-Unterstützung eine recht ausgefeilte Lösung mit Helfer/Automation erstellen konnte - vielen Dank nochmal ausdrücklich für Deine Unterstützung!Wäre da nicht https://www.home-assistant.io/actions/modbus.write_register/ der richtige Ansatz?
Dafür kannst Du ggf. auch einfach hier fragen.ich muß noch ein paar Details debuggen
danach stelle ich die Lösung gerne rein...
input_number:
frischwasser_sollwert:
name: "Gewünschte Frischwassertemperatur"
min: 35
max: 90
step: 1
unit_of_measurement: "°C"
mode: box
# Modbus TCP Verbindung und Sensor für den Rückkanal
sensors:
- name: "Frischwassertemperatur Aktuell"
unique_id: frischwasser_temp_aktuell
address: 186
scan_interval: 10 # Prüft alle 10 Sekunden den Wert am Gerät
data_type: int32 # Entspricht Anzahl = 2 Registern (32-Bit)
scale: 0.1 # Rechnet z.B. 600 im Register in 60.0 °C für HA um
precision: 1
unit_of_measurement: "°C
- alias: "Modbus: Sollwert an Frischwasser senden"
id: modbus_sollwert_senden
trigger:
- platform: state
entity_id: input_number.frischwasser_sollwert
condition:
# Verhindert das Senden, wenn der Helfer gerade erst vom Rückkanal aktualisiert wurde
- condition: template
value_template: "{{ (trigger.to_state.state | float - states('sensor.frischwassertemperatur_aktuell') | float) | abs > 0.5 }}"
action:
- service: modbus.write_register
data:
hub: heizung_hub
address: 186
# Multipliziert den HA-Wert wieder mit 10 (z.B. 60 °C -> 600)
# Da int32 aus 2 Registern besteht, senden wir den Wert als Liste von zwei 16-Bit-Werten
value:
- "{{ ((trigger.to_state.state | float * 10) | int // 65536) }}"
- "{{ ((trigger.to_state.state | float * 10) | int % 65536) }}"
mode: restart
- alias: "Modbus: Rückkanal Frischwasser in UI spiegeln"
id: modbus_rueckkanal_empfangen
trigger:
- platform: state
entity_id: sensor.frischwassertemperatur_aktuell
condition:
# Verhindert das Überschreiben, während der Nutzer gerade in der UI tippt
- condition: template
value_template: "{{ (trigger.to_state.state | float - states('input_number.frischwasser_sollwert') | float) | abs > 0.5 }}"
action:
- service: input_number.set_value
target:
entity_id: input_number.frischwasser_sollwert
data:
value: "{{ trigger.to_state.state | float | round(0) }}"
mode: restart
type: entities
title: Frischwasserheizung
entities:
- entity: sensor.frischwassertemperatur_aktuell
name: Aktuelle Temperatur
icon: mdi:thermometer
- entity: input_number.frischwasser_sollwert
name: Gewünschte Temperatur
icon: mdi:thermometer-lines
...ist beim Kopieren hier verlorengegangen - in der modbus.yaml ist das Teil drinnebeiunit_of_measurement: "°Cbei dem Rückkanal scheint das schließende Anführungszeichen zu fehlen
- name: "FRIWASTA Zirkulationspumpe Status"
unique_id: friwa_zirkstatus
address: 284
input_type: holding
data_type: int32 # Verarbeitet die 2 gelesenen Register (32-Bit)
scan_interval: 2 # Abfrage-Intervall in Sekunden (anpassbar)
type: custom:mushroom-template-card
primary: Zirkulation
entity: sensor.friwasta_zirkulationspumpe_status
icon: mdi:power
grid_options:
columns: 12
rows: auto
color: |-
{% if states(config.entity) | float(0) < 50 %}
red
{% elif states(config.entity) | float(0) > 50 %}
green
{% endif %}
features_position: bottom
Großer Schritt von "die Hälfte funktioniert nicht und ich hab keine Ahnung warum" zu "das läuft ja alles", was?Fängt langsam an Spaß zu machen *g