« Heizung, Lüftung, Klima  |

DIY Alternative zu Nibe Modbus Modul

Teilen: facebook    whatsapp    email
 
 1  2 ... 3 ... 19  20  21  22 ... 23 ... 49  50  51 
  •  chrismo
  •   Gold-Award
29.1.2019 - 25.4.2024
1.009 Antworten | 62 Autoren 1009
127
1136
Weil es hier immer wieder zu Diskussionen zum Thema Modbus-Anbindung der Nibe kommt, wollte ich hier mal kurz meine Erfahrungen mit dem Nachbau einer DiY Lösung, auf Basis von im Netz vorhandener Infos, teilen. Für mich war es eine Spielerei und Zeitvertreib der letzten Tage. Der Post dient vor allem als Speicherort für meine gesammelten Infos und evt. dem Austausch von Leuten, die das so oder so ähnlich bei sich installiert haben. Ich kann und will hier keine Empfehlung abgeben, sowas selbst zu machen!

Die Lösung basiert im Wesentlichen auf den Nibe Bindings von openHAB (https://www.openhab.org/addons/bindings/nibeheatpump/), das eine Umsetzung Modbus auf UDP macht. Infos zur Funktionsweise findet man auf der openHAB Seite bzw. dem entsprechenden github Repo.

Die grobe Vorgangsweise war folgend:
1) Auf einen Arduino mit Ethernet Shield und RS485 Adapter die NibeGW Software (Teil des Bindings) installieren. Der Ardunio Code muss dabei an die eigenen Netzwerkeinstellungen angepasst werden. 

2) Den Arduino an die Wärmepumpe und ans LAN anschließen.

3) Die Nibe Modbus Manager Software auf einem Rechner installieren und bis zu 20 Register auswählen, die periodisch von der Wärmepumpe exportiert werden sollen. Diese Konfig muss gespeichert und per USB-Stick auf die WPWP [Wärmepumpe] übertragen werden.

4) Das Modbus Modul in der WPWP [Wärmepumpe] aktivieren. Wenn alles geklappt hat, bleibt die Wärmepumpe im Normalbetrieb. Falls irgendwas bei der Kommunikation mit dem Arduino schief geht, wird eine Fehlermeldung am Display ausgegeben und die WPWP [Wärmepumpe] geht in einen Alarmmodus.

5) Das nibeopenhab Binding in openHAB installieren und konfigurieren.

zu 1) Man könnte dazu auch einen Raspberry Pi mit RS485 Adapter verwenden, auf dem dann auch openHAB selbst läuft. Das finde ich aber nicht optimal. Ein Pi wäre mir da nicht robust genug. Selbst ein einfacher Neustart des Pis würde zu einem Fehler der WPWP [Wärmepumpe] führen und ein SD-Kartenfehler wäre sowieso ungemütlich.

zu 5) Da ich derzeit noch nicht weiß ob es openHAB oder was anderes wird - über Erfahrungen bzw. Empfehlungen würde ich mich freuen(!) - habe ich das Binding so adaptiert, das es ohne openHAB läuft. Derzeit verwende ich die Log-Dateien dieses "Stand-Alone Bindings" zur Speicherung der Werte. Eine Erweiterung für "richtige" Ausgabeformate bzw. Kanäle (Umsetzung auf KNX wurde hier mal in einem anderen Thread diskutiert) wäre aber von hier weg leicht machbar.

von energiesparhaus

  •  nibepi
