Neu bei Home Assistant und direkt Modbus Kopplung

Ich möchte sozusagen einen Schalter auf der Oberfläche haben, wenn der auf "ein" ist schreibe ich den festen Wert (80 °C) auf den Bus. Das muss alle 4 min passieren, solange bis der Schalter wieder ausgeschaltet wird.
Kannst du hierzu mal kurz erklären warum das alle 4 Minuten passieren soll.


Scheint so als wenn ihr momentan genauso ratlos seit wie ich.
Hierzu werden mehr Informationen benötigt.

Ich habe jetzt mal einen Fehler auf meiner Heizung produziert. So kommst du an die Logs...

Gehe in die Einstellungen -> System
Screenshot_20221119_125841.jpg

Dann auf Logs
Screenshot_20221119_125853.jpg

Dann auf einen der Fehler:
Screenshot_20221119-125905_Home Assistant.jpg

Dann kommt das eigentliche Log
Screenshot_20221119_125932.jpg
 
Unabhängig warum wieso weshalb 4 Minuten, eine Anleitung für deinen "Workaround" :


Einstellungen, Geräte&Dienste, Helfer.
Dort kannst du einen Schalter erstellen. Nennt sich dort "Umschalten".

Jetzt machst du eine neue Automation, als Auslöser nimmst du Zeitraster und trägst bei Minuten /4 ein (genau so, also mit "/"). Der Auslöser feuert dann alle 4 Minuten.

Als Bedingung nimmst du Zustand, wählst deinen zuerst erstellten Schalter, bei Zustand wählst du "An".

Aktion ist dann halt dein Service mit deiner gewählten Temperatur.

Auf deinem Dashboard erstellst dir noch eine Karte, auf der du deinen Schalter anzeigen lässt und kannst den dann schalten.

Und zusätzlich folgst du mal den Rat von @alexamend um dein eigentliches Problem mal zu debuggen.
 
Nachtrag:

Ich hab noch was gefunden:
https://blog.cavelab.dev/2021/11/komfovent-c6-in-home-assistant/

Laut dem Link müsste es so gehen:
YAML:
service: modbus.write_register
data:
  value: "{{ ((states.input_number.hk1_sollwert.state | float) * 10) | int }}"
  hub: Systacomfort
  unit: 1
  address: 2
Das ist zwar im Grunde das selbe, was @alexamend und ich hier schon geschrieben haben, allerdings etwas anders geschrieben. Sollte ansich keinen Unterschied machen, aber probieren kannst du es ja.

Fürs weitere Debugging auch bitte mal unter Entwicklerwerkzeuge -> Template folgendes eingeben und Ergebnis hier posten:

YAML:
{{ states.input_number.hk1_sollwert }}

So kann man mal sehen, wie dein Helfer konfiguriert ist.
 
Hallo, vielen Dank erstmal für deine Bemühungen.
Ich versuche euch soviele Informationen zu geben wie ich kann.
Dann versuche ich mal eines nach dem anderen abzuarbeiten.

Das Fehlerlog hatte ich ja schon gefunden und in #19 gepostet.
Hier nochmal:


YAML:
Logger: homeassistant.components.modbus.modbus
Source: components/modbus/modbus.py:385
Integration: Modbus (documentation, issues)
First occurred: 12:25:22 (3 occurrences)
Last logged: 14:26:53

Pymodbus: Systacomfort: Exception Response(134, 6, IllegalFunction)






Alle 4 Minuten kommt aus der Anleitung des Heizungsreglers.
Der nimmt das als so eine Art "Lifecheck". Wenn nicht spätestens nach 5 Minuten der Wert erneuert geht der Regler davon aus das das "Leitsystem" ausgefallen ist, und geht auf seine eigenen Werte zurück.
 
Zuletzt bearbeitet von einem Moderator:
Nachtrag:

Ich hab noch was gefunden:
https://blog.cavelab.dev/2021/11/komfovent-c6-in-home-assistant/

Laut dem Link müsste es so gehen:
YAML:
service: modbus.write_register
data:
  value: "{{ ((states.input_number.hk1_sollwert.state | float) * 10) | int }}"
  hub: Systacomfort
  unit: 1
  address: 2
Das ist zwar im Grunde das selbe, was @alexamend und ich hier schon geschrieben haben, allerdings etwas anders geschrieben. Sollte ansich keinen Unterschied machen, aber probieren kannst du es ja.
Leider funktioniert das auch nicht.

