Hallo,
ich habe eine Lüftungsanlage von Systemair, die ich gerne an FHEM anbinden möchte. Die Anlage hat einen RJ45 Stecker über
den ein Modbus mit serieller Anbindung läuft.
Meine Frage ist nun, welchen Hardware-Konverter benutze ich, um die Schnittstelle an meine Fritzbox anschließen zu können und
welches Modul existiert bereits,um Modbus-Protokolle zu lesen und sogar zu schreiben. Es gibt da wohl Möglichkeiten diese per
USB-Konverter oder Ethernet-Konverter anzuschließen. Allerdings kenne ich mich da zu wenig aus, um die notwendige Anschaffung
zielsicher zu tätigen. Wer kann hier weiterhelfen?
Die Register von systemair sind alle dokumentiert.
Typ der Lüftungsanlage?
Es ist eine Systemair VR 700 DCV
Moin Baukater,
Da ich selbst keine VR 700 DCV habe, kann ich nur Mutmaßungen anstellen.
Erst mal zwei Links, für den Fall, dass Du sie noch nicht kennst:
http://forum.loxone.com/enen/software/3183-rs485-modbus-how-setup-communication.html
Mal fragen, welchen Adapter die benutzen
http://planetaklimata.com.ua/instr/Systemair/Modbus_for_Systemair_VR_DC_VR_DCV_User_manual_Eng.pdf
Protokollbeschreibung
Jetzt zur Anbindung:
wenn Du im Loxone-Forum keine Hilfe findest, dann würde ich mir einen RS-485 zu USB Konverter besogen, ab 30 € z.B.
http://de.farnell.com/jsp/displayProduct.jsp?sku=1740357&CMP=KNC-GDE-FDE-GEN-LISTINGS&gross_price=true&mckv=sUGpAyJBA|pcrid|productlistings&gclid=CLLagZX_6boCFc1V3godPDQA4A
mit pech rausgeschmissenes Geld.
Ein funktionierendes Modul ist mir so ersteinmal nicht bekannt, da Anpassungen an Deine Anlage nötig sind.
Wirklich helfen kannst Du Dir am besten selbst, indem Du Dir überlegst, ob Du Dir die Kenntnisse zulegen kannst/möchtest, und dann ein vorhandenes Modul anpasst.
Gruß Joachim
Hallo,
Wenn die Registeradresse bekannt sind, kannst Du ModbusAttr verwenden. Im Wiki steht einiges dazu.
Gruß
Stefan
Hallo, nachdem ich auch so ein ding hab aber nicht ganz so fit bin hier ein link auf die protokollbeschreibung:
http://planetaklimata.com.ua/instr/Systemair/Modbus_for_Systemair_VR_DC_VR_DCV_User_manual_Eng.pdf
wäre super wenn das hilft - dann trau ich mich vielleicht auch drüber :-)
anton
Ich selber hab das mit der ModBus-Schnittstelle Seriel mit RJ45 nicht weiter verfolgt, sondern schalte die Lüftungsanlage über die vorhandenen Relais mit einem 4-Fach Switch, damit kann man die Stufen 1 - 3 aktivieren, ausschalten und Urlaub aktivieren. Im Praxixeinsatz hat sich das jetzt total bewährt. Damit schalte ich die Lüftungsanlage für
Nacht und Tag unterschiedlich und kann auch die Lüftungsanlage steuern, wenn z.B. die Terassentüre länger als 1/2 Stunde offen steht.
Bei den neuen Anlagen von Systemair ist die serielle Anbindung wohl einfache geworden, die gab es zu meiner Zeit noch nicht.
gelöst:
https://forum.fhem.de/index.php/topic,54429.msg460088.html#msg460088
Arbeite jetzt mir ModbusAttr. läuft super
Super, hab Dir ne PN geschickt. ;)
Hier meine Konfiguration:
Läuft seit 4 Monaten.
lg
Wolfgang
#Modebus#####################################################
#USB Stick Amazon: https://www.amazon.de/gp/product/B00I9H5J02/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1
define VR400Mod Modbus /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AL01GIJ7-if00-port0@9600,8,E,1
attr VR400Mod room Unsorted
define LRegL ModbusAttr 1 60
attr LRegL userattr IODev dev-h-combine dev-h-defPoll event-on-change-reading obj-h100-expr obj-h100-hint obj-h100-reading obj-h100-set sortby stateFormat userReadings webCmd
attr LRegL IODev VR400Mod
attr LRegL dev-h-combine 5
attr LRegL dev-h-defPoll 1
attr LRegL event-on-change-reading .*
attr LRegL eventMap 0:aus 1:min 2:normal 3:max 4:auto
attr LRegL group ModbusSystemair
attr LRegL obj-h100-hint 0,1,2,3,4
attr LRegL obj-h100-reading REG_FAN_SPEED_LEVEL
attr LRegL obj-h100-set 1
attr LRegL room Modbus,Haus
attr LRegL sortby 02
attr LRegL stateFormat {sprintf("%s", ReadingsVal($name,"REG_FAN_SPEED_LEVEL",0))}
attr LRegL userReadings REG_FAN_SPEED_LEVEL:0,1,2,3,4
attr LRegL webCmd REG_FAN_SPEED_LEVEL
#Temperaturanzeige
define T_ZuI ModbusAttr 1 60
attr T_ZuI userattr IODev dev-h-combine dev-h-defPoll obj-h213-expr obj-h213-reading sortby stateFormat
attr T_ZuI IODev VR400Mod
attr T_ZuI dev-h-combine 5
attr T_ZuI dev-h-defPoll 1
attr T_ZuI group ModbusSystemair
attr T_ZuI obj-h213-expr $val/10
attr T_ZuI obj-h213-reading REG_HC_TEMP_IN1
attr T_ZuI room Modbus,Haus
attr T_ZuI sortby 05
attr T_ZuI stateFormat {sprintf("%.1f Grad", ReadingsVal($name,"REG_HC_TEMP_IN1",0))}
define T_AbI ModbusAttr 1 60
attr T_AbI userattr IODev dev-h-combine dev-h-defPoll obj-h214-expr obj-h214-reading sortby stateFormat
attr T_AbI IODev VR400Mod
attr T_AbI dev-h-combine 5
attr T_AbI dev-h-defPoll 1
attr T_AbI group ModbusSystemair
attr T_AbI obj-h214-expr $val/10
attr T_AbI obj-h214-reading REG_HC_TEMP_IN2
attr T_AbI room Modbus,Haus
attr T_AbI sortby 06
attr T_AbI stateFormat {sprintf("%.1f Grad", ReadingsVal($name,"REG_HC_TEMP_IN2",0))}
define T_AbA ModbusAttr 1 60
attr T_AbA userattr IODev dev-h-combine dev-h-defPoll obj-h215-expr obj-h215-reading sortby stateFormat
attr T_AbA IODev VR400Mod
attr T_AbA dev-h-combine 5
attr T_AbA dev-h-defPoll 1
attr T_AbA group ModbusSystemair
attr T_AbA obj-h215-expr $val/10
attr T_AbA obj-h215-reading REG_HC_TEMP_IN3
attr T_AbA room Modbus,Haus
attr T_AbA sortby 07
attr T_AbA stateFormat {sprintf("%.1f Grad", ReadingsVal($name,"REG_HC_TEMP_IN3",0))}
define T_ZuA ModbusAttr 1 60
attr T_ZuA userattr IODev dev-h-combine dev-h-defPoll obj-h217-expr obj-h217-reading sortby stateFormat
attr T_ZuA IODev VR400Mod
attr T_ZuA dev-h-combine 5
attr T_ZuA dev-h-defPoll 1
attr T_ZuA group ModbusSystemair
attr T_ZuA obj-h217-expr $val/10
attr T_ZuA obj-h217-reading REG_HC_TEMP_IN5
attr T_ZuA room Modbus,Haus
attr T_ZuA sortby 04
attr T_ZuA stateFormat {sprintf("%.1f Grad", ReadingsVal($name,"REG_HC_TEMP_IN5",0))}
#REG_FAN_EF_RPM = h110 Zuluft Umin
define V_ZL ModbusAttr 1 60
attr V_ZL userattr IODev dev-h-combine dev-h-defPoll obj-h110-expr obj-h110-reading sortby stateFormat
attr V_ZL IODev VR400Mod
attr V_ZL dev-h-combine 5
attr V_ZL dev-h-defPoll 1
attr V_ZL group ModbusSystemair
attr V_ZL obj-h110-reading REG_FAN_SF_RPM
attr V_ZL room Modbus,Haus
attr V_ZL sortby 08
attr V_ZL stateFormat {sprintf("%.0f Umin", ReadingsVal($name,"REG_FAN_SF_RPM",0))}
#REG_FAN_EF_RPM = h111 Abluft Umin
define V_AL ModbusAttr 1 60
attr V_AL userattr IODev dev-h-combine dev-h-defPoll obj-h111-expr obj-h111-reading sortby stateFormat
attr V_AL IODev VR400Mod
attr V_AL dev-h-combine 5
attr V_AL dev-h-defPoll 1
attr V_AL group ModbusSystemair
attr V_AL obj-h111-reading REG_FAN_EF_RPM
attr V_AL room Modbus,Haus
attr V_AL sortby 09
attr V_AL stateFormat {sprintf("%.0f Umin", ReadingsVal($name,"REG_FAN_EF_RPM",0))}
define FileLog_V_AL FileLog /opt/fhem/log/V_AL-%Y-%m.log V_AL:REG_FAN_EF_RPM.*
attr FileLog_V_AL room Unsorted
define SVG_FileLog_V_AL_1 SVG FileLog_V_AL:SVG_FileLog_V_AL_1:CURRENT
attr SVG_FileLog_V_AL_1 alias 4. Lüftung Umin
attr SVG_FileLog_V_AL_1 room Modbus,Haus
#Filteranzeige
define F_TAG ModbusAttr 1 43200
attr F_TAG userattr IODev dev-h-combine dev-h-defPoll obj-h601-expr obj-h601-reading sortby stateFormat
attr F_TAG IODev VR400Mod
attr F_TAG dev-h-combine 5
attr F_TAG dev-h-defPoll 1
attr F_TAG group ModbusSystemair
attr F_TAG obj-h601-reading REG_FILTER_DAYS
attr F_TAG room Modbus,Haus
attr F_TAG sortby 15
attr F_TAG stateFormat {sprintf("%.0f Tage", ReadingsVal($name,"REG_FILTER_DAYS",0))}
#Rotorstatus
define Rotor ModbusAttr 1 30
attr Rotor userattr IODev dev-h-combine dev-h-defPoll obj-h350-reading obj-h601-expr sortby stateFormat
attr Rotor IODev VR400Mod
attr Rotor dev-h-combine 5
attr Rotor dev-h-defPoll 1
attr Rotor eventMap 0:Normal 1:Rotor_fault_assumed 2:Rotor_fault_detected 3:Summer_mode_conditions_valid_but_summer_mode_not_yet_active 4:Summer_mode 5:Waiting_to_go_out_of_Manual_summer_mode_due_to_temperature_conditions 6:Manual_summer_mode 7:Rotor_cleaning_during_summer_mode 8:Rotor_cleaning_during_manual_summer_mode 9:Fans_off 10:Rotor_cleaning_during_fans_off 11:Rotor_fault_conditions_for_rotor_fault_not_valid_anymore
attr Rotor group ModbusSystemair
attr Rotor obj-h350-reading REG_ROTOR_STATE
attr Rotor room Modbus,Haus
attr Rotor sortby 14
attr Rotor stateFormat {sprintf("%.0f", ReadingsVal($name,"REG_ROTOR_STATE",0))}
#Alarm
define Alarms ModbusAttr 1 60
attr Alarms userattr IODev dev-h-combine dev-h-defPoll obj-h800-expr obj-h800-reading sortby stateFormat
attr Alarms IODev VR400Mod
attr Alarms dev-h-combine 5
attr Alarms dev-h-defPoll 1
attr Alarms group ModbusSystemair
attr Alarms obj-h800-reading REG_ALARMS_ALL
attr Alarms room Modbus,Haus
attr Alarms sortby 10
attr Alarms stateFormat {sprintf("%.0f", ReadingsVal($name,"REG_ALARMS_ALL",0))}
define AL_Filter ModbusAttr 1 60
attr AL_Filter userattr IODev dev-c-combine dev-c-defPoll obj-c12800-expr obj-c12800-reading sortby stateFormat
attr AL_Filter IODev VR400Mod
attr AL_Filter dev-c-combine 5
attr AL_Filter dev-c-defPoll 1
attr AL_Filter group ModbusSystemair
attr AL_Filter obj-c12800-reading Filter_alarm
attr AL_Filter room Modbus,Haus
attr AL_Filter sortby 11
attr AL_Filter stateFormat {sprintf("%.0f", ReadingsVal($name,"Filter_alarm",0))}
define AL_Fan ModbusAttr 1 60
attr AL_Fan userattr IODev dev-c-combine dev-c-defPoll obj-c12802-expr obj-c12802-reading sortby stateFormat
attr AL_Fan IODev VR400Mod
attr AL_Fan dev-c-combine 5
attr AL_Fan dev-c-defPoll 1
attr AL_Fan group ModbusSystemair
attr AL_Fan obj-c12802-reading Fan alarm
attr AL_Fan room Modbus,Haus
attr AL_Fan sortby 12
attr AL_Fan stateFormat {sprintf("%.0f", ReadingsVal($name,"Fan alarm",0))}
define AL_Rotor ModbusAttr 1 60
attr AL_Rotor userattr IODev dev-c-combine dev-c-defPoll obj-c12804-expr obj-c12804-reading sortby stateFormat
attr AL_Rotor IODev VR400Mod
attr AL_Rotor dev-c-combine 5
attr AL_Rotor dev-c-defPoll 1
attr AL_Rotor group ModbusSystemair
attr AL_Rotor obj-c12804-reading Rotor alarm
attr AL_Rotor room Modbus,Haus
attr AL_Rotor sortby 13
attr AL_Rotor stateFormat {sprintf("%.0f", ReadingsVal($name,"Rotor alarm",0))}
#Heizung
define HC ModbusAttr 1 60
attr HC userattr IODev dev-h-combine dev-h-defPoll obj-h206-expr obj-h206-hint obj-h206-reading obj-h206-set sortby stateFormat userReadings webCmd
attr HC IODev VR400Mod
attr HC dev-h-combine 5
attr HC dev-h-defPoll 1
attr HC group ModbusSystemair
attr HC obj-h206-hint 0,1,2,3,4,5
attr HC obj-h206-reading REG_HC_TEMP_LVL
attr HC obj-h206-set 1
attr HC room Modbus,Haus
attr HC sortby 17
attr HC stateFormat {sprintf("%s", ReadingsVal($name,"REG_HC_TEMP_LVL",0))}
attr HC userReadings REG_HC_TEMP_LVL:0,1,2,3,4,5
attr HC webCmd REG_HC_TEMP_LVL
Supi, sieht echt gut aus. Und was hast Du zum Anschließen benutzt?
Am Anfag im code steht der link zu amazon
Das hab ich gesehen, danke. Ich meinte welches Kabel, da der Anschluß im Gerät ja eine Rj45 buchse ist.
Cat5 batchkabel. Bei tats ein altes isdn kabel. Meine systemair und mein rasperry sind nur 2m auseinander. Du benötigst nur 2 Drähte A B. Steht in der Modbusdoku von systemair. Am usb stecker die 220 Ohm einschalten. Nicht vergesen in der systemair die modbusparameter so wie im fhemscribt einstellen.
Lg
Wolfgang
hallo,
ich interessiere mich meine Systemair VTR 300 an fhem anzuschließen und bin auf diesen Thread gestoßen.
Kann mir jemand einen USB Adapter empfehlen? Der Link zu Amazon geht mittlerweile ins Leere.
vielen Dank
Hans-Jürgen
Hallo
Ich habe diese beiden in Betrieb um Zähler auszulesen (Modbus RTU).
https://www.amazon.de/gp/product/B078X5H8H7/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
oder
https://www.amazon.de/gp/product/B083PS4SQW/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
je nachdem was am besten ist. (Kabelweg)
Es gibt natürlich noch viele andere die wahrscheinlich genau so gut gehen.
mfg.
Hermann
hallo Hermann,
vielen lieben Dank für Deine Rückmeldung! ;)
Für 15 € erscheint mir das als eine gute Möglichkeit es einfach mal auszuprobieren. Ich bin allerdings ohne Erfahrung was den Anschluss eines Gerätes mit einem Modbus angeht.
Als Kabel habe ich in diesem Threat gelesen, dass man ein CAT 5 Kabel verwenden könnte und letztlich nur 2 Adern davon braucht. Alles weitere stünde in der Modbusdoku von systemair: Zitat wie z.B.. "Am usb stecker die 220 Ohm einschalten."
Hast Du einen Tipp wie ich mich am besten in die Materie einlesen kann? Wo finde ich die Modbusdoku von systemair?
Als Einplatinencomputer habe ich ein Cubieboard2 auf welchem armbian läuft.
Über Deine Rückmeldung würde ich mich freuen.
viele Grüße,
Hans-Jürgen 8)
Hallo Hans-Jürgen
Als Kabel kannst du auch eine Telefonleitung J-Y(St)Y 2x2x0,8 oder eine andere Abgeschirmte Leitung verwenden,
Adern brauchst du nur 2.
Mit dem USB-Stecker weiß ich nicht was das für einer ist, aber der RS485 Bus muss an den enden mit einen 120 Ohm Widerstand abgeschlossen werden.
Wie schon oben gesagt lesen ich damit nur 3 Zähler aus, mit Systemair habe ich keinerlei erfahrung.
Ich habe das auf einem PI3 mit Raspbian am laufen.
Den USB-Adapter hab unter Windows nur zum einstellen der Zähler gebraucht.
Weiter oben ist ein Link zu planetaklimata.com wo das alles beschreiben ist (2013), ob das heute noch aktuell ist ??
mfg.
Hermann
Zitat von: baukater am 31 März 2016, 11:08:13
Ich selber hab das mit der ModBus-Schnittstelle Seriel mit RJ45 nicht weiter verfolgt, sondern schalte die Lüftungsanlage über die vorhandenen Relais mit einem 4-Fach Switch, damit kann man die Stufen 1 - 3 aktivieren, ausschalten und Urlaub aktivieren. Im Praxixeinsatz hat sich das jetzt total bewährt.
Ich habe dir dazu eine PN geschrieben und würde mich über weitere Infos sehr freuen.