« Elektrotechnik & Smarthome  |

Homeassistant modbus und mqtt

Teilen: facebook    whatsapp    email
  •  Peter2
  •   Bronze-Award
28.11.2020 - 15.1.2021
13 Antworten | 4 Autoren 13
13
Servus erstmal!
Folgende Ausgangssituation:
Ich habe mir einen Raspberry pi zugelegt und darauf läuft neben rasbian auch noch Homeassistant. 
Nun habe ich die für mich relevanten Daten von der Wärmepumpe bereits mittels modbus in Homeassistant importiert. Soweit so gut. 
Nun möchte ich mittels mqtt einige Daten weiterleiten. Die Integration von mqtt ist bereits installiert und einen Broker habe ich auch schon. Aber trotz suche über diverse Foren bin ich noch immer nicht richtig schlau geworden wie ich die Daten jetzt von Homeassistant an den Broker schicken kann. Mein Englisch ist extrem eingerostet und da komme ich halt extrem schwer voran weil auch die meisten Foren hierfür nur in Englisch geführt werden. 
Der Dienst heißt mqtt publish. Soweit auch klar. Topic für jeden Sensor ein eigenes ist auch klar. Leider weiß ich jetzt nicht wie ich den Sensor im Dienst verknüpft bekomme. 
Wenn jemand hier Hilfe leisten kann wäre ich sehr dankbar.
MfG 
Peter 

-------
Update des energiesparhaus-Teams: Im Verlauf des Threads wird die Verwendung diverser Tools diskutiert. Hier ist der Download der von Peter2 bereitgestellten Tools:
https://www.energiesparhaus.at/download/modbusundmqtttools.zip
Hinweis: Immer auf eigene Gefahr, keine Haftung oder Gewährleistung, weder von energiesparhaus.at noch von Peter2.

  •  andiandi