Fehler wieder der gleiche:

YAML:
2022-11-19 14:58:26.255 ERROR (SyncWorker_1) [homeassistant.components.modbus.modbus] Pymodbus: Systacomfort: Exception Response(134, 6, IllegalFunction)
 
Zuletzt bearbeitet von einem Moderator:
Fürs weitere Debugging auch bitte mal unter Entwicklerwerkzeuge -> Template folgendes eingeben und Ergebnis hier posten:

YAML:
{{ states.input_number.hk1_sollwert }}

So kann man mal sehen, wie dein Helfer konfiguriert ist.


Hier das Ergebnis.

YAML:
<template TemplateState(<state input_number.hk1_sollwert=60.0; initial=None, editable=True, min=30.0, max=80.0, step=1.0, mode=box, unit_of_measurement=°C, friendly_name=HK1 Sollwert @ 2022-11-19T14:58:15.043261+01:00>)>


Ich hätte mal gesagt das ist doch in Ordnung?
 
Zuletzt bearbeitet von einem Moderator:
Ich habe den Fehler gefunden.
Der Wert und somit auch die Variable müssen in eckige Klammern gepackt werden[ ].


YAML:
service: modbus.write_register
data:
  value: ["{{ ((states.input_number.hk1_sollwert.state | float) * 10) | int }}"]
  hub: Systacomfort
  unit: 1
  address: 2
 
Ja jetzt geht es.
Ich wollte nochmal im Entwicklermodus den Dienst testen und hatte 550 eingegeben, und dann ausgeführt, da hat er das auch nicht übernommen. dann fiel mir ein das ich gestern beim Testen den Wert in eckige Klammern gesetzt hatte. [550].
Das geändert und es funktionierte. Dann habe ich gedacht das ich vielleicht die von dir angegebene Variable auch einfach mal in die eckige Klammer packe, und siehe da: es funktionierte.
 
Ich habe da noch ein Problem mit der Automation.
Das Auslösen funktioniert beim ersten Mal, aber dann nicht mehr.
Die Automation erkennt zwar wenn ich den Schalter Ein- bzw. Ausschalte, aber triggert sich anscheinend nicht neu, wenn ich wieder einschalte. Auch nicht wenn ich mehr als 4 Minuten warte.
Aber jetzt gesehen, ich muss dann den Schalter anlassen, und wenn wieder 4 Minuten um sind wird wieder getriggert.
Jetzt kapiert. Ich dachte das Einschalten des Schalters würde auch triggern, tut es aber nicht.
 
Zuletzt bearbeitet:
Okay, das werde ich morgen probieren.
Habe jetzt auch den änderbaren Wert als Variable eingebunden.

Vielen Dank für eure Geduld und Hilfe.

Habe parallel an der Einbindung von KNX gearbeitet und da auch den ersten Erfolg.
Kann schon Werte lesen.
Jetzt gibt erstmal Fleißarbeit, die ganzen Input Werte der beiden Busse definieren.

Dann komm ich wieder zum nerven!😂
 
In HA 2022.12 ist eine Modbusänderung.
Es muss dann heißen
YAML:
hvac_mode_register:
  address: ...
  values:
    state_off: 0
    state_heat: 1
    state_cool: 2
 
Hallo vielen Dank für deinen Hinweis.
Betrifft mich aber nicht da ich keine hvac Modes benutze.
Aber bestimmt für viele die mal auf diesen Thread stoßen sehr wichtig.
 
Hallo Barry Ricoh,

Magst Du mir vielleicht genauer verraten was du genau in die Config eingefügt hast und wie du es hinbekommen hast das du manuelle Werte mittels Schieber oder vglb. hinbekommen hast?
Ich betreibe selber eine Systa Comfort 2, habe auch alle Modbus Daten (pdf) zur Hand.

meine modbus.yaml sieht derzeit so aus:

