Nilan KLW und CTS 602 am Modbus

Begonnen von chris050280, 21 Juli 2015, 21:24:15

Vorheriges Thema - Nächstes Thema

chris050280

Hallo Leute!

Ich möchte meine Nilan Wohnraumlueftung an FHEM ueber Rs485 anbinden. Hat da schon jemand etwas versucht, oder hat jemand Interesse,  dies gemeinsam zu verfolgen?

LG Christian
FHEM auf RasbPi ... + RFXTRX433E
div. HomeEasy und Intertechno - Schalter
sowie Somfy - Rolläden

Spielkind


chris050280

FHEM auf RasbPi ... + RFXTRX433E
div. HomeEasy und Intertechno - Schalter
sowie Somfy - Rolläden


chris050280

Ja, ich hab mich auch etwas eingelesen, aber ich gestehe, dass ich mich generell zu wenig auskenne in Sachen Modbus. Habe nur mal einen Befehl abgeschickt und dann war die Anlage mal kurz tot.
FHEM auf RasbPi ... + RFXTRX433E
div. HomeEasy und Intertechno - Schalter
sowie Somfy - Rolläden

Spielkind

#5
Also mit dem oben verlinktem USB Stick am raspberry pi und modbusattr habe ich mal das zusammengebastelt.
Mehr Werte kann man auch so hinzfügen, Logfiles/DB/Plots fehlen. Schöner wäre es natürlich in einem eigenen Modul.
Werte zu setzen habe ich noch nicht probiert, wir haben aber auch nur eine Be- und Entlüftung (Comfort 250 Top) mit CTS 602 Steuerung.

/etc/udev/rules.d/99-modbus.rules
SUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="XXXXXXX", SYMLINK+="modbus"


fhem.cfg
define ModbusRS485 Modbus /dev/modbus@19200,8,E,1
define Nilan ModbusAttr 30 60
attr Nilan userattr IODev dev-h-defPoll dev-h-defShowGet dev-i-defPoll dev-i-defShowGet icon obj-h200-expr obj-h200-reading obj-h201-expr obj-h201-reading obj-h205-expr obj-h205-reading obj-i1200-reading obj-i1201-expr obj-i1201-reading obj-i1201-unpack obj-i1202-expr obj-i1202-reading obj-i1202-unpack obj-i1203-expr obj-i1203-reading obj-i1203-unpack obj-i1204-expr obj-i1204-reading obj-i200-expr obj-i200-reading obj-i200-unpack obj-i203-expr obj-i203-reading obj-i203-unpack obj-i204-expr obj-i204-reading obj-i204-unpack obj-i207-expr obj-i207-reading obj-i207-unpack obj-i208-expr obj-i208-reading obj-i208-unpack obj-i215-expr obj-i215-reading obj-i215-unpack obj-i221-expr obj-i221-reading
attr Nilan IODev ModbusRS485
attr Nilan dev-h-defPoll 1
attr Nilan dev-h-defShowGet 1
attr Nilan dev-i-defPoll 1
attr Nilan dev-i-defShowGet 1
attr Nilan event-on-change-reading .*
attr Nilan icon vent_ventilation
attr Nilan obj-h200-expr $val/100
attr Nilan obj-h200-reading Nilan_Output_ExhaustSpeed
attr Nilan obj-h201-expr $val/100
attr Nilan obj-h201-reading Nilan_Output_InletSpeed
attr Nilan obj-h205-expr $val/100
attr Nilan obj-h205-reading Nilan_Output_EarthSpeed
attr Nilan obj-i1200-reading Nilan_AirTemp_IsSummer
attr Nilan obj-i1201-expr $val/100
attr Nilan obj-i1201-reading Nilan_AirTemp_Tempinlet
attr Nilan obj-i1201-unpack s>
attr Nilan obj-i1202-expr $val/100
attr Nilan obj-i1202-reading Nilan_AirTemp_TempCont
attr Nilan obj-i1202-unpack s>
attr Nilan obj-i1203-expr $val/100
attr Nilan obj-i1203-reading Nilan_AirTemp_TempRoom
attr Nilan obj-i1203-unpack s>
attr Nilan obj-i1204-expr $val/100
attr Nilan obj-i1204-reading Nilan_AirTemp_EffPct
attr Nilan obj-i200-expr $val/100
attr Nilan obj-i200-reading Nilan_Input_T0_Controller
attr Nilan obj-i200-unpack s>
attr Nilan obj-i203-expr $val/100
attr Nilan obj-i203-reading Nilan_Input_T3_Exhaust
attr Nilan obj-i203-unpack s>
attr Nilan obj-i204-expr $val/100
attr Nilan obj-i204-reading Nilan_Input_T4_Outlet
attr Nilan obj-i204-unpack s>
attr Nilan obj-i207-expr $val/100
attr Nilan obj-i207-reading Nilan_Input_T7_Inlet
attr Nilan obj-i207-unpack s>
attr Nilan obj-i208-expr $val/100
attr Nilan obj-i208-reading Nilan_Input_T8_Outdoor
attr Nilan obj-i208-unpack s>
attr Nilan obj-i215-expr $val/100
attr Nilan obj-i215-reading Nilan_Input_T15_Room
attr Nilan obj-i215-unpack s>
attr Nilan obj-i221-expr $val/100
attr Nilan obj-i221-reading Nilan_Input_RH
define FileLog_Nilan FileLog ./log/Nilan-%Y-%m.log Nilan


