Ankündigung

Einklappen
Keine Ankündigung bisher.

Anbindung Modbus / Nibe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • nibepi
    antwortet
    Zitat von uzi10 Beitrag anzeigen
    Jap im energiesparhausforum steht alles.
    aber von modbus tcp freischalten hab ich noch nix gehört
    Hi there, I'm working on a Modbus TCP integration with NibePi, as you might have noticed I released a docker container which could run the NibePi core and pass Nibe F series to MQTT. That version is also compatible with ModbusTCP and the registers that are available for Nibe S1255.
    It's in a alpha state right now and I'm testing it on a real S1255 here in Sweden.

    The registers available are very limited but the basic ones are there.
    https://up.picr.de/38821944lh.pdf

    Einen Kommentar schreiben:


  • uzi10
    antwortet
    Jap im energiesparhausforum steht alles.
    aber von modbus tcp freischalten hab ich noch nix gehört

    Einen Kommentar schreiben:


  • Klartext90
    antwortet
    Das Kästchen ist für die F, die S hat standardmäßig Modbus TCP
    https://www.energiesparhaus.at/forum...schritte/55936

    Ich habe die F und benutze das oben genannte
    Zuletzt geändert von Klartext90; 19.07.2020, 20:09.

    Einen Kommentar schreiben:


  • markus014
    antwortet
    und das ist aktuell nur über das 800,- EUR Nibe Kästchen Modbus 40 möglich? Wieso sollten sie das 800,- EUR-Kästchen überflüssig machen.

    Ich bräuchte halt irgendeine Möglichkeit die NIBE-S1255 an openHAB zu bekommen. Die Lüftungsanlage von Maico hat standardmäßig eine Modbus-Schnittstelle.

    Einen Kommentar schreiben:


  • sti87
    antwortet
    Jetzt bin ich auch neugierig geworden 😎

    Hab mal was gehört, dass in einem Firmware Update (Herbst 2020) wohl Modbus TCP freigeschalten wird. Keine Ahnung ob das nur ein Gerücht ist..

    Einen Kommentar schreiben:


  • markus014
    antwortet
    Danke für deine Antwort. Wie meinst du, dass es mit der neuen Version behoben ist? Hat die S-Version der WP standardmäßig eine Modbus-Schnittstelle um zu openHAB zu kommen oder wie?

    Einen Kommentar schreiben:


  • Klartext90
    antwortet
    https://github.com/bebben88/nibe2mqtt
    &

    https://github.com/bebben88/NibePi

    Du brauchst nur einen Rasberry und eine RS485 Schnittstelle und du hast eine Anbindung zu Nodered (und von da aus ist es ja kein Ding mehr auf Openhab, KNX oder was auch immer)

    Alternativ die Lösung mit den Arduino (nicht ganz meins aber soll auch gut funktionieren)

    für die 800€ kannst du ein Eis essen gehen (Preis ist echt unverschämt, ist aber mit der neuen Version behoben)

    Einen Kommentar schreiben:


  • markus014
    antwortet
    Grüße dich elelom,
    du hast deinen neuen Thread aufgemacht, weil du die NIBE-WP eben nicht über openHAB erreichen willst oder?
    Wenn ich die NIBE-WP aber gerade auf openHAB erreichen will, welcher Thread hilft mir dann weiter? Das funktioniert wohl über Rs458, welches standardmäßig bei der S/F1255 ansprechbar ist oder? Weil Modbus kann die Nibe-WP ja erst, nachdem man das 800,- EUR teuere NIBE-Modbus-Modul 40 gekauft hat oder?

    Einen Kommentar schreiben:


  • elelom
    antwortet
    Ja, ich greife die 12V an der Nibe ab, wo auch das Modbus40-Modul seine Stromversorgung herbekommt.
    Ansonsten möchte ich aber im DIY-Bereich weiter machen, da Meine versuche dort besser aufgehoben sind.

    MfG
    Jens

    Einen Kommentar schreiben:


  • uzi10
    antwortet
    Zitat von DerSeppel Beitrag anzeigen

    Bilder wären nett. Wo greifst du die Versorgung an der WP ab?
    naja er wird wie das original Modul am Ausgang für das externe Bedienteil abgreifen oder?

    Einen Kommentar schreiben:


  • DerSeppel
    antwortet
    Zitat von elelom Beitrag anzeigen
    Ich habe auch eine Nibe F1155 im Keller stehen.
    Dazu ein Rs 485 Konvertermodul und ein Step-Down Regler.
    [...]
    Bild kann ich bei Bedarf nachreichen.
    Bilder wären nett. Wo greifst du die Versorgung an der WP ab?

    Einen Kommentar schreiben:


  • elelom
    antwortet
    Es gehört wohl mehr hier hin:
    https://knx-user-forum.de/forum/%C3%...w-ohne-openhab
    Zuletzt geändert von elelom; 06.01.2019, 11:09.

    Einen Kommentar schreiben:


  • elelom
    antwortet
    Ich habe auch eine Nibe F1155 im Keller stehen.
    An dieser hängt das openhab NibeGW.
    Besteht bei mir aus einem Arduino uno mit passendem EtherShield. Dazu ein Rs 485 Konvertermodul und ein Step-Down Regler.
    Damit wird der Arduino direkt aus der WP mit Strom versorgt. Bild kann ich bei Bedarf nachreichen.
    Ich habe dann auch mit openhab2 angefangen, werde damit aber nicht wirklich warm :-(
    Also habe ich angefangen, mir selber was zusammen zu kopieren. (werkeine Ahnung von Programierung hat, muss zusammenstoppeln.

    Ich habe jetzt ein Shell-Script, das den UDP-Stream empfängt und zerlegt.
    Es werden Dateien mit dem Namen der Datenpunkte entsprechend dem Nibe Modbus erzeugt (zb 40004 für die Aussentemp.)
    In der Datei steht dann der Wert. Der Wert ist entsprechend dem Modbusmanager dargestellt. Also in der Datei 40004 steht jetzt 80 für 8,0Grad drin.
    Da ich noch keine Negativen Daten habe, weiss ich noch nicht, wie diese dargestellt werden.
    Auch die Behandling von 8 oder 32bit Werten habe ich noch nicht richtig gedeutet.
    Also nur ein 1. massiv unfertiger Versuch.
    Trotzdem möchte ich es hier mal zeigen und zum Weiterentwickeln einladen.

    Code:
    #/!bin/bash
    
    tcpdump -i enp8s0 udp port 9999 and greater 80 -c 1 -w hexroh.txt  #Datenstrom aus UDP 9999auslesen
    dathex=$(xxd -plain -cols 9999 -u hexroh.txt)
    rm hexroh.txt
    POS=174
    LEN=160
    daten=${dathex:$POS:$LEN}
    
    LEN=2
    
    #Wert 1
    POS=0
    bez011=${daten:$POS:$LEN}
    POS=2
    bez012=${daten:$POS:$LEN}
    bez01k=$bez012$bez011
    bez01=$(echo "obase=10; ibase=16; $bez01k" | bc)
    POS=4
    wer011=${daten:$POS:$LEN}
    POS=6
    wer012=${daten:$POS:$LEN}
    wer01k=$wer012$wer011
    wer01=$(echo "obase=10; ibase=16; $wer01k" | bc)
    
    #Wert 2
    POS=8
    bez021=${daten:$POS:$LEN}
    POS=10
    bez022=${daten:$POS:$LEN}
    bez02k=$bez022$bez021
    bez02=$(echo "obase=10; ibase=16; $bez02k" | bc)
    POS=12
    wer021=${daten:$POS:$LEN}
    POS=14
    wer022=${daten:$POS:$LEN}
    wer02k=$wer022$wer021
    wer02=$(echo "obase=10; ibase=16; $wer02k" | bc)
    
    #Wert 3
    POS=16
    bez031=${daten:$POS:$LEN}
    POS=18
    bez032=${daten:$POS:$LEN}
    bez03k=$bez032$bez031
    bez03=$(echo "obase=10; ibase=16; $bez03k" | bc)
    POS=20
    wer031=${daten:$POS:$LEN}
    POS=22
    wer032=${daten:$POS:$LEN}
    wer03k=$wer032$wer031
    wer03=$(echo "obase=10; ibase=16; $wer03k" | bc)
    
    #Wert 4
    POS=24
    bez041=${daten:$POS:$LEN}
    POS=26
    bez042=${daten:$POS:$LEN}
    bez04k=$bez042$bez041
    bez04=$(echo "obase=10; ibase=16; $bez04k" | bc)
    POS=28
    wer041=${daten:$POS:$LEN}
    POS=30
    wer042=${daten:$POS:$LEN}
    wer04k=$wer042$wer041
    wer04=$(echo "obase=10; ibase=16; $wer04k" | bc)
    
    #Wert 5
    POS=32
    bez051=${daten:$POS:$LEN}
    POS=34
    bez052=${daten:$POS:$LEN}
    bez05k=$bez052$bez051
    bez05=$(echo "obase=10; ibase=16; $bez05k" | bc)
    POS=36
    wer051=${daten:$POS:$LEN}
    POS=38
    wer052=${daten:$POS:$LEN}
    wer05k=$wer052$wer051
    wer05=$(echo "obase=10; ibase=16; $wer05k" | bc)
    
    #Wert 6
    POS=40
    bez061=${daten:$POS:$LEN}
    POS=42
    bez062=${daten:$POS:$LEN}
    bez06k=$bez062$bez061
    bez06=$(echo "obase=10; ibase=16; $bez06k" | bc)
    POS=44
    wer061=${daten:$POS:$LEN}
    POS=46
    wer062=${daten:$POS:$LEN}
    wer06k=$wer062$wer061
    wer06=$(echo "obase=10; ibase=16; $wer06k" | bc)
    
    #Wert 7
    POS=48
    bez071=${daten:$POS:$LEN}
    POS=50
    bez072=${daten:$POS:$LEN}
    bez07k=$bez072$bez071
    bez07=$(echo "obase=10; ibase=16; $bez07k" | bc)
    POS=52
    wer071=${daten:$POS:$LEN}
    POS=54
    wer072=${daten:$POS:$LEN}
    wer07k=$wer072$wer071
    wer07=$(echo "obase=10; ibase=16; $wer07k" | bc)
    
    #Wert 8
    POS=56
    bez081=${daten:$POS:$LEN}
    POS=58
    bez082=${daten:$POS:$LEN}
    bez08k=$bez082$bez081
    bez08=$(echo "obase=10; ibase=16; $bez08k" | bc)
    POS=60
    wer081=${daten:$POS:$LEN}
    POS=62
    wer082=${daten:$POS:$LEN}
    wer08k=$wer082$wer081
    wer08=$(echo "obase=10; ibase=16; $wer08k" | bc)
    
    #Wert 9
    POS=64
    bez091=${daten:$POS:$LEN}
    POS=66
    bez092=${daten:$POS:$LEN}
    bez09k=$bez092$bez091
    bez09=$(echo "obase=10; ibase=16; $bez09k" | bc)
    POS=68
    wer091=${daten:$POS:$LEN}
    POS=70
    wer092=${daten:$POS:$LEN}
    wer09k=$wer092$wer091
    wer09=$(echo "obase=10; ibase=16; $wer09k" | bc)
    
    #Wert 10
    POS=72
    bez101=${daten:$POS:$LEN}
    POS=74
    bez102=${daten:$POS:$LEN}
    bez10k=$bez102$bez101
    bez10=$(echo "obase=10; ibase=16; $bez10k" | bc)
    POS=76
    wer101=${daten:$POS:$LEN}
    POS=78
    wer102=${daten:$POS:$LEN}
    wer10k=$wer102$wer101
    wer10=$(echo "obase=10; ibase=16; $wer10k" | bc)
    
    #Wert 11
    POS=80
    bez111=${daten:$POS:$LEN}
    POS=82
    bez112=${daten:$POS:$LEN}
    bez11k=$bez112$bez111
    bez11=$(echo "obase=10; ibase=16; $bez11k" | bc)
    POS=84
    wer111=${daten:$POS:$LEN}
    POS=86
    wer112=${daten:$POS:$LEN}
    wer11k=$wer112$wer111
    wer11=$(echo "obase=10; ibase=16; $wer11k" | bc)
    
    #Wert 12
    POS=88
    bez121=${daten:$POS:$LEN}
    POS=90
    bez122=${daten:$POS:$LEN}
    bez12k=$bez122$bez121
    bez12=$(echo "obase=10; ibase=16; $bez12k" | bc)
    POS=92
    wer121=${daten:$POS:$LEN}
    POS=94
    wer122=${daten:$POS:$LEN}
    wer12k=$wer122$wer121
    wer12=$(echo "obase=10; ibase=16; $wer12k" | bc)
    
    #Wert 13
    POS=96
    bez131=${daten:$POS:$LEN}
    POS=98
    bez132=${daten:$POS:$LEN}
    bez13k=$bez132$bez131
    bez13=$(echo "obase=10; ibase=16; $bez13k" | bc)
    POS=100
    wer131=${daten:$POS:$LEN}
    POS=102
    wer132=${daten:$POS:$LEN}
    wer13k=$wer132$wer131
    wer13=$(echo "obase=10; ibase=16; $wer13k" | bc)
    
    #Wert 14
    POS=104
    bez141=${daten:$POS:$LEN}
    POS=106
    bez142=${daten:$POS:$LEN}
    bez14k=$bez142$bez141
    bez14=$(echo "obase=10; ibase=16; $bez14k" | bc)
    POS=108
    wer141=${daten:$POS:$LEN}
    POS=110
    wer142=${daten:$POS:$LEN}
    wer14k=$wer142$wer141
    wer14=$(echo "obase=10; ibase=16; $wer14k" | bc)
    
    #Wert 15
    POS=112
    bez151=${daten:$POS:$LEN}
    POS=114
    bez152=${daten:$POS:$LEN}
    bez15k=$bez152$bez151
    bez15=$(echo "obase=10; ibase=16; $bez15k" | bc)
    POS=116
    wer151=${daten:$POS:$LEN}
    POS=118
    wer152=${daten:$POS:$LEN}
    wer15k=$wer152$wer151
    wer15=$(echo "obase=10; ibase=16; $wer15k" | bc)
    
    #Wert 16
    POS=120
    bez161=${daten:$POS:$LEN}
    POS=122
    bez162=${daten:$POS:$LEN}
    bez16k=$bez162$bez161
    bez16=$(echo "obase=10; ibase=16; $bez16k" | bc)
    POS=124
    wer161=${daten:$POS:$LEN}
    POS=126
    wer162=${daten:$POS:$LEN}
    wer16k=$wer162$wer161
    wer16=$(echo "obase=10; ibase=16; $wer16k" | bc)
    
    #Wert 17
    POS=128
    bez171=${daten:$POS:$LEN}
    POS=130
    bez172=${daten:$POS:$LEN}
    bez17k=$bez172$bez171
    bez17=$(echo "obase=10; ibase=16; $bez17k" | bc)
    POS=132
    wer171=${daten:$POS:$LEN}
    POS=134
    wer172=${daten:$POS:$LEN}
    wer17k=$wer172$wer171
    wer17=$(echo "obase=10; ibase=16; $wer17k" | bc)
    
    #Wert 18
    POS=136
    bez181=${daten:$POS:$LEN}
    POS=138
    bez182=${daten:$POS:$LEN}
    bez18k=$bez182$bez181
    bez18=$(echo "obase=10; ibase=16; $bez18k" | bc)
    POS=140
    wer181=${daten:$POS:$LEN}
    POS=142
    wer182=${daten:$POS:$LEN}
    wer18k=$wer182$wer181
    wer18=$(echo "obase=10; ibase=16; $wer18k" | bc)
    
    #Wert 19
    POS=144
    bez191=${daten:$POS:$LEN}
    POS=146
    bez192=${daten:$POS:$LEN}
    bez19k=$bez192$bez191
    bez19=$(echo "obase=10; ibase=16; $bez19k" | bc)
    POS=148
    wer191=${daten:$POS:$LEN}
    POS=150
    wer192=${daten:$POS:$LEN}
    wer19k=$wer192$wer191
    wer19=$(echo "obase=10; ibase=16; $wer19k" | bc)
    
    #Wert 20
    POS=152
    bez201=${daten:$POS:$LEN}
    POS=154
    bez202=${daten:$POS:$LEN}
    bez20k=$bez202$bez201
    bez20=$(echo "obase=10; ibase=16; $bez20k" | bc)
    POS=156
    wer201=${daten:$POS:$LEN}
    POS=158
    wer202=${daten:$POS:$LEN}
    wer20k=$wer202$wer201
    wer20=$(echo "obase=10; ibase=16; $wer20k" | bc)
    
    
    echo -n $wer01 > $bez01
    echo -n $wer02 > $bez02
    echo -n $wer03 > $bez03
    echo -n $wer04 > $bez04
    echo -n $wer05 > $bez05
    echo -n $wer06 > $bez06
    echo -n $wer07 > $bez07
    echo -n $wer08 > $bez08
    echo -n $wer09 > $bez09
    echo -n $wer10 > $bez10
    echo -n $wer11 > $bez11
    echo -n $wer12 > $bez12
    echo -n $wer13 > $bez13
    echo -n $wer14 > $bez14
    echo -n $wer15 > $bez15
    echo -n $wer16 > $bez16
    echo -n $wer17 > $bez17
    echo -n $wer18 > $bez18
    echo -n $wer19 > $bez19
    echo -n $wer20 > $bez20

    Einen Kommentar schreiben:


  • klayman
    antwortet
    It will not work out of the box as the binding does not support the F1255. You can make it work by adding the required registers and data types to the java source code and compile it yourself. I've done it quite a while ago, but cannot remember how
    And you still need to put together an Arduino with a RS485 shield and appropriate software to read out the values from the heat pump and transmit them via TCP/IP.

    Best,
    Klayman

    Einen Kommentar schreiben:


  • impellerhead
    antwortet
    I hope I can get an answer here in english, google translate is not optimal to use
    I have a Nibe F1255-16 and is wondering if this will work with my pump ?

    Thanks.

    Einen Kommentar schreiben:

Lädt...
X