YAML:
- name: "SystaComfort-II.r2"
  type: tcp
  host: 192.168.1.146
  port: 502

    
  sensors:
    - name: "Außentemperatur Systa"
      unique_id: Außentemp Systa
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      unit_of_measurement: °C
      address: 0
      data_type: int16
      
    - name: "Vorlauftemp"
      unique_id: VLHK
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      unit_of_measurement: °C
      address: 1
      data_type: int16
      
    - name: "Warmwasser"
      unique_id: WW_Temp
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      unit_of_measurement: °C
      address: 3
      data_type: int16
      
    - name: "Rücklauftemp "
      unique_id: RLHK
      scan_interval: 100
      slave: 1
      input_type: input
      scale: 0.1
      unit_of_measurement: °C
      address: 2
      data_type: int16
      
    - name: "Sollwert Heizkreis"
      unique_id: VL Soll
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 0.1
      unit_of_measurement: °C
      address: 2
      data_type: uint16
      
    - name: "Status Kessel"
      unique_id: Kesselstatus
      scan_interval: 60
      slave: 1
      input_type: holding
      scale: 1
      address: 41
      data_type: uint16
      
    - name: "Sollwert Warmwasser"
      unique_id: WW Soll
      scan_interval: 100
      slave: 1
      input_type: holding
      scale: 1
      address: 8
      data_type: uint16

Besten Dank schon mal
webbid
 
Hi webbid,
sorry für die späte Antwort.
Vielleicht erstmal eine kurze Erklärung zu meiner Anlage.
Ich habe eine Gastherme, und Solar auf dem Dach und einen Pelletofen von Wodtke, alles geht in einen Espresso Speicher.
Ich nutze den 2. Heizkreis der Systa um dort die Temperaturen des Pelletofen abzugreifen.
Jetzt habe ich einen Switch "Pelletofen Betrieb"(input boolean) und ein Sollwert "Sollwert bei Ofenbetrieb" (input number) im Dashboard, wenn ich zB den Pelletofen anmachen will, dann setze ich den Sollwert des zweiten Heizkreis auf eine Gradzahl x damit der Pelletofen (der ja auch von der Systa leistungsmäßig gesteuert wird) auf volle Leistung anzufordern.
Den im Helfer hinterlegten Wert schreibe ich dann als Sollwert für den 2. Heizkreis auf die Systa mittels einer Automation.

YAML:
alias: Pelletofen max
description: Heizkreis 2 bekommt x Grad als Sollwert vorgegeben.
trigger:
  - platform: time_pattern
    minutes: /4
  - platform: state
    entity_id:
      - input_boolean.ofen_max
    to: "on"
condition:
  - condition: state
    entity_id: input_boolean.ofen_max
    state: "on"
action:
  - service: modbus.write_register
    data:
      address: 3
      slave: 1
      hub: Systacomfort
      value:
        - "{{ ((states.input_number.hk2_sollwert.state | float) * 10) | int }}"
mode: single

Pelletofen.jpg
Ich hoffe ich konnte dir etwas helfen, du kannst mir sonst aber auch gerne ne PN schreiben, oder hier weitermachen.
Beste Grüße.
 
Hallo Barry Ricoh,

Danke dir.
Ich schaue mir das mal mit dem Sollwert meiner Warmwassertemperatur an, so ganz klar ist es mir noch nicht wie ich das in Homeassistant integriere.
Mal sehen was Homeassistant oder die Systa dann zu meckern habe, wenn ich den Code entsprechend einfüge
 
Hallo Barry Ricoh, Hallo alle,

ich würde einen Thread mit den gleichen Namen aufmachen, stehe aber viel weiter am Anfang. Ich habe Home Assistant installiert und konfiguriert, und der normale Smart Home Kram funktioniert so weit auch. Ich bin noch in der Test- und Experimentierphase.

Ich finde den Gedanken spannend, meine Heizung ebenfalls in Home Assistant einzubinden und habe auch eine SystraComfort-II. Allerdings habe ich den bisherigen Vormittag damit verbracht zu verstehen was der Modbus ist und wie ich den in Home Assistant einbinde. Bisher weiß ich leider noch nicht einmal, wo ich welchen Code einbinde.

Kannst du (ihr) mir vielleicht eine Anleitung geben, wie ich die verschiedenen Werte der Heizung in Home Assistant bekomme? Momentan schreibe ich jeden 1. des Monats die Werte (Gesamt kWh der Solaranlage und verbrauch der Pellets) in eine Excel-Tabelle, um sie für mich auszuwerten.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.467
Beiträge
45.969
Mitglieder
4.096
Neuestes Mitglied
Tuxnet
Zurück
Oben