chris050280

Hallo.

Bin leider erst jetzt wieder mit Zeit ausgestattet  :(. Schaut ja schon mal recht ordentlich aus. DH du empfängst bereits Werte von der Steuerung?

Lg Christian
FHEM auf RasbPi ... + RFXTRX433E
div. HomeEasy und Intertechno - Schalter
sowie Somfy - Rolläden

Spielkind

#7
Jupp, Werte kommen an, und werden derzeit via DBLog geschrieben.
Die einzelnen Inputs/Holdings sind ja recht gut dokumentiert, bei negativen Werten (z.B. Frischlufttemperatur) muss man mit signed/unsigned integer aufpassen.

Mit dem python Script von openhab: https://github.com/roggmaeh/nilan-openhab/blob/master/readNilan.py liesen sich die Werte auch ohne FHEM testweise recht gut abfragen.
Das h.request habe ich dazu rausgenommen.

Nilan_Bus_Version: 8
Nilan_App_VersionMajor: 2.
Nilan_App_VersionMinor: 31
Nilan_App_VersionRelease: .d
Nilan_Input_UserFunc: 0
Nilan_Input_AirFilter: 1
Nilan_Input_DoorOpen: 0
Nilan_Input_Smoke: 0
Nilan_Input_MotorThermo: 0
Nilan_Input_Frost_Overht: 1
Nilan_Input_AirFlow: 0
Nilan_Input_P_HI: 0
Nilan_Input_P_LO: 0
Nilan_Input_Boil: 0
Nilan_Input_3WayPos: 0
Nilan_Input_DefrostHG: 0
Nilan_Input_Defrost: 0
Nilan_Input_UserFunc_2: 0
Nilan_Input_T0_Controller: 18.58 C
Nilan_Input_T1_Intake: 0.0 C
Nilan_Input_T2_Inlet: 0.0 C
Nilan_Input_T3_Exhaust: 20.95 C
Nilan_Input_T4_Outlet: 8.47 C
Nilan_Input_T5_Cond: 0.0 C
Nilan_Input_T6_Evap: 0.0 C
Nilan_Input_T7_Inlet: 12.06 C
Nilan_Input_T8_Outdoor: -1.59 C
Nilan_Input_T9_Heater: -40.0 C
Nilan_Input_T10_Extem: -40.0 C
Nilan_Input_T11_Top: 0.0 C
Nilan_Input_T12_Bottom: 0.0 C
Nilan_Input_T13_Retum: 0.0 C
Nilan_Input_T14_Supply: 0.0 C
Nilan_Input_T15_Room: 19.02 C
Nilan_Input_T16: 0.0 C
Nilan_Input_RH: 41.65 %
Nilan_Input_0O2: 0
Nilan_Alarm_Status: 0
Nilan_Alarm_List_1_ID: 0
Nilan_Alarm_List_1_Date: 0
Nilan_Alarm_List_1_Time: 0
Nilan_Alarm_List_2_ID: 0
Nilan_Alarm_List_2_Date: 0
Nilan_Alarm_List_2_Time: 0
Nilan_Alarm_List_3_ID: 0
Nilan_Alarm_List_3_Date: 0
Nilan_Alarm_List_3_Time: 0
Nilan_Control_RunAct: 1
Nilan_Control_ModeAct: 3
Nilan_Control_State: 7
Nilan_Control_SeclnState: 11118
Nilan_AirTemp_IsSummer: 0
Nilan_AirTemp_Tempinlet: 17.43 C
Nilan_AirTemp_TempCont: 20.96 C
Nilan_AirTemp_TempRoom: 19.01 C
Nilan_AirTemp_EffPct: 66.27 %
Nilan_AirTemp_CapSet: 0.0 %
Nilan_AirTemp_CapAct: 0.0 %
Nilan_Display_LED_1: 0
Nilan_Display_LED_2: 0
Nilan_Display_Text_1_2: FR
Nilan_Display_Text_3_4: IS
Nilan_Display_Text_5_6: CH
Nilan_Display_Text_7_8: L.
Nilan_Display_Attr_1_8: 0
Nilan_Display_Text_9_10: T8
Nilan_Display_Text_11_12:  -
Nilan_Display_Text_13_14:  2
Nilan_Display_Text_15_16: ßC
Nilan_Display_Attr_9_16: 0
Nilan_Bus_Address: 30
Nilan_Output_AirFlap: 1
Nilan_Output_SmokeFlap: 1
Nilan_Output_BypassOpen: 0
Nilan_Output_BypassClose: 0
Nilan_Output_AirCircPump: 0
Nilan_Output_AirHeatAllo: 1
Nilan_Output_AirHeat_1: 0
Nilan_Output_AirHeat_2: 0
Nilan_Output_AirHeat_3: 0
Nilan_Output_Compressor: 0
Nilan_Output_Compressor2: 0
Nilan_Output_4WayCool: 0
Nilan_Output_HotgasHeat: 0
Nilan_Output_HotgasCool: 0
Nilan_Output_CondOpen: 0
Nilan_Output_CondClose: 0
Nilan_Output_WaterHeat: 0
Nilan_Output_3WayValve: 0
Nilan_Output_CenCircPump: 0
Nilan_Output_CenHeat_1: 0
Nilan_Output_CenHeat_2: 0
Nilan_Output_CenHeat_3: 0
Nilan_Output_CenHeatExt: 1
Nilan_Output_UserFunc: 0
Nilan_Output_UserFunc_2: 0
Nilan_Output_Defrosting: 0
Nilan_Output_ExhaustSpeed: 70.0 %
Nilan_Output_InletSpeed: 65.0 %
Nilan_Output_AirHeatCap: 0.0 %
Nilan_Output_CenHeatCap: 0.0 %
Nilan_Output_CprCap: 0.0 %
Nilan_Output_EarthSpeed: 0.0 %
Nilan_Time_Second: 9
Nilan_Time_Minute: 0
Nilan_Time_Hour: 16
Nilan_Time_Day: 18
Nilan_Time_Month: 1
Nilan_Time_Year: 2017
Nilan_Alarm_Reset: 0
Nilan_Program_Select: 0
Nilan_Program_UserFuncAct: 0
Nilan_Program_UserFuncSet: 1
Nilan_Program_UserTimeSet: 0
Nilan_Program_UserVentSet: 4
Nilan_Program_UserTempSet: 23 C
Nilan_Program_UserOffsSet: 0 C
Nilan_Program_User2FuncAct: 0
Nilan_Program_User2FuncSet: 0
Nilan_Program_User2TimeSet: 0
Nilan_Program_User2VentSet: 4
Nilan_Program_User2TempSet: 23 C
Nilan_Program_User2OffsSet: 0 C
Nilan_Control_Type: 13
Nilan_Control_RunSet: 1
Nilan_Control_ModeSet: 3
Nilan_Control_VentSet: 3
Nilan_Control_TempSet: 22.0 C
Nilan_Control_ServiceMode: 0
Nilan_Control_ServicePct: 50.0 %
Nilan_Control_Preset: 0
Nilan_AirFlow_AirExchMode: 1
Nilan_AirFlow_CoolVent: 0
Nilan_AirTemp_CoolSet: 0 C
Nilan_AirTemp_TempMinSum: 14.0 C
Nilan_AirTemp_TempMinWin: 16.0 C
Nilan_AirTemp_TempMax: 22.0 C
Nilan_AirTemp_TempMaxWin: 25.0 C
Nilan_AirTemp_TempSummer: 12.0 C
Nilan_HotWater_TempSet_T11: 0 C
Nilan_HotWater_TempSet_T12: 0 C
Nilan_CentralHeat_HeatExtern: -1.0 C
Nilan_AirQual_RH_VentLo: 2
Nilan_AirQual_RH_VentHi: 4
Nilan_AirQual_RH_LimLo: 30.0 %
Nilan_AirQual_RH_TimeOut: 0
Nilan_AirQual_CO2_VentHi: 3
Nilan_AirQual_CO2_LimLo: 600
Nilan_AirQual_0O2_LimHi: 800
Nilan_Display_KeyCode: 0


Im Moment schau ich noch bei welchen Werten es Sinn macht sie abzufragen und zu loggen. Ans steuern via FHEM hab ich mich auch noch nicht gewagt, die Lüftung läuft bei uns auch auf Stufe "3 Auto" 24x7 -- habt ihr da andere Einstellungen?

chris050280

Nein, läuft auch dauernd (aber auf Stufe 4) bei mir. Ich glaub, ich muss anfangen, da weiterzubasteln, um wenigstens die Werte ins FHEM zu bekommen.
FHEM auf RasbPi ... + RFXTRX433E
div. HomeEasy und Intertechno - Schalter
sowie Somfy - Rolläden

Lars

#9
Moin! Wie habt ihr die Dip-Schalter gestellt?
Mein 7 EUR USB adapter arbeitet nicht korrekt, jetzt ist der hier verlinkte Adapter unterwegs.

Update: Adapter ist da, alle Schalter auf Off funktioniert.

Gruß
Lars
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem

Spielkind

Zitat von: Lars am 08 April 2017, 10:30:12
Moin! Wie habt ihr die Dip-Schalter gestellt?
Mein 7 EUR USB adapter arbeitet nicht korrekt, jetzt ist der hier verlinkte Adapter unterwegs.

Update: Adapter ist da, alle Schalter auf Off funktioniert.

Gruß
Lars

Sorry, war etwas langsam. :) - Habe bis jetzt auch noch nicht mehr gemacht