2.6.2020  (#401)

zitat..
JanRi schrieb: Auf RW schalten (mount -o remount,rw /) und dann die Daten F1155.json (oder F1255.json) bearbeiten. Wo sie bei der 1.1 liegt, weiss ich nicht, aber am besten einfach danach suchen:

 /home/pi/.node-red/node_modules/nibepi/models/


1
  •  Becker
  •   Gold-Award
2.6.2020  (#402)
Super, habe es geändert -> jetzt läuft node red nicht mehr.
Man kommt kurz drauf, danach ist es wieder weg. "connection lost"

1
  •  JanRi
  •   Gold-Award
2.6.2020  (#403)
Hast du die Kommasetzung beachtet?

1
  •  Becker
  •   Gold-Award
2.6.2020  (#404)
hab´s von dir kopiert und noch mal kontrolliert.

jetzt darf ich die SD Karte noch mal neu machen, Hurra.

1
  •  JanRi
  •   Gold-Award
2.6.2020  (#405)

zitat..
Becker schrieb: jetzt darf ich die SD Karte noch mal neu machen, Hurra.

 Warum das? Das ist eigentlich nur nötig, wenn die Kiste genau im unpassenden Moment abschmiert.

Wichtig ist, dass zwischen den Einträgen jeweils Kommata sind. 

Falls es wieder nicht klappt, schreib mir eine Mail, dann schicke ich dir das komplette File (da sind auch noch ein paar Register für die Schemata zum Heizen dabei).

Btw.: Noch zwei Erkenntnisse, die weiter oben schon stehen, aber nicht oft genug gesagt werden können:

Werte, die man am Gerät in 1K-Schritten einstellen kann, aber den Teiler 10 haben, kann man per Modbus auf 0,1K genau einstellen. Das wird am Gerät dann auch so angezeigt, geht beim manuellen Verstellen aber wieder kaputt. Beispiel ist die Heizgrenze, aber auch die IT-Zieltemperatur. Leider gehören die Werte der Heizkurve nicht dazu, sonst könnte man die sehr fein einstellen.

Werte, die am Gerät Grenzen haben, können per Modbus auch anders eingestellt werden (dazu muss bei NibePi aber vermutlich das json-File angepasst werden, meine Software ignoriert die Grenzen). Damit kann man z.B. das Maximum der WT-Pumpe in den automatischen Modi für Heizen und WW WW [Warmwasser] niedriger als 50% einstellen.

2
  •  Becker
  •   Gold-Award
3.6.2020  (#406)
R/W ging nicht mal mehr, konnte also nichts mehr rückgängig machen.
Muss man vorher Node-RED stoppen bevor man in der F1255.json schreibt ?
Müssen die Register in der F1255.json in der richtigen Reihenfolge stehen? Habe pc in die erste Spalte eingetragen.
Egal.

So konnte ich wenigstens eine kleine Anleitung verfassen zur Erstinbetriebnahme.
Ist eine 5min Sache den Nipepi einzurichten, das längste ist die SD-Karte zu beschreiben in Windows.

Anderes Thema:
Sollte man den NibePi das Internet verbieten in der FritzBox ?
Er kriegt ja auch keine Updates (Sicherheitsupdates vom Betriebssystem z.B.).

1
  •  nibepi
3.6.2020  (#407)

zitat..
Becker schrieb: Sollte man den NibePi das Internet verbieten in der FritzBox ?
Er kriegt ja auch keine Updates (Sicherheitsupdates vom Betriebssystem z.B.).

 NibePi will work without internet, there is no automatic updates anyway. 


1
  •  Becker
  •   Gold-Award
4.6.2020  (#408)
Danke.
Wie ich das log.set abhole, habe ich leider immer noch nicht verstanden.
Muss dazu der USB Stick permanent drin sein ?

zitat..
If you enable log.set in your WPWP [Wärmepumpe] it just works in NibePi. The registers will get updated every 0,5 seconds and are removed from the regular slow que.



1
  •  Beagle1987
4.6.2020  (#409)
Ich habe gestern auch mein NibePi mit dem 1.1 clean Image in Betrieb genommen. Danke für die Flows Becker. Ist echt ein schönes Dashboard. Bin leider noch kompletter Anfänger mit Node Red und habe noch überhaupt keinen Plan.
Bei mir kommen nur gewisse Register gar nicht an (z.B. Kompressorstarts) und andere zeigen komische Werte:


2020/20200604110956.jpg

Als nächstes würde ich gerne die Werte per MQTT in Openhab integrieren. Aber auch da muss ich mich erst einlesen :)

zitat..
Becker schrieb: Danke.
Wie ich das log.set abhole, habe ich leider immer noch nicht verstanden.
Muss dazu der USB Stick permanent drin sein ?

Ich habe gestern den USB Stick angesteckt, dann Protokolierung aktivieren und dann den USB wieder abgezogen. Scheint so wie wenn die 11 Register viel schneller upgedated werden also die anderen.

LG


1
  •  JanRi
  •   Gold-Award
4.6.2020  (#410)

zitat..
Becker schrieb: Wie ich das log.set abhole, habe ich leider immer noch nicht verstanden.
Muss dazu der USB Stick permanent drin sein ?

Nein. Reinstecken, dann ins USB-Menü, Logging anschalten, wieder abschalten und dann raus. Das sollte ausreichen. Im Handbuch zum Modbus 40 steht, dass man nur anschalten soll und dann rausziehen, aber es geht auch ohne laufendes USB-Log.

Ich hatte in den ersten Wochen den USB-Stick ohnehin noch als Reservelog mit dran, habe das dann aber beendet, weil die andere Lösung sehr stabil ist.


zitat..
Beagle1987 schrieb: Scheint so wie wenn die 11 Register viel schneller upgedated werden also die anderen.


Siehe Handbuch zum Modbus 40 (wobei das nicht ganz stimmt).

Die bis zu 20 Register (20 x 16 Bit oder entsprechend weniger mit 32 Bit) aus dem LOG.SET werden alle 2 Sekunden gesendet. Dabei ist es egal, ob da ein oder 20 Register drinstehen, es ist genau eine Nachricht.

Alle anderen Register werden abgefragt. Das dauert 2 Sekunden pro Register. Wenn du also 20 Register so abfragst, hast du alle 40 Sekunden einen neuen Wert. Mit LOG.SET hat man das alle 2 Sekunden für alle enthaltenen Register gleichzeitig.




1
  •  JanRi
  •   Gold-Award
4.6.2020  (#411)

zitat..
Beagle1987 schrieb: andere zeigen komische Werte:

 In NibePi 1.0.6 waren einige der Datentypen falsch berechnet. Ich weiss aber nicht, ob das in der neuen Version behoben ist.

Für u32 (das sind die WMZ) ist richtig:

1. Byte + 2^8 * 2. Byte + 2^16 * 3. Byte + 2^24 * 4. Byte, wobei die Position der Bytes davon abhängt, ob es Nachrichtentyp 104 (LOG.SET) oder 106 (Lese-Antwort) ist. Bei 106 stehen sie direkt nacheinander, bei 104 sind es 2 Byte, dann 2 Byte irrelevant, dann nochmal 2 Byte. Das liegt daran, dass 32-Bit-Daten im LOG.SET (Nachrichtentyp 104) eben 2 Positionen brauchen und an der Stelle der überlesenen beiden Bytes normalerweise das zweite Register stehen würde (ein 32 Bit-Wert braucht 2 der für 16 Bit Daten vorgesehenen Plätze).

Einfach mal die Methode decodeMessage anschauen (falls die noch so heisst).


1
  •  Beagle1987
4.6.2020  (#412)
Ich habe jetzt sowohl die WMZ als auch die Verdichterlaufzeit in mein Log.Set hinzugenommen. Nun passen beide Werte.

1
  •  Becker
  •   Gold-Award
4.6.2020  (#413)
Habs gemacht, aber es kommt nix:

2020/20200604890490.jpg

1
  •  Becker
  •   Gold-Award
4.6.2020  (#414)

zitat..
Beagle1987 schrieb: Ich habe jetzt sowohl die WMZ als auch die Verdichterlaufzeit in mein Log.Set hinzugenommen. Nun passen beide Werte.

 kannst du mir beschreiben wie/wo ?
An der WPWP [Wärmepumpe] mit USB Stick kann ich nichts auswählen, außer Log an/aus und das Intervall.

1
  •  Becker
  •   Gold-Award
4.6.2020  (#415)
Man bin ich blöd

zitat..
It's called LOG.SET same as the log procedure in the heatpump with the USB stick.
Just create a file called LOG.SET on a USB stick, name your registers, one per line (20 reg max)
40004
40008
40012

etc...
Put the stick in the WPWP [Wärmepumpe] and start log. then end log. You're done.



Für alle noch mal in deutsch:
Textdatei am PC erstellen, dort z.B.
40012
40013
40014
40015
40016
40017
40018
40072
43005
43136


rein schreiben, das ganze speichern und dann als LOG.SET umbennen, nicht LOG.SET.txt !

Dann auf einen Stick in die WPWP [Wärmepumpe], jetzt erscheint die Nachricht "log.set ignorieren" zusätzlich.

P.S. die Register müssen in in abfolgender Reihenfolge stehen, sonst klappt es nicht !

War das auch vielleicht der Grund warum mir beim hinzufügen der passiven Kühlung alles abgestürzt ist ?!?

Sprich ich hätte den PC-Register in die passende Reihenfolge einfügen müssen emoji

1
  •  JanRi
  •   Gold-Award
4.6.2020  (#416)
Oder: Man lädt sich den Nibe Modbus Manager herunter und erzeugt LOG.SET damit.

1
  •  Becker
  •   Gold-Award
4.6.2020  (#417)
Jetzt sind folgende Register tot:
Inverter Leistung + durchs. Leistung + Strom.
43141 + 43147 + 43375

Wie kann ich die Log.set wieder entfernen ?

Oder ist die Abfrage jetzt nicht mehr möglich auf grund der Vielzahl der restlichen Register, die nun nicht mehr an die Reihe kommen ?
Sauggas bleibt nämlich auch warm.

1
  •  JanRi
  •   Gold-Award
4.6.2020  (#418)

zitat..
Becker schrieb: Wie kann ich die Log.set wieder entfernen ?

 Neue drüberschreiben.

Es gibt IMMER eine LOG.SET. Wenn du keine installiert hast, wird das gesendet, was normalerweise im USB-Log landet.

Es gibt aber im USB-Log-Menü auch die Option "LOG.SET ignorieren". Habe ich aber nie getestet.


zitat..
Becker schrieb: Jetzt sind folgende Register tot:


Das dürfte ein Problem von NibePi bzw. der Verknüpfung mit NodeRed sein.

Prinzipiell - aus Sicht der WPWP [Wärmepumpe] - sieht es so aus, wie oben beschrieben. Es gibt nur zwei Fälle:

Register in LOG.SET: Wird alle 2 Sekunden gesendet
Register nicht in LOG.SET: Muss explizit angefordert werden, wobei es eine Anforderung alle 2 Sekunden gibt. Wie man das in NodeRed macht, weiss ich nicht, da nie ausprobiert.

Ich mache das aus dem Logger via MQTT an das UDP-Modul, das dann per UDP die Daten anfordert und nach Erhalt (wieder per UDP) per MQTT zurückgibt.


1
  •  Becker
  •   Gold-Award
4.6.2020  (#419)

zitat..
JanRi schrieb:
__________________
Im Beitrag zitiert von Becker: Wie kann ich die Log.set wieder entfernen ?

 Neue drüberschreiben.

Es gibt IMMER eine LOG.SET. Wenn du keine installiert hast, wird das gesendet, was normalerweise im USB-Log landet.

 definitiv nicht!
auf den USB Stick hat er die wichtigsten Daten geloggt, viele von denen die ich heute hinzugefügt hatte ! Aber davon war keine einzige vorher schnell !




1
  •  nibepi
4.6.2020  (#420)
I'm having some problem keeping up with the translating here.
Are there problems with how registers are interpreted?
Give me an example, does it work with log.set but not with the slow method?
Summarize please :)
I thought I had made it right, but my values in the heatpump are not that long that it's stored in more than the 16 bit part.


1
  •  JanRi
  •   Gold-Award
4.6.2020  (#421)

zitat..
Becker schrieb:  definitiv nicht!


Getestet hatte ich das nicht, von daher kann meine Aussage falsch sein.

zitat..
nibepi schrieb: I'm having some problem keeping up with the translating here.


I guess the main question is how NodeRed triggers requests and how it deals with registers from LOG.SET. The former arrive as type 106 message and the other as 104 (I refer to them in this way now).

Is it right that every register from type 104 message is immediately available in NodeRed? They are updated every two seconds and are therefore very fresh.

With respect to type 106 messages, they need to be requested. So I guess the main point for Becker is how to trigger this from NodeRed.

Is there any difference in handling? I guess registers from LOG.SET (which are contained in type 104 messages) are NOT requested, right? The others are requested (at least this is the way I do it).


zitat..
nibepi schrieb: I thought I had made it right, but my values in the heatpump are not that long that it's stored in more than the 16 bit part.


As I have currently no NibePi installation because I'm very happy with my UDP-solution and I do not have time to search: Can you point (link to git or similar) me directly to the file containing the decoding part (in 1.0.6 this was method decodeMessage? Or, just post the function here. Then I could check it based on the experiences with my decoder. This way, we can make sure that is is correct.




1


Beitrag schreiben oder Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]


next