1.12.2020  (#1)
Hallo,
klingt interessant und ich habe das auch vor. Bin aber noch einen Schritt hinter dir und  kann dir leider aktuell noch nicht helfen bei deiner Frage, hätte aber eine Frage an dich, wenn es möglich wäre.
ich habe eine KNV Greenline Wärmepumpe und möchte nun auch über Home Assistant und Modbus TCP die Werte abgreifen, dies sollte laut Kundendienst möglich sein - nur habe ich es bis jetzt noch nicht geschafft - wie bist du da vorgegangen? hast du eventuell eine Beispielkonfiguration von 1-2 Werten vom configuration.yaml, wo ich mir das ansehen kann? Bzw. hast du eventuell einen Link für eine Doku, nach der du vorgegangen bist? Bin leider mit Modbus ein absoluter Neuling und würde hier voran kommen wollen.
In das mqtt Thema muss ich mich dann auch noch ein bisschen einlesen, aber hier kann ich dich dann vorr. unterstützen.
Danke  

1
  •  Peter2
  •   Bronze-Award
2.12.2020  (#2)
Wichtig sind die Einrückungen. Sie bestehen aus zwei bzw vier Leerzeichen. Nicht den Tabulator verwenden. 

2020/2020120235167.jpg
Wenn du hassos hast dann geht es eh über den Confiurationseditor. Wenn du Homeassistant als Integration auf rasbian installiert hast musst du als root editieren.
Die Datei heißt configuration.yaml
Die Sensoren werden bei dir allerdings eventuell andere Register verwenden. 
MfG 
Peter

1
  •  andiandi
5.12.2020  (#3)
Danke, es sieht so aus, als würde ich Daten über Modbus TCP nun erhalten können - zumindest erhalte ich mal die Außentemperatur schon.

bzgl Daten über MQTT bereit stellen habe ich das gefunden:
https://community.home-assistant.io/t/use-mqtt-service/40483/6

mit deepl.com funktioniert das Übersetzen von Englisch in Deutsch eigentlich sehr gut

hoffe, es hilft dir weiter.
Andi

1


  •  Peter2
  •   Bronze-Award
5.12.2020  (#4)
Danke. Ich werde wohl die Sensoren direkt von pymodbus zu mqtt schicken und dann in Homeassistant als mqtt Sensoren integrieren. Das sollte eigentlich auch funktionieren und ist laut meinem Vater wohl einfacher. Ich benötige einige Sensoren um meine Grundwasserpumpe zu steuern. (Grundwasserwärmepumpe) außerdem möchte ich auch noch cop und einige andere Dinge berechnen lassen und das geht so herum schneller und einfacher.
Mein Vater ist der Linux Experte in der Familie und hilft mir wo er nur kann. Mit Homeassistant kennt er sich nicht so gut aus aber dafür mit dem Rest drum herum umso besser.
MfG 
Peter 

1
  •  andiandi
5.12.2020  (#5)
Okay, hört sich gut an. Ich selbst bin mit Linux auch nie tiefer in Berührung gekommen. 
Danke inzwischen und alles gute für dein Projekt!


1
  •  Peter2
  •   Bronze-Award
9.12.2020  (#6)
Also irgendwas mache ich falsch. 
Hab nun einen mqtt Sensor in Homeassistant aktiviert aber wenn ich die Sensoren einzeln angebe kommt nur "unbekannt " und kein einzelner Sensor. Wenn ich mit "# " arbeite kommt nur eine einzige Wurscht mit Meldungen.
Vielleicht habe ich etwas übersehen?
MfG 
Peter 

1
  •  Peter2
  •   Bronze-Award
14.12.2020  (#7)
Habe nun mqtt und modbus am laufen.
Endlich. Jetzt möchte ich noch Dinge wie mehr Brauchwasser über modbus aktivieren. Das geht zwar auch über die input Register aber mich beschleicht das Gefühl das dies eigentlich über modbus coils aktiviert wird. Zumindest über die myuplik app. Leider findet man überhaupt nix über die Nibe und modbus coils. 
Gibt es jemanden der mehr Infos dazu hat? 
MfG 
Peter 

1
  •  Peter2
  •   Bronze-Award
30.12.2020  (#8)
Für die Interessierten:
Ich habe jetzt einige kleine Tools für Modbus und MQTT zur Verfügung.
Voraussetzungen sind: Linux basiertes System mit Python 3.9 oder höher. Mosquito für MQTT. Bei einigen wird ein Rasberry Pi benötigt (GPIO Steuerung und Sensoren).
Es handelt sich um Opensource Software. Diese darf gerne geteilt, verändert oder sonst was werden. Sie darf jedoch nicht als Produkt komerziell vertrieben werden, siehe Copyright Info in den einzelnen Tools. Der Copyrightinhaber übernimmt keinerlei Haftung für eventuelle Schäden die durch Verwendung der Tools entstehen.
Was ich jetzt noch brauche ist ein Webspace oder ähnliches um die Tools zu teilen oder ich sende sie an die Interressenten per Mail.
MfG
Peter

1
  •  energiesparhaus
  •   Dieses Logo kennzeichnet einen Beitrag des energiesparhaus.at-Teams
31.12.2020  (#9)
Wir haben es jetzt mal zum Download bereitgestellt und werden den Link auch noch oben im Ausgangsthread eintragen:
https://www.energiesparhaus.at/download/modbusundmqtttools.zip

1
  •  Peter2
  •   Bronze-Award
31.12.2020  (#10)
Danke vielmals 
MfG 
Peter 

1
  •  Peter2
  •   Silber-Award
4.1.2021  (#11)
Folgendes Problem ist aufgetreten:
Ich versuche gerade mir den aktuellen cop der Wämepumpe berechnen zu lassen.
Hierfür nutze ich den Template Sensor von Homeassistant.
 - platform: template
    sensors:
      cop:
        value_template: "
        {% set vl = states('sensor.vl') | float %}
        {% set rl = states('sensor.rl') | float %}
        {% set vol = states('sensor.vol') | float %}
        {% set gesamtleistung = states('sensor.gesamtleistung') | float %}
        {% set verdichter = states('sensor.verdichterleistung') | float %}
        {% if gesamtleistung !=0 %}
        {{ ((vl - rl) * vol *60 *1.16111) / gesamtleistung }}
        {% else %}
        0
        {% endif %} "
        friendly_name: "Cop"
        unit_of_measurement: p
Soweit so gut.
Leider ergibt das aber ein Problem wenn man Brauchwasser auf Luxus
 stellt. Der Rücklauf wird kurzzeitig wärmer als der Vorlauf und der cop würde ins minus gehen. Des Weiteren ergibt der Sensor unglaubwürdige Werte sobald der Verdichter steht.
Also habe ich folgenden code probiert.
 - platform: template
    sensors:
      cop:
        value_template: "
        {% set vl = states('sensor.vl') | float %}
        {% set rl = states('sensor.rl') | float %}
        {% set vol = states('sensor.vol') | float %}
        {% set gesamtleistung = states('sensor.gesamtleistung') | float %}
        {% set verdichter = states('sensor.verdichterleistung') | float %}
        {% if gesamtleistung !=0 , (vl-rl) >0 , vol !=0 , verdichter !=0 %}
        {{ ((vl - rl) * vol *60 *1.16111) / gesamtleistung }}
        {% else %}
        0
        {% endif %} "
        friendly_name: "Cop"
        unit_of_measurement: p
Das Problem ist das jetzt keine der Bedingungen mehr erkannt wird. Also der Beistrich funktioniert nicht. Strichpunkt habe ich auch schon probiert. Selbes Ergebnis. 
Ich weiß das der cop eine einheitenfreihe Größe ist aber ohne wird das nix mit einem Graph. 
Hat hier jemand einen Tipp?
MfG
Peter

1
  •  taliesin
15.1.2021  (#12)
Gleich vorweg ich bin kein home assistant geek, aber hast du überlegt ob du ev. ein python-script einbindest, soweit ich das gelesen habe, kann man einen service mit so einem hinterlegen und alternativ:
Du hast oben ja schon etwas von pymodbus geschrieben, was hält dich davon ab, den Teil einfach als Pythonprogramm zu erstellen und die gewünschten Daten dort zu errechnen (MQTT subscribe auf deine Sensoren und einen publish mit dem COP etc).

Dieses Gedrösel in irgendwelchen Pseudosprachen in diesen smart home monstern ist genau der Grund warum ich mir das spare, siehe https://www.energiesparhaus.at/forum-was-benuetzt-ihr-openhab-iobroker-home-assistent-fhem/59960

1
  •  Peter2
  •   Silber-Award
15.1.2021  (#13)
Danke. 
Wird jetzt auch über ein python Script gemacht. Zum Glück unterstützt mich mein Vater mit dem programmieren weil ich mein letztes Programm unter Turbo Pascal geschrieben habe und das ist schon eine gefühlte Ewigkeit her. Man braucht halt einfach Zeit um die entsprechende Logik und Geduld wieder aufzubringen.
MfG 
Peter 

1


Beitrag schreiben oder Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]

Nächstes Thema: [Gelöst] Elektriker für OÖ gesucht