# Nilan Belüftung
define ModbusRS485 Modbus /dev/modbus@19200,8,E,1
define Nilan ModbusAttr 30 60
attr Nilan userattr IODev dev-h-defPoll dev-h-defShowGet dev-i-defPoll dev-i-defShowGet event-on-change-reading icon obj-h200-expr obj-h200-reading obj-h201-expr obj-h201-reading obj-i1201-expr obj-i1201-reading obj-i1201-unpack obj-i1202
-expr obj-i1202-reading obj-i1202-unpack obj-i1203-expr obj-i1203-reading obj-i1203-unpack obj-i1204-expr obj-i1204-reading obj-i200-expr obj-i200-reading obj-i200-unpack obj-i203-expr obj-i203-reading obj-i203-unpack obj-i204-expr obj-i2
04-reading obj-i204-unpack obj-i207-expr obj-i207-reading obj-i207-unpack obj-i208-expr obj-i208-reading obj-i208-unpack obj-i215-expr obj-i215-reading obj-i215-unpack obj-i221-expr obj-i221-reading
attr Nilan IODev ModbusRS485
attr Nilan dev-h-defPoll 1
attr Nilan dev-h-defShowGet 1
attr Nilan dev-i-defPoll 1
attr Nilan dev-i-defShowGet 1
attr Nilan event-on-change-reading .*
attr Nilan icon vent_ventilation
attr Nilan obj-h200-expr $val/100
attr Nilan obj-h200-reading Output_ExhaustSpeed
attr Nilan obj-h201-expr $val/100
attr Nilan obj-h201-reading Output_InletSpeed
attr Nilan obj-i1201-expr $val/100
attr Nilan obj-i1201-reading AirTemp_TempInlet
attr Nilan obj-i1201-unpack s>
attr Nilan obj-i1202-expr $val/100
attr Nilan obj-i1202-reading AirTemp_TempCont
attr Nilan obj-i1202-unpack s>
attr Nilan obj-i1203-expr $val/100
attr Nilan obj-i1203-reading AirTemp_TempRoom
attr Nilan obj-i1203-unpack s>
attr Nilan obj-i1204-expr $val/100
attr Nilan obj-i1204-reading AirTemp_EffPct
attr Nilan obj-i200-expr $val/100
attr Nilan obj-i200-reading Input_T0_Controller
attr Nilan obj-i200-unpack s>
attr Nilan obj-i203-expr $val/100
attr Nilan obj-i203-reading Input_T3_Exhaust
attr Nilan obj-i203-unpack s>
attr Nilan obj-i204-expr $val/100
attr Nilan obj-i204-reading Input_T4_Outlet
attr Nilan obj-i204-unpack s>
attr Nilan obj-i207-expr $val/100
attr Nilan obj-i207-reading Input_T7_Inlet
attr Nilan obj-i207-unpack s>
attr Nilan obj-i208-expr $val/100
attr Nilan obj-i208-reading Input_T8_Outdoor
attr Nilan obj-i208-unpack s>
attr Nilan obj-i215-expr $val/100
attr Nilan obj-i215-reading Input_T15_Room
attr Nilan obj-i215-unpack s>
attr Nilan obj-i221-expr $val/100
attr Nilan obj-i221-reading Input_RH
attr Nilan room MyHome
define DbLog_Nilan DbLog db.conf Nilan
attr DbLog_Nilan DbLogType Current/History
define SVG_DbLog_Nilan_1 SVG DbLog_Nilan:SVG_DbLog_Nilan_1:HISTORY
attr SVG_DbLog_Nilan_1 label "Raumtemperatur (HWR): $data{currval1} °C / Luftfeuchtigkeit (Belüftung): $data{currval2} %"
attr SVG_DbLog_Nilan_1 room Charts
define SVG_DbLog_Nilan_2 SVG DbLog_Nilan:SVG_DbLog_Nilan_2:HISTORY
attr SVG_DbLog_Nilan_2 label "Wärmetauschereffizienz: $data{currval1} %"
attr SVG_DbLog_Nilan_2 room Charts
define SVG_DbLog_Nilan_3 SVG DbLog_Nilan:SVG_DbLog_Nilan_3:HISTORY
attr SVG_DbLog_Nilan_3 label "Lüftergeschwindigkeit (Abluft): $data{currval1} % / Lüftergeschwindigkeit (Zuluft): $data{currval2} %"
attr SVG_DbLog_Nilan_3 room Charts


Gute Ideen immer her. :)

Lars

Ich bastel gerade noch an meinem Modul, derzeit ist die Kommunikation noch nicht fehlerfrei. Siehe https://forum.fhem.de/index.php/topic,70294.0.html
Welche Typen habt ihr denn im Einsatz? Zur Wahl stünden VPM, VPL, VP, VGU und COMF.
FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem