« Heizung, Lüftung, Klima  |

DIY Alternative zu Nibe Modbus Modul

 
Teilen: facebook    whatsapp    email
Zusammenfassung anzeigen (Beta)
 1  2 ... 3 ... 41  42  43  44 ... 45 ... 49  50  51 
  •  chrismo
  •   Gold-Award
29.1.2019 - 29.11.2024
1.010 Antworten | 62 Autoren 1010
127
1137
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 WP WP [Wärmepumpe] übertragen werden.

4) Das Modbus Modul in der WP WP [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 WP WP [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 WP WP [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

  •  cacer
  •   Gold-Award
3.4.2022  (#841)
nur der eine stick.
kabel werde ich überprüfen, wenn es nicht klappt, nachdem ich nochmal neu aufgesetzt habe.
nach etlichen versuchen hab ich die nerven verloren und die sd-karte neu beschrieben.

und genau da könnte der fehler sitzen... die karte lies sich schon nicht mehr formatieren und die verifizierung nach aufspielen des image schlug grad fehl.
eventuell hat die ne macke.
16gb adata karte. 5 jahre alt aber eigenlich noch fast unbenutzt. stecke seit kauf im rpi3.

ich teste das grad mit ner 64gb sandisk, die allerdings schon einige zeit im HTC werkelte.

welche karten sind als zuverlässig anzusehen?

ich setz jetzt neu auf und berichte.
danke für deine unterstützung.

edit: beim zweiten mal geht das schon viel flüssiger von der hand :)

edit:
nur leider funktioniert das weiterhin nicht. gleiche fehlermeldung.
entweder hat der stick den geist aufgegeben oder das kabel zickt.
hab zwei andern vom kat7 kabel genommen und die sind sehr empfindlich... morgen mal nachschauen.
feierabend ;(

1
  •  Becker
  •   Gold-Award
4.4.2022  (#842)
ich nutze 16GB von Sandisk, wenn du was noch zuverlässigeres haben willst:
https://www.berrybase.de/raspberry-pi/raspberry-pi-computer/speicherkarten/raspikey-plug-play-emmc-modul-f-252-r-raspberry-pi-32gb?c=347

1
  •  Andreas90
  •   Bronze-Award
4.4.2022  (#843)
Wenn du microsd Karten willst für einen zuverlässigen Langzeiteinsatz kann ich welche auf pSLC Basis empfehlen (ich kaufe die bei swissbit, bis jetzt kein Ausfall)

Echtes SLC ist mir zu teuer

1
  •  Becker
  •   Gold-Award
4.4.2022  (#844)
Hast du einen Link?

1
  •  cacer
  •   Gold-Award
4.4.2022  (#845)
das ist gut zu wissen.
leider scheint das nicht mein problem zu sein.
sd-kartenfehler hab ich mir eventuell nur durch strom/aus im laufenden betrieb oder mit nem faulen sd-adapter eingefangen.
mit nem anderen adapter konnte ich die jetzt wieder fehlerfrei beschreiben. 
da ich jetzt zwei karten getestet habe, das kabel getausch habe, mehrmals neu aufgesetzt,
gehe ich davon aus, daß sich der rs485-stick verabschiedet hat.
(hab den mal aufgemacht aber keine auffälligkeiten entdeckt, auf verdacht mal zwei neue bestellt)

das problem kam ja im laufenden betrieb.
es lief knapp einen tag und von jetzt auf gleich kamen keine daten mehr incl modbusalarm.

nodered läuft nach neuinstallation genau so lange, bis ich nibepi drauf mache und den stick auswähle.

danach gibts core-error in nodered und "tty=unknown". hängt sich dann auf.

@Becker :  was mir noch in deiner anleitung aufgefallen ist:
copy/paste vom nibepi zerreist den befehl und führt ohne vorwarnung "npm install --save" alleine aus.


2022/20220404659400.png
ist mir jetzt mehrfach passiert.(aber auch beim ersten versuch, wo es erst funktionierte)
da war auch noch ein copy/paste problem mit einem befehl mit zeilenumbruch. glaube nodered istallation.

für erfahrene nutzer vermutlich kein problem. für mich tricky ;)

dann ist mir folgendes aufgefallen :


2022/20220404126207.png
sind diese 3 high dingens ein problem?
das seh ich nach jedem versuch nibepi zu installieren.
audit fix hilft nicht.

wenn euch nichts offensichtliches mehr auffällt, warte ich mal auf stickersatz.

1
  •  Andreas90
  •   Bronze-Award
4.4.2022  (#846)

zitat..
Becker schrieb:

Hast du einen Link?

https://www.swissbit.com/de/microsd-speicherkarten/

ich hab die S-56u in der 8GB Größe bei mehreren Geräten im Einsatz kostet um die 30€ 
gibts anscheinend nur beim Elektronik Großhändler, nehm die Karte für die ganzen "IOT Geräte" her die länger im Einsatz bleiben sollen

Ist bei mir die erste Karte die bei mir und der Loxone SPS läner druchhält, aber ich denke es kommt auf die verwendete Speichertechnologie an nicht auf den Hersteller das soll ja keine Werbung sein!


1
  •  cacer
  •   Gold-Award
5.4.2022  (#847)
und es werde licht; äh, verbunden🙂
neuen usbrs485-stick angeklemmt, eingesteckt, nodered gestartet: kein error mehr, läuft.
TTY wird zwar in der console immer noch als unknown angegeben, scheint aber zu funktionieren.

ich hatte noch einen node mit dem register40004 offen und ohne modbus zu aktivieren kam da schon die AT AT [Außentemperatur] an.
darf da schon was kommen, oder liegt es an der RMU40 die parallel läuft?
kann man per nibepi die RMU40 auch irgendwie bedienen/erweitern?

ich versuche erstmal flow und grafana wieder auf den alten stand zu bringen, modbus zu aktivieren und hoffe, daß der neue stick nicht auch aufgibt.
habe ich da einfach pech gehabt, oder sollte vielleicht doch GND verbunden werden?
einen stick habe ich jetzt in reserve; beim dritten mal würde ich es mit GND zusätzlich probieren.

1
  •  Becker
  •   Gold-Award
5.4.2022  (#848)
welchen Stick hast du denn? den für 2,50€?
ich nutze den DSD TECH SH-U11F
bzw. am NibePi den seriellen zum aufstecken.
3 high severity vul... kommt immer und TTY unkown auch.

1
  •  cacer
  •   Gold-Award
6.4.2022  (#849)
genau, den billigen, den du auch in deiner anleitung abgebildet hast.
nach recherche ist es wohl selten, daß die den geist aufgeben, doch wurden dort auch die sticks mit den 4(oder5) anschlüssen empfohlen. (weil die intern sicherer/besser aufgebaut wären).
vermutlich die sh-u11f modelle.

immerhin weiß ich nun woran es lag, sowas zerrt schon an den nerven 🤬
ich überlege noch, ob ich im erneuten problemfall den besseren stick ausprobiere, oder gleich auf ein arduino mit nibegw wechsel, welcher dann in die WP WP [Wärmepumpe] kommt und nur weiter gibt.

andere frage:
habe versucht den COP (in deinem flow)  an grafana über influx weiter zu reichen.
grafana meckert (InfluxDB Error: unsupported mean iterator type: *query.stringInterruptIterator) und zeigt nichts an, in der datenbank von influx sind die werte aber geschrieben... 
im tableview mit "distinct" sehe ich die daten, kann die aber nicht visualisieren. 
wie reiche ich das rüber?

1
  •  Becker
  •   Gold-Award
6.4.2022  (#850)


2022/20220406371057.jpg

das schreibe ich in die DB.
Wie man sieht Pel + Pth, daraus ergibt sich in Grafana durch Division der COP.
Ich vermeide unnötige Sachen in die DB zu schreiben.

Du schreibst scheinbar einen String in die Datenbank.

Warum lässt du es nicht so wie von mir programmiert?


2022/20220406727571.jpg

1
  •  cacer
  •   Gold-Award
6.4.2022  (#851)
ach so, du lässt grafana das rechnen.
da der cop nicht in den sensordaten war, habe ich versucht das cop ergebniss aus deinem flow zusätzlich in den sensordaten in die datenbank zu schreiben.

zitat..
Becker schrieb: Warum lässt du es nicht so wie von mir programmiert?

weil ich neugierig bin und verstehen will. also experimentiere ich 😁

nach den ersten erfahrungen werden mir viele beiträge hier im thread erst langsam logisch und ich kann eure lernkurve besser nachvollziehen.
viele fragen wurden ja schon gestellt, doch den thread muss ich wohl nochmal durchackern.

du hast mit deinem blog und den anleitungen sehr gute arbeit geleistet.
danke dafür.

eine frage noch:
S0-zähler der WP WP [Wärmepumpe] bekommt man ja per gpio zum rpi.
was ist der intelligenteste weg den verbrauch mit einzubinden?
erst in nodered, oder direkt in die datenbank?

du hattest den SmartApplianceEnabler im einsatz.
macht der auch sinn, wenn es nur um den einen S0-zähler geht? (solar etc wird hier noch was dauern, auch wegen der marktlage)

gruß
micha

1
  •  chrismo
  •   Gold-Award
6.4.2022  (#852)

zitat..
cacer schrieb: S0-zähler der WP WP [Wärmepumpe] bekommt man ja per gpio zum rpi.
was ist der intelligenteste weg den verbrauch mit einzubinden?
erst in nodered, oder direkt in die datenbank?

Ich weiß nicht, ob es der intelligenteste Weg ist, aber ich mache es über NodeRED. Also S0-Impulse werden zuerst in die el. Leistung umgerechnet und dann mit den restlichen Werte der WP WP [Wärmepumpe] in einem Flow die Wärmeleistung bzw. der COP berechnet. Das dann in die Datenbank.


1
  •  Becker
  •   Gold-Award
6.4.2022  (#853)
ich habe mit S0 angefangen und dem "SAE" Projekt, letzten November habe ich dann endlich auf einen Modbuszähler umgebaut, den ich direkt in NR abfrage.
Kann dir den SDM72v2 nur empfehlen, dann kannst du auch die schönen Spielereien mit TAZ,MAZ,JAZ,GAZ nutzen sowohl in NR als auch in Grafana.

Auf jeden Fall erst den Zähler, egal ob S0 oder RS485 erst abfragen z.B. mit NR odeR SAE und danach in Influxdb schreiben.

1
  •  cacer
  •   Gold-Award
6.4.2022  (#854)

zitat..
Becker schrieb: Auf jeden Fall erst den Zähler, egal ob S0 oder RS485 erst abfragen z.B. mit NR odeR SAE und danach in Influxdb schreiben.



zitat..
chrismo schrieb: Also S0-Impulse werden zuerst in die el. Leistung umgerechnet und dann mit den restlichen Werte der WP WP [Wärmepumpe] in einem Flow die Wärmeleistung bzw. der COP berechnet. Das dann in die Datenbank.

macht sinn.
kann das mit in den nibeflow, um alles zusammen zu haben,oder sollte man das in separatem flow laufen lassen? (ich vermute, man kann flows verknüpfen?)
hast du vielleicht ein beispielflow für mich, oder ist hier im thread schon ähnliches versteckt?

zitat..
Becker schrieb: Kann dir den SDM72v2 nur empfehlen, dann kannst du auch die schönen Spielereien mit TAZ,MAZ,JAZ,GAZ nutzen sowohl in NR als auch in Grafana.

was kann denn der modbus besser?
dachte, wenn ich den zählerverbrauch hätte, könnte ich TAZ/MAZ etc auch ausrechnen (lassen).

mein zähler funktioniert ja, das tausche ich ungern gegen neues aus.

1
  •  Becker
  •   Gold-Award
6.4.2022  (#855)
Für die Differenzbildung bedarf es Zählerstände also Absolutwerte.

Man kann über die Integralrechnung in Grafana Verbräuche über Zeiträume integrieren, aber das ist nicht so schön wie wenn man die absoluten Stände zum Zeitpunkt x in die Datenbank schreibt.

1
  •  cacer
  •   Gold-Award
6.4.2022  (#856)
in meinem "jugendlichen" leichtsinn dachte ich, daß es kein problem sein sollte, den aktuellen stand zu hinterlegen und dann einfach aufaddieren lassen, sodaß man nicht nur plus1, sondern die jeweilige aktuelle summe zum zeitpunkt x ablegt.
nun gut, das gehört wohl nicht hier rein.
mit den infos komm ich schonmal weiter. danke

1
  •  cacer
  •   Gold-Award
13.4.2022  (#857)
warum werden bei deinem flow @Becker eigentlich keine daten in die datenbank geschrieben, wenn die WP WP [Wärmepumpe] im Sommermodus ist?

habe ich etwas beim deaktivieren der "PC" nodes übersehen, oder hast du dir dabei was gedacht? (daten sparen, oder so)
sobalt WW WW [Warmwasser] bereitet wird, wird wieder in die datenbank geschrieben.

habe versucht in den "sammeln" nodes zusätzlich noch ein "nach 120sekunden senden" anzuwenden, was aber nur RT RT [Raumtemperatur] und AT AT [Außentemperatur] bringt.
werden vielleicht die LOG.SET daten nicht übertragen, wenn die WP WP [Wärmepumpe] steht?
ich dachte gestern erst an ein problem mit dem Raspberry, daß keine daten mehr kommen und startete ihn neu.
darauf hin wurden einmal alle werte geschrieben .

-------------------------

muss man mit nibePi bei influx1.6.4 bleiben?

-------------------------

allgemeine nodered frage:
habe den aktuellen COP in einem eigenen Measurement an influx gesendet.
wenn die WP WP [Wärmepumpe] steht (taktpause), gibts dabei eine division durch null und nodered meckert dann kontinuirlich:
"Topic removed, non numerical value found."

kann man natürlich ignorieren, aber macht sinn den fehler zu beheben. ich wüsste halt nicht wie :)



1
  •  Becker
  •   Gold-Award
13.4.2022  (#858)
Die Werte werden jede Minute in die DB geschrieben - wenn man nicht dran rum fummelt 💀.

ich kann nur in meine Glaskugel schauen und raten: Du schreibst eine Nachricht mehr in die DB und hast join nicht angepasst auf die neue Nachrichtenanzahl. Und oder du hast keine passive Kühlung (wie ich) und es fehlt generell eine Nachricht.
Dafür gibt es den Debug, damit kann man an jeder Stelle schauen was an Nachrichten durch geht und ob die Anzahl/Reihenfolge korrekt ist.

Ich bin bei Influx 1.6.7 - ich war mal bei 1.8.x.

Zur Taktpause: Deshalb schreibe ich den COP nicht in die Datenbank, sondern lasse ihn in Grafana berechnen.

1
  •  cacer
  •   Gold-Award
13.4.2022  (#859)

zitat..
Becker schrieb: wenn man nicht dran rum fummelt 💀.

du hörst dich schon an, wie ein HB, der nicht möchte, daß der kunde im service-menü rum fummelt :D

ne, nachrichtenanzahlen sind angepasst.
lief ja auch sauber bis gestern mittag. muss mal schauen, ob das exakt zur heizgrenzumstellung geschah, oder nur zufällig fast gleichzeitig auftrat.->siehe edit
dann mal mit deinem originalflow gegenchecken.
nicht, daß der neue stick schon wieder zickt. 
----------------------------------------------------------------------
edit: hab nochmal nachgesehen:
die werte kamen schon gestern morgen nur noch abgehackt an UND meine frau berichtete von erhöhter RT RT [Raumtemperatur] am vormittag.
im uplink gibts auch auffälligkeiten... 
die WP WP [Wärmepumpe] hatte ich die Tage erst neu gestertet zum Kallibrieren WMZ, aber vielleicht setz ich da nochmal mit nem neustart an. am besten mal paar minuten stromlos.
------------------------------------------------------------------------
danke erstmal

cop berechnung in grafana:
da hab ich auch ein panel für gebastelt.
mit den registerdaten aus der WP WP [Wärmepumpe] liegt der cop deutlich zu niedrig.
oder mein stromzähler lügt.
hatte kürzlich händisch über mehrere stunden notiert und nachgerechnet. 
auch deshalb hatte ich die sensoren die tage kallibrieren lassen.

nun gut, vielleicht glieder ich meine kleinen problemchen hier besser in einen anderen faden aus.

btt:
gibt es eigentlich irgendwo eine zusammenhängende beschreibung zu nibePi, 
oder eine erklärung zu den einzelnen nibePi-nodes?

edit2: danke für den debug node..., den hatte ich bisher ignoriert.

1
  •  Becker
  •   Gold-Award
13.4.2022  (#860)


2022/20220413791654.jpg
ist nicht ganz trivial was ich da gebaut habe, ich versuche es noch mal zu erklären:

1: hier kommen die LOG.SET Daten rein, die alle 2s geschickt werden, das sind 11 Stück:
sendIt("VLT", 40008, 1);
sendIt("RLT", 40012, 1);
sendIt("WWo", 40013, 1);
sendIt("WW",  40014, 1);
sendIt("KTe", 40015, 1);
sendIt("KTa", 40016, 1);
sendIt("Hz",  43136, 0);
sendIt("GM",  43005, 0);
sendIt("WT%", 43437, 0);
sendIt("KT%", 43439, 0);
sendIt("Pth", 'Pth', 0);

Fehlermöglichkeit:
Wenn du von den 11 eine nicht in deinem LOG.SET hast, läuft das ganze nicht.

2:  Hier kommen 3 msg rein, aber diesmal 2 msg nicht vom LOG.SET. Diese kommen alle 56-57s. Somit wird die ganze Funktion auch nur alle 56-57s ausgeführt mit dem jeweils letzten Wert von Pth (der alle 2s kommt).
Entsprechend gehen Pth_WW + Pth_PC + Pth_H auch alle 56-57s weiter.

3: Hier kommen alle zusammen im letzten Schritt für InfluxDB, zusätzlich noch AT AT [Außentemperatur]+RT (die auch nur alle 56-57s kommen)

Dass alle zusammen exakt alle 60s (und nicht 56-57s) in die DB geschrieben werden erledigt der "Ø pro Minute" unter LOG.SET.

Ich hoffe du hast es verstanden.

Was noch wichtig ist zu den Nibe Nodes:
Der Ausgang oben sendet nur bei Änderungen, der Ausgang unten periodisch.

Der Debug Node ist der wichtigste überhaupt beim Programmieren, den benötige ich ständig.

1
  •  cacer
  •   Gold-Award
13.4.2022  (#861)
super-vielen dank für deine hilfe.
der tipp mit dem debug-node hat mich rückwärts den fehler finden lassen.
gefragt hätte ich jetzt genau da nach:

zitat..
Becker schrieb: Was noch wichtig ist zu den Nibe Nodes:
Der Ausgang oben sendet nur bei Änderungen, der Ausgang unten periodisch.

das ist beim loggen natürlich elemantar. (spätestens, wenn keine regelmäßigen änderungen mehr kommen)

nach ein paar tests hatte ich beim register 43375 den oberen ausgang verkabelt,
da ich mir einen zweiten ausgang für den cop gebaut habe. 

probleme gabs halt erst, als sich der wert nun nicht mehr änderte...

ich danke dir für die unterstützung.

die info zum LOG.SET ist auch prima. dann weiß ich welche register noch etwas variabel sind.
so langsam blick ich da wenigstens ein wenig durch.
auf der suche findet man im web auch überall deine spuren ;) 
für technische sachen ist mein englisch einfach zu schlecht und diese speziellen sachen findet man kaum auf deutsch.

gruß
micha


1


Beitrag schreiben oder Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]


next