diff --git a/README.md b/README.md index fda41cc..2721206 100644 --- a/README.md +++ b/README.md @@ -18,18 +18,16 @@ Copy config files from openhab2 folder into your openHAB2 installation (i.e. /et ## Details -### Create nilan heatpump modbus items out of csv file +Some details how I created my config-files. + +* Create nilan heatpump modbus items out of csv file / nilan documentation ```sh $ cd /etc/openHAB2/scripts $ python createNilanItems.py > ../items/nilan.items ``` +* Add modbus address binding according to nilan address-specifications and the configuration in services/modbus.cfg +* Add Items into your main.sitemap file. -### Automatically update items that are not bind with openHAB2 Modbus binding -Currently I didn't get all items bind with openHAB2 so I used a workaround to get all the nilan sensors into openHAB2 items. - -```sh -$ echo "* * * * * root cd /etc/openHAB2/scripts/ && python readNilan.py" >> /etc/contab -``` ## Other useful links * https://github.com/nickma82/nilan_communication_bringup diff --git a/openhab2/icons/classic/fire-0.png b/openhab2/icons/classic/fire-0.png new file mode 100644 index 0000000..daa2613 Binary files /dev/null and b/openhab2/icons/classic/fire-0.png differ diff --git a/openhab2/icons/classic/fire-1.png b/openhab2/icons/classic/fire-1.png new file mode 100644 index 0000000..6dbc80c Binary files /dev/null and b/openhab2/icons/classic/fire-1.png differ diff --git a/openhab2/icons/classic/fire.png b/openhab2/icons/classic/fire.png new file mode 100644 index 0000000..daa2613 Binary files /dev/null and b/openhab2/icons/classic/fire.png differ diff --git a/openhab2/icons/classic/flap-0.png b/openhab2/icons/classic/flap-0.png new file mode 100644 index 0000000..2734184 Binary files /dev/null and b/openhab2/icons/classic/flap-0.png differ diff --git a/openhab2/icons/classic/flap-1.png b/openhab2/icons/classic/flap-1.png new file mode 100644 index 0000000..82aea4e Binary files /dev/null and b/openhab2/icons/classic/flap-1.png differ diff --git a/openhab2/icons/classic/flap.png b/openhab2/icons/classic/flap.png new file mode 100644 index 0000000..c3aade1 Binary files /dev/null and b/openhab2/icons/classic/flap.png differ diff --git a/openhab2/icons/classic/light-0.png b/openhab2/icons/classic/light-0.png new file mode 100644 index 0000000..f581dd9 Binary files /dev/null and b/openhab2/icons/classic/light-0.png differ diff --git a/openhab2/icons/classic/light-1.png b/openhab2/icons/classic/light-1.png new file mode 100644 index 0000000..0e99648 Binary files /dev/null and b/openhab2/icons/classic/light-1.png differ diff --git a/openhab2/icons/classic/light.png b/openhab2/icons/classic/light.png new file mode 100644 index 0000000..0e99648 Binary files /dev/null and b/openhab2/icons/classic/light.png differ diff --git a/openhab2/icons/classic/siren-0.png b/openhab2/icons/classic/siren-0.png new file mode 100644 index 0000000..cb41fd2 Binary files /dev/null and b/openhab2/icons/classic/siren-0.png differ diff --git a/openhab2/icons/classic/siren-1.png b/openhab2/icons/classic/siren-1.png new file mode 100644 index 0000000..f4ac892 Binary files /dev/null and b/openhab2/icons/classic/siren-1.png differ diff --git a/openhab2/icons/classic/siren.png b/openhab2/icons/classic/siren.png new file mode 100644 index 0000000..f4ac892 Binary files /dev/null and b/openhab2/icons/classic/siren.png differ diff --git a/openhab2/items/groups.items b/openhab2/items/groups.items index aa39dff..8523626 100755 --- a/openhab2/items/groups.items +++ b/openhab2/items/groups.items @@ -1,3 +1,3 @@ Group All -Group gNilan "Alle Modbus Attribute (input + holding)" (All) -Group gNilanInput "Alle Sensoren" (gNilan) +Group gNilan "All Modbus attributes (input + holding)" (All) +Group gNilanProgram "User program settings" \ No newline at end of file diff --git a/openhab2/items/nilan.items b/openhab2/items/nilan.items index 34a6c36..1fa1200 100755 --- a/openhab2/items/nilan.items +++ b/openhab2/items/nilan.items @@ -1,150 +1,212 @@ -Number Nilan_Bus_Version "Protocol version number [%d]" (gNilanInput) -String Nilan_App_VersionMajor "Software version - major (2 character ascii text) [%s]" (gNilanInput) -String Nilan_App_VersionMinor "Software version - minor (2 character ascii text) [%s]" (gNilanInput) -String Nilan_App_VersionRelease "Software version - release (2 character ascii text) [%s]" (gNilanInput) -Number Nilan_Input_UserFunc "User function [%d]" (gNilanInput) -Number Nilan_Input_AirFilter "Air filter alarm [%d]" (gNilanInput) -Number Nilan_Input_DoorOpen "Door contact [%d]" (gNilanInput) -Number Nilan_Input_Smoke "Fire/Smoke alarm [%d]" (gNilanInput) -Number Nilan_Input_MotorThermo "Motor thermo fuse [%d]" (gNilanInput) -Number Nilan_Input_Frost_Overht "Heating surface frost / overheat [%d]" (gNilanInput) -Number Nilan_Input_AirFlow "Airflow monitor (guard) [%d]" (gNilanInput) -Number Nilan_Input_P_HI "High pressure switch [%d]" (gNilanInput) -Number Nilan_Input_P_LO "Low pressure switch [%d]" (gNilanInput) -Number Nilan_Input_Boil "Hot water boiling [%d]" (gNilanInput) -Number Nilan_Input_3WayPos "Hot water 3-way valve position [%d]" (gNilanInput) -Number Nilan_Input_DefrostHG "Hotgas defrost type selection [%d]" (gNilanInput) -Number Nilan_Input_Defrost "Defrost thermostat [%d]" (gNilanInput) -Number Nilan_Input_UserFunc_2 "User function 2 [%d]" (gNilanInput) -Number Nilan_Input_T0_Controller "Controller board temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T1_Intake "Fresh air intake temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T2_Inlet "Inlet temperature (before heater) [%.1f] °C" (gNilanInput) -Number Nilan_Input_T3_Exhaust "Room exhaust temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T4_Outlet "Outlet temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T5_Cond "Condenser temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T6_Evap "Evaporator temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T7_Inlet "Inlet temperature (after heater) [%.1f] °C" (gNilanInput) -Number Nilan_Input_T8_Outdoor "Outdoor temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T9_Heater "Heating surface temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T10_Extem "External room temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T11_Top "Hot water top temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T12_Bottom "Hot water bottom temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T13_Retum "EK return temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T14_Supply "EK supply temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T15_Room "User panel room temperature [%.1f] °C" (gNilanInput) -Number Nilan_Input_T16 "AUX temperature (sacrificial anode) [%.1f] °C" (gNilanInput) -Number Nilan_Input_RH "Humidity [%.1f] %" (gNilanInput) -Number Nilan_Input_0O2 "Carbon dioxide [%d]" (gNilanInput) -Number Nilan_Alarm_Status "Alarm state bit mask [%d]" (gNilanInput) -Number Nilan_Alarm_List_1_ID "Alarm 1 - Code [%d]" (gNilanInput) -Number Nilan_Alarm_List_1_Date "Alarm 1 - Date [%d]" (gNilanInput) -Number Nilan_Alarm_List_1_Time "Alarm 1 - Time [%d]" (gNilanInput) -Number Nilan_Alarm_List_2_ID "Alarm 2 - Code [%d]" (gNilanInput) -Number Nilan_Alarm_List_2_Date "Alarm 2 - Date [%d]" (gNilanInput) -Number Nilan_Alarm_List_2_Time "Alarm 2 - Time [%d]" (gNilanInput) -Number Nilan_Alarm_List_3_ID "Alarm 3 - Code [%d]" (gNilanInput) -Number Nilan_Alarm_List_3_Date "Alarm 3 - Date [%d]" (gNilanInput) -Number Nilan_Alarm_List_3_Time "Alarm 3 - Time [%d]" (gNilanInput) -Number Nilan_Control_RunAct "Actual on/off state [%d]" (gNilanInput) -Number Nilan_Control_ModeAct "Actual operation mode [%d]" (gNilanInput) -Number Nilan_Control_State "Actual control state [%d]" (gNilanInput) -Number Nilan_Control_SeclnState "Actual time in state [%d]" (gNilanInput) -Number Nilan_AirTemp_IsSummer "Summer state [%d]" (gNilanInput) -Number Nilan_AirTemp_Tempinlet "Inlet temperature request (T7 setpoint) [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempCont "Actual value for controlled temperature [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempRoom "Actual room temperature (T15 or T10) [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_EffPct "Passive heat exchanger efficiency [%.1f] %" (gNilanInput) -Number Nilan_AirTemp_CapSet "Requested capacity [%.1f] %" (gNilanInput) -Number Nilan_AirTemp_CapAct "Actual capacity [%.1f] %" (gNilanInput) -Number Nilan_Display_LED_1 "User panel indicator light [%d]" (gNilanInput) -Number Nilan_Display_LED_2 " [%d]" (gNilanInput) -String Nilan_Display_Text_1_2 "Text line 1 character 1-2 [%s]" (gNilanInput) -String Nilan_Display_Text_3_4 " [%s]" (gNilanInput) -String Nilan_Display_Text_5_6 " [%s]" (gNilanInput) -String Nilan_Display_Text_7_8 " [%s]" (gNilanInput) -Number Nilan_Display_Attr_1_8 "Text line 1 flags [%d]" (gNilanInput) -String Nilan_Display_Text_9_10 "ext line 2 character 9-10 [%s]" (gNilanInput) -String Nilan_Display_Text_11_12 " [%s]" (gNilanInput) -String Nilan_Display_Text_13_14 " [%s]" (gNilanInput) -String Nilan_Display_Text_15_16 " [%s]" (gNilanInput) -Number Nilan_Display_Attr_9_16 "Text line 2 flags [%d]" (gNilanInput) -Number Nilan_Bus_Address "Protocol node address (default = 30) [%d]" (gNilanInput) -Number Nilan_Output_AirFlap "Air flap [%d]" (gNilanInput) -Number Nilan_Output_SmokeFlap "Fire/Smoke flap [%d]" (gNilanInput) -Number Nilan_Output_BypassOpen "Bypass flap open [%d]" (gNilanInput) -Number Nilan_Output_BypassClose "Bypass flap close [%d]" (gNilanInput) -Number Nilan_Output_AirCircPump "Air heat circulation pump [%d]" (gNilanInput) -Number Nilan_Output_AirHeatAllo "Air heating selected [%d]" (gNilanInput) -Number Nilan_Output_AirHeat_1 "Air heater relays [%d]" (gNilanInput) -Number Nilan_Output_AirHeat_2 "Air heater relays [%d]" (gNilanInput) -Number Nilan_Output_AirHeat_3 "Air heater relays [%d]" (gNilanInput) -Number Nilan_Output_Compressor "Compressor [%d]" (gNilanInput) -Number Nilan_Output_Compressor2 "Compressor 2 [%d]" (gNilanInput) -Number Nilan_Output_4WayCool "4-way valve [%d]" (gNilanInput) -Number Nilan_Output_HotgasHeat "Hotgas valve - heat [%d]" (gNilanInput) -Number Nilan_Output_HotgasCool "Hotgas valve - cool [%d]" (gNilanInput) -Number Nilan_Output_CondOpen "Air condenser active [%d]" (gNilanInput) -Number Nilan_Output_CondClose "Air condenser inactive [%d]" (gNilanInput) -Number Nilan_Output_WaterHeat "Hot water heater [%d]" (gNilanInput) -Number Nilan_Output_3WayValve "Hot water 3-way valve [%d]" (gNilanInput) -Number Nilan_Output_CenCircPump "EK circulation pump [%d]" (gNilanInput) -Number Nilan_Output_CenHeat_1 "EK heater relays [%d]" (gNilanInput) -Number Nilan_Output_CenHeat_2 "EK heater relays [%d]" (gNilanInput) -Number Nilan_Output_CenHeat_3 "EK heater relays [%d]" (gNilanInput) -Number Nilan_Output_CenHeatExt "External radiator heat [%d]" (gNilanInput) -Number Nilan_Output_UserFunc "User function active [%d]" (gNilanInput) -Number Nilan_Output_UserFunc_2 "User function active [%d]" (gNilanInput) -Number Nilan_Output_Defrosting "Defrost function active [%d]" (gNilanInput) -Number Nilan_Output_ExhaustSpeed "Exhaust fan speed [%.1f] %" (gNilanInput) -Number Nilan_Output_InletSpeed "Inlet fan speed [%.1f] %" (gNilanInput) -Number Nilan_Output_AirHeatCap "Air heater capacity [%.1f] %" (gNilanInput) -Number Nilan_Output_CenHeatCap "Central heater capacity [%.1f] %" (gNilanInput) -Number Nilan_Output_CprCap "Compresor capacity [%.1f] %" (gNilanInput) -Number Nilan_Output_EarthSpeed "Earth tube air intake fan speed [%.1f] %" (gNilanInput) -Number Nilan_Time_Second "Second [%d]" (gNilanInput) -Number Nilan_Time_Minute "Minute [%d]" (gNilanInput) -Number Nilan_Time_Hour "Hour [%d]" (gNilanInput) -Number Nilan_Time_Day "Day [%d]" (gNilanInput) -Number Nilan_Time_Month "Month [%d]" (gNilanInput) -Number Nilan_Time_Year "Year [%d]" (gNilanInput) -Number Nilan_Alarm_Reset "Clear one specific alarm code or all [%d]" (gNilanInput) -Number Nilan_Program_Select "Week program nb. select [%d]" (gNilanInput) -Number Nilan_Program_UserFuncAct "User function active (See UserFuncSet) [%d]" (gNilanInput) -Number Nilan_Program_UserFuncSet "User function select [%d]" (gNilanInput) -Number Nilan_Program_UserTimeSet "Min User function period [%d]" (gNilanInput) -Number Nilan_Program_UserVentSet "Step User function ventilation [%d]" (gNilanInput) -Number Nilan_Program_UserTempSet "User function temperature (Extend function only) [%.1f] °C" (gNilanInput) -Number Nilan_Program_UserOffsSet "User function temperature(Offset function only) [%.1f] °C" (gNilanInput) -Number Nilan_Program_User2FuncAct "User function active (See UserFuncSet2) [%d]" (gNilanInput) -Number Nilan_Program_User2FuncSet "User function select [%d]" (gNilanInput) -Number Nilan_Program_User2TimeSet "Min User function period [%d]" (gNilanInput) -Number Nilan_Program_User2VentSet "Step User function ventilation [%d]" (gNilanInput) -Number Nilan_Program_User2TempSet "User function temperature (Extend function only) [%.1f] °C" (gNilanInput) -Number Nilan_Program_User2OffsSet "User function temperature(Offset function only) [%.1f] °C" (gNilanInput) -Number Nilan_Control_Type "Machine type select [%d]" (gNilanInput) -Number Nilan_Control_RunSet "User on / off select [%d]" (gNilanInput) -Number Nilan_Control_ModeSet "User operation mode select [%d]" (gNilanInput) -Number Nilan_Control_VentSet "User ventilation step select [%d]" (gNilanInput) -Number Nilan_Control_TempSet "User temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_Control_ServiceMode "Service mode select [%d]" (gNilanInput) -Number Nilan_Control_ServicePct "Service mode capacity [%.1f] %" (gNilanInput) -Number Nilan_Control_Preset "Request preset to factory [%d]" (gNilanInput) -Number Nilan_AirFlow_AirExchMode "Air exchange mode [%d]" (gNilanInput) -Number Nilan_AirFlow_CoolVent "Cooling high ventilation step [%d]" (gNilanInput) -Number Nilan_AirTemp_CoolSet "Cooling temperature setpoint select [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMinSum "Inlet temp. min. summer [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMinWin "Inlet temp. min. winter [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMax "Inlet temp. max. summer [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempMaxWin "Inlet temp. max. winter [%.1f] °C" (gNilanInput) -Number Nilan_AirTemp_TempSummer "Summer/winter limit [%.1f] °C" (gNilanInput) -Number Nilan_HotWater_TempSet_T11 "Top temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_HotWater_TempSet_T12 "Bottom temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_CentralHeat_HeatExtern "External heating offset from room temperature setpoint [%.1f] °C" (gNilanInput) -Number Nilan_AirQual_RH_VentLo "Humidity low winter step select [%d]" (gNilanInput) -Number Nilan_AirQual_RH_VentHi "Humidity high step select [%d]" (gNilanInput) -Number Nilan_AirQual_RH_LimLo "Humidity limit for low ventilation [%.1f] %" (gNilanInput) -Number Nilan_AirQual_RH_TimeOut "Humidity max. time on high ventilation [%d]" (gNilanInput) -Number Nilan_AirQual_CO2_VentHi "CO2 high step select [%d]" (gNilanInput) -Number Nilan_AirQual_CO2_LimLo "CO2 limit for normal ventilation [%d]" (gNilanInput) -Number Nilan_AirQual_0O2_LimHi "CO2 limit for high ventilation [%d]" (gNilanInput) -Number Nilan_Display_KeyCode "User panel keypress [%d]" (gNilanInput) +Number Nilan_Bus_Version "Protocol version number [%d]" (gNilan) {modbus="nilan_input_device:0"} +String Nilan_App_VersionMajor "Software version - major (2 character ascii text) [%s]" (gNilan) {modbus="nilan_input_device:1"} +String Nilan_App_VersionMinor "Software version - minor (2 character ascii text) [%s]" (gNilan) {modbus="nilan_input_device:2"} +String Nilan_App_VersionRelease "Software version - release (2 character ascii text) [%s]" (gNilan) {modbus="nilan_input_device:3"} + +Number Nilan_Input_UserFunc "User function [%d]" (gNilan) {modbus="nilan_input_discreteio:0"} +Number Nilan_Input_AirFilter "Air filter alarm [%d]" (gNilan) {modbus="nilan_input_discreteio:1"} +Number Nilan_Input_DoorOpen "Door contact [%d]" (gNilan) {modbus="nilan_input_discreteio:2"} +Number Nilan_Input_Smoke "Fire/Smoke alarm [%d]" (gNilan) {modbus="nilan_input_discreteio:3"} +Number Nilan_Input_MotorThermo "Motor thermo fuse [%d]" (gNilan) {modbus="nilan_input_discreteio:4"} +Number Nilan_Input_Frost_Overht "Heating surface frost / overheat [%d]" (gNilan) {modbus="nilan_input_discreteio:5"} +Number Nilan_Input_AirFlow "Airflow monitor (guard) [%d]" (gNilan) {modbus="nilan_input_discreteio:6"} +Number Nilan_Input_P_HI "High pressure switch [%d]" (gNilan) {modbus="nilan_input_discreteio:7"} +Number Nilan_Input_P_LO "Low pressure switch [%d]" (gNilan) {modbus="nilan_input_discreteio:8"} +Number Nilan_Input_Boil "Hot water boiling [%d]" (gNilan) {modbus="nilan_input_discreteio:9"} +Number Nilan_Input_3WayPos "Hot water 3-way valve position [%d]" (gNilan) {modbus="nilan_input_discreteio:10"} +Number Nilan_Input_DefrostHG "Hotgas defrost type selection [%d]" (gNilan) {modbus="nilan_input_discreteio:11"} +Number Nilan_Input_Defrost "Defrost thermostat [%d]" (gNilan) {modbus="nilan_input_discreteio:12"} +Number Nilan_Input_UserFunc_2 "User function 2 [%d]" (gNilan) {modbus="nilan_input_discreteio:13"} + +Number Nilan_Input_T0_Controller_Internal "Controller board temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:0"} +Number Nilan_Input_T0_Controller "Controller board temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T1_Intake_Internal "Fresh air intake temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:1"} +Number Nilan_Input_T1_Intake "Fresh air intake temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T2_Inlet_Internal "Inlet temperature (before heater) [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:2"} +Number Nilan_Input_T2_Inlet "Inlet temperature (before heater) [%.1f °C]" (gNilan) +Number Nilan_Input_T3_Exhaust_Internal "Room exhaust temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:3"} +Number Nilan_Input_T3_Exhaust "Room exhaust temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T4_Outlet_Internal "Outlet temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:4"} +Number Nilan_Input_T4_Outlet "Outlet temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T5_Cond_Internal "Condenser temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:5"} +Number Nilan_Input_T5_Cond "Condenser temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T6_Evap_Internal "Evaporator temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:6"} +Number Nilan_Input_T6_Evap "Evaporator temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T7_Inlet_Internal "Inlet temperature (after heater) [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:7"} +Number Nilan_Input_T7_Inlet "Inlet temperature (after heater) [%.1f °C]" (gNilan) +Number Nilan_Input_T8_Outdoor_Internal "Outdoor temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:8"} +Number Nilan_Input_T8_Outdoor "Outdoor temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T9_Heater_Internal "Heating surface temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:9"} +Number Nilan_Input_T9_Heater "Heating surface temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T10_Extem_Internal "External room temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:10"} +Number Nilan_Input_T10_Extem "External room temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T11_Top_Internal "Hot water top temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:11"} +Number Nilan_Input_T11_Top "Hot water top temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T12_Bottom_Internal "Hot water bottom temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:12"} +Number Nilan_Input_T12_Bottom "Hot water bottom temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T13_Retum_Internal "EK return temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:13"} +Number Nilan_Input_T13_Retum "EK return temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T14_Supply_Internal "EK supply temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:14"} +Number Nilan_Input_T14_Supply "EK supply temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T15_Room_Internal "User panel room temperature [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:15"} +Number Nilan_Input_T15_Room "User panel room temperature [%.1f °C]" (gNilan) +Number Nilan_Input_T16_Internal "AUX temperature (sacrificial anode) [%.1f °C]" (gNilan) {modbus="nilan_input_analogio:16"} +Number Nilan_Input_T16 "AUX temperature (sacrificial anode) [%.1f °C]" (gNilan) +Number Nilan_Input_RH_Internal "Humidity [%.0f %%]" (gNilan) {modbus="nilan_input_analogio:21"} +Number Nilan_Input_RH "Humidity [%.0f %%]" (gNilan) +Number Nilan_Input_CO2_Internal "Carbon dioxide [%d]" (gNilan) {modbus="nilan_input_analogio:22"} +Number Nilan_Input_CO2 "Carbon dioxide [%d]" (gNilan) + +Number Nilan_Alarm_Status "Alarm state bit mask [%d]" (gNilan) {modbus="nilan_input_alarm:0"} +Number Nilan_Alarm_List_1_ID "Alarm 1 - Code [%d]" (gNilan) {modbus="nilan_input_alarm:1"} +Number Nilan_Alarm_List_1_Date "Alarm 1 - Date [%d]" (gNilan) {modbus="nilan_input_alarm:2"} +Number Nilan_Alarm_List_1_Time "Alarm 1 - Time [%d]" (gNilan) {modbus="nilan_input_alarm:3"} +Number Nilan_Alarm_List_2_ID "Alarm 2 - Code [%d]" (gNilan) {modbus="nilan_input_alarm:4"} +Number Nilan_Alarm_List_2_Date "Alarm 2 - Date [%d]" (gNilan) {modbus="nilan_input_alarm:5"} +Number Nilan_Alarm_List_2_Time "Alarm 2 - Time [%d]" (gNilan) {modbus="nilan_input_alarm:6"} +Number Nilan_Alarm_List_3_ID "Alarm 3 - Code [%d]" (gNilan) {modbus="nilan_input_alarm:7"} +Number Nilan_Alarm_List_3_Date "Alarm 3 - Date [%d]" (gNilan) {modbus="nilan_input_alarm:8"} +Number Nilan_Alarm_List_3_Time "Alarm 3 - Time [%d]" (gNilan) {modbus="nilan_input_alarm:9"} + +Number Nilan_Control_RunAct "Actual on/off state [MAP(nilan_on_off.map):%s]" (gNilan) {modbus="nilan_input_control:0"} +Number Nilan_Control_ModeAct "Actual operation mode [MAP(nilan_control_modeact.map):%s]" (gNilan) {modbus="nilan_input_control:1"} +Number Nilan_Control_State "Actual control state [MAP(nilan_control_state.map):%s]" (gNilan) {modbus="nilan_input_control:2"} +Number Nilan_Control_SeclnState "Actual time in state [%d]" (gNilan) {modbus="nilan_input_control:3"} + +Number Nilan_AirTemp_IsSummer "Summer state [%d]" (gNilan) {modbus="nilan_input_airtemp:0"} +Number Nilan_AirTemp_TempinletSet_Internal "Inlet temperature request (T7 setpoint) [%.1f °C]" (gNilan) {modbus="nilan_input_airtemp:1"} +Number Nilan_AirTemp_TempinletSet "Inlet temperature request (T7 setpoint) [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempControl_Internal "Actual value for controlled temperature [%.1f °C]" (gNilan) {modbus="nilan_input_airtemp:2"} +Number Nilan_AirTemp_TempControl "Actual value for controlled temperature [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempRoom_Internal "Actual room temperature (T15 or T10) [%.1f °C]" (gNilan) {modbus="nilan_input_airtemp:3"} +Number Nilan_AirTemp_TempRoom "Actual room temperature (T15 or T10) [%.1f °C]" (gNilan) +Number Nilan_AirTemp_EffPct_Internal "Passive heat exchanger efficiency [%.1f %%]" (gNilan) {modbus="nilan_input_airtemp:4"} +Number Nilan_AirTemp_EffPct "Passive heat exchanger efficiency [%.1f %%]" (gNilan) +Number Nilan_AirTemp_CapSet "Requested capacity [%.1f %%]" (gNilan) {modbus="nilan_input_airtemp:5"} +Number Nilan_AirTemp_CapAct "Actual capacity [%.1f %%]" (gNilan) {modbus="nilan_input_airtemp:6"} + +Number Nilan_Display_LED_1 "User panel indicator light" (gNilan) {modbus="nilan_input_userpanel:0"} +Number Nilan_Display_LED_2 "User panel indicator light2" (gNilan) {modbus="nilan_input_userpanel:1"} +String Nilan_Display_Text_1_2 "Text line 1 character 1-2 [%s]" (gNilan) {modbus="nilan_input_userpanel:2"} +String Nilan_Display_Text_3_4 "Text line 1 character 3-4 [%s]" (gNilan) {modbus="nilan_input_userpanel:3"} +String Nilan_Display_Text_5_6 "Text line 1 character 5-6 [%s]" (gNilan) {modbus="nilan_input_userpanel:4"} +String Nilan_Display_Text_7_8 "Text line 1 character 7-8 [%s]" (gNilan) {modbus="nilan_input_userpanel:5"} +Number Nilan_Display_Attr_1_8 "Text line 1 flags [%d]" (gNilan) {modbus="nilan_input_userpanel:6"} +String Nilan_Display_Text_9_10 "Text line 2 character 9-10 [%s]" (gNilan) {modbus="nilan_input_userpanel:7"} +String Nilan_Display_Text_11_12 "Text line 2 character 11-12 [%s]" (gNilan) {modbus="nilan_input_userpanel:8"} +String Nilan_Display_Text_13_14 "Text line 2 character 13-14 [%s]" (gNilan) {modbus="nilan_input_userpanel:9"} +String Nilan_Display_Text_15_16 "Text line 2 character 15-16 [%s]" (gNilan) {modbus="nilan_input_userpanel:10"} +Number Nilan_Display_Attr_9_16 "Text line 2 flags [%d]" (gNilan) {modbus="nilan_input_userpanel:11"} + + + + +Number Nilan_Bus_Address "Protocol node address (default = 30) [%d]" (gNilan) {modbus="nilan_holding_device:0"} + +Number Nilan_Output_AirFlap "Air flap [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:0"} +Number Nilan_Output_SmokeFlap "Fire/Smoke flap [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:1"} +Number Nilan_Output_BypassOpen "Bypass flap open [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:2"} +Number Nilan_Output_BypassClose "Bypass flap close [MAP(nilan_flap.map):%s]" (gNilan) {modbus="nilan_holding_discreteio:3"} +Number Nilan_Output_AirCircPump "Air heat circulation pump [%d]" (gNilan) {modbus="nilan_holding_discreteio:4"} +Number Nilan_Output_AirHeatAllo "Air heating selected [%d]" (gNilan) {modbus="nilan_holding_discreteio:5"} +Number Nilan_Output_AirHeat_1 "Air heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:6"} +Number Nilan_Output_AirHeat_2 "Air heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:7"} +Number Nilan_Output_AirHeat_3 "Air heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:8"} +Number Nilan_Output_Compressor "Compressor [%d]" (gNilan) {modbus="nilan_holding_discreteio:9"} +Number Nilan_Output_Compressor2 "Compressor 2 [%d]" (gNilan) {modbus="nilan_holding_discreteio:10"} +Number Nilan_Output_4WayCool "4-way valve [%d]" (gNilan) {modbus="nilan_holding_discreteio:11"} +Number Nilan_Output_HotgasHeat "Hotgas valve - heat [%d]" (gNilan) {modbus="nilan_holding_discreteio:12"} +Number Nilan_Output_HotgasCool "Hotgas valve - cool [%d]" (gNilan) {modbus="nilan_holding_discreteio:13"} +Number Nilan_Output_CondOpen "Air condenser active [%d]" (gNilan) {modbus="nilan_holding_discreteio:14"} +Number Nilan_Output_CondClose "Air condenser inactive [%d]" (gNilan) {modbus="nilan_holding_discreteio:15"} +Number Nilan_Output_WaterHeat "Hot water heater [%d]" (gNilan) {modbus="nilan_holding_discreteio:16"} +Number Nilan_Output_3WayValve "Hot water 3-way valve [%d]" (gNilan) {modbus="nilan_holding_discreteio:17"} +Number Nilan_Output_CenCircPump "EK circulation pump [%d]" (gNilan) {modbus="nilan_holding_discreteio:18"} +Number Nilan_Output_CenHeat_1 "EK heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:19"} +Number Nilan_Output_CenHeat_2 "EK heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:20"} +Number Nilan_Output_CenHeat_3 "EK heater relays [%d]" (gNilan) {modbus="nilan_holding_discreteio:21"} +Number Nilan_Output_CenHeatExt "External radiator heat [%d]" (gNilan) {modbus="nilan_holding_discreteio:22"} +Number Nilan_Output_UserFunc "User function active [%d]" (gNilan) {modbus="nilan_holding_discreteio:23"} +Number Nilan_Output_UserFunc_2 "User function active [%d]" (gNilan) {modbus="nilan_holding_discreteio:24"} +Number Nilan_Output_Defrosting "Defrost function active [%d]" (gNilan) {modbus="nilan_holding_discreteio:25"} + +Number Nilan_Output_ExhaustSpeed_Internal "Exhaust fan speed [%.0f %%]" (gNilan) {modbus="nilan_holding_analogio:0"} +Number Nilan_Output_ExhaustSpeed "Exhaust fan speed [%.0f %%]" (gNilan) +Number Nilan_Output_InletSpeed_Internal "Inlet fan speed [%.0f %%]" (gNilan) {modbus="nilan_holding_analogio:1"} +Number Nilan_Output_InletSpeed "Inlet fan speed [%.0f %%]" (gNilan) +Number Nilan_Output_AirHeatCap "Air heater capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:2"} +Number Nilan_Output_CenHeatCap "Central heater capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:3"} +Number Nilan_Output_CprCap "Compresor capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:4"} +Number Nilan_Output_EarthSpeed "Earth tube air intake fan speed [%.1f %%]" (gNilan) {modbus="nilan_holding_analogio:5"} + +Number Nilan_Time_Second "Second [%d]" (gNilan) {modbus="nilan_holding_time:0"} +Number Nilan_Time_Minute "Minute [%d]" (gNilan) {modbus="nilan_holding_time:1"} +Number Nilan_Time_Hour "Hour [%d]" (gNilan) {modbus="nilan_holding_time:2"} +Number Nilan_Time_Day "Day [%d]" (gNilan) {modbus="nilan_holding_time:3"} +Number Nilan_Time_Month "Month [%d]" (gNilan) {modbus="nilan_holding_time:4"} +Number Nilan_Time_Year "Year [%d]" (gNilan) {modbus="nilan_holding_time:5"} + +Number Nilan_Alarm_Reset "Clear one specific alarm code or all [%d]" (gNilan) {modbus="nilan_holding_alarm:0"} + +Number Nilan_Program_Select "Week program nb. select [MAP(nilan_program_select.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_weekprogram:0"} + +Number Nilan_Program_UserFuncAct "User function active (See UserFuncSet) [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:0"} +Number Nilan_Program_UserFuncSet "User function select [MAP(nilan_program_userfuncset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:1"} +Number Nilan_Program_UserTimeSet "Min User function period [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:2"} +Number Nilan_Program_UserVentSet "Step User function ventilation [MAP(nilan_ventset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:3"} +Number Nilan_Program_UserTempSet "User function temperature (Extend function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:4"} +Number Nilan_Program_UserOffsSet "User function temperature(Offset function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user1functions:5"} + +Number Nilan_Program_User2FuncAct "User function active (See UserFuncSet2) [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:0"} +Number Nilan_Program_User2FuncSet "User function select [MAP(nilan_program_userfuncset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:1"} +Number Nilan_Program_User2TimeSet "Min User function period [%d]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:2"} +Number Nilan_Program_User2VentSet "Step User function ventilation [MAP(nilan_ventset.map):%s]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:3"} +Number Nilan_Program_User2TempSet "User function temperature (Extend function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:4"} +Number Nilan_Program_User2OffsSet "User function temperature(Offset function only) [%.1f °C]" (gNilan,gNilanProgram) {modbus="nilan_holding_user2functions:5"} + +Number Nilan_Control_Type "Machine type select [%d]" (gNilan) {modbus="nilan_holding_control:0"} +Number Nilan_Control_RunSet "User on / off select [MAP(nilan_on_off.map):%s]" (gNilan) {modbus="nilan_holding_control:1"} +Number Nilan_Control_ModeSet "User operation mode select [MAP(nilan_control_modeact.map):%s]" (gNilan) {modbus="nilan_holding_control:2"} +Number Nilan_Control_VentSet "User ventilation step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_control:3"} +Number Nilan_Control_TempSet_Internal "User temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_control:4"} +Number Nilan_Control_TempSet "User temperature setpoint [%.1f °C]" (gNilan) +Number Nilan_Control_ServiceMode "Service mode select [MAP(nilan_control_servicemode.map):%s]" (gNilan) {modbus="nilan_holding_control:5"} +Number Nilan_Control_ServicePct_Internal "Service mode capacity [%.1f %%]" (gNilan) {modbus="nilan_holding_control:6"} +Number Nilan_Control_ServicePct "Service mode capacity [%.1f %%]" (gNilan) +Number Nilan_Control_Preset "Request preset to factory [%d]" (gNilan) {modbus="nilan_holding_control:7"} + +Number Nilan_AirFlow_AirExchMode "Air exchange mode [MAP(nilan_airflow_airexchmode.map):%s]" (gNilan) {modbus="nilan_holding_airflow:0"} +Number Nilan_AirFlow_CoolVent "Cooling high ventilation step [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airflow:1"} + +Number Nilan_AirTemp_CoolSet "Cooling temperature setpoint select [%d]" (gNilan) {modbus="nilan_holding_airtemp:0"} +Number Nilan_AirTemp_TempMinSum_Internal "Inlet temp. min. summer [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:1"} +Number Nilan_AirTemp_TempMinSum "Inlet temp. min. summer [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempMinWin_Internal "Inlet temp. min. winter [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:2"} +Number Nilan_AirTemp_TempMinWin "Inlet temp. min. winter [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempMax_Internal "Inlet temp. max. summer [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:3"} +Number Nilan_AirTemp_TempMax "Inlet temp. max. summer [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempMaxWin_Internal "Inlet temp. max. winter [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:4"} +Number Nilan_AirTemp_TempMaxWin "Inlet temp. max. winter [%.1f °C]" (gNilan) +Number Nilan_AirTemp_TempSummer_Internal "Summer/winter limit [%.1f °C]" (gNilan) {modbus="nilan_holding_airtemp:5"} +Number Nilan_AirTemp_TempSummer "Summer/winter limit [%.1f °C]" (gNilan) + +Number Nilan_HotWater_TempSet_T11_Internal "Top temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_hotwater:0"} +Number Nilan_HotWater_TempSet_T11 "Top temperature setpoint [%.1f °C]" (gNilan) +Number Nilan_HotWater_TempSet_T12_Internal "Bottom temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_hotwater:1"} +Number Nilan_HotWater_TempSet_T12 "Bottom temperature setpoint [%.1f °C]" (gNilan) + +Number Nilan_CentralHeat_HeatExtern_Internal "External heating offset from room temperature setpoint [%.1f °C]" (gNilan) {modbus="nilan_holding_centheat:0"} +Number Nilan_CentralHeat_HeatExtern "External heating offset from room temperature setpoint [%.1f °C]" (gNilan) + +Number Nilan_AirQual_RH_VentLo "Humidity low winter step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airqualrh:0"} +Number Nilan_AirQual_RH_VentHi "Humidity high step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airqualrh:1"} +Number Nilan_AirQual_RH_LimLo_Internal "Humidity limit for low ventilation [%.0f %%]" (gNilan) {modbus="nilan_holding_airqualrh:2"} +Number Nilan_AirQual_RH_LimLo "Humidity limit for low ventilation [%.0f %%]" (gNilan) +Number Nilan_AirQual_RH_TimeOut "Humidity max. time on high ventilation [%d min.]" (gNilan) {modbus="nilan_holding_airqualrh:3"} + +Number Nilan_AirQual_CO2_VentHi "CO2 high step select [MAP(nilan_ventset.map):%s]" (gNilan) {modbus="nilan_holding_airqualco2:0"} +Number Nilan_AirQual_CO2_LimLo "CO2 limit for normal ventilation [%d]" (gNilan) {modbus="nilan_holding_airqualco2:1"} +Number Nilan_AirQual_CO2_LimHi "CO2 limit for high ventilation [%d]" (gNilan) {modbus="nilan_holding_airqualco2:2"} + +Number Nilan_Display_KeyCode "User panel keypress [%d]" (gNilan) {modbus="nilan_holding_userpanel:0"} + diff --git a/openhab2/items/nilan_generated.items b/openhab2/items/nilan_generated.items index 655f25e..1e2fb16 100755 --- a/openhab2/items/nilan_generated.items +++ b/openhab2/items/nilan_generated.items @@ -1,2 +1 @@ -String nilan_generated_displaytext "Display: [%s]" (gNilan) -String nilan_generated_time "[%s]" (gNilan) +String nilan_generated_time "Systemzeit [%s]" (gNilan) diff --git a/openhab2/items/nilan_write.items b/openhab2/items/nilan_write.items deleted file mode 100755 index aa22949..0000000 --- a/openhab2/items/nilan_write.items +++ /dev/null @@ -1,7 +0,0 @@ -Group gNilanHolding (All, gNilan) -Switch nilan_onoff "Lüftung aktiv [%d]" (gNilanHolding) {modbus="nilan2:0"} -Number nilan_user_operation_mode "Betriebsart [%d]" (gNilanHolding) {modbus="nilan2:1"} -Number nilan_vent "Lüfterstufe" (gNilanHolding) {modbus="nilan2:2"} -Number nilan_user_tempset "User temperature selection [%d °C]" (gNilanHolding) {modbus="nilan2:3"} -Number nilan_exhaust_speed "Exhaust Speed [%d]" (gNilanHolding) {modbus="nilan3:0"} -Number nilan_inlet_speed "Inlet Speed [%d]" (gNilanHolding) {modbus="nilan3:1"} diff --git a/openhab2/rules/nilan.rules b/openhab2/rules/nilan.rules index fc33db7..f04c274 100755 --- a/openhab2/rules/nilan.rules +++ b/openhab2/rules/nilan.rules @@ -1,36 +1,411 @@ - -rule "nilan displaytext items concatenation" -when - Item Nilan_Display_Text_1_2 received update or - Item Nilan_Display_Text_3_4 received update or - Item Nilan_Display_Text_5_6 received update or - Item Nilan_Display_Text_7_8 received update or - Item Nilan_Display_Text_9_10 received update or - Item Nilan_Display_Text_11_12 received update or - Item Nilan_Display_Text_13_14 received update or - Item Nilan_Display_Text_15_16 received update or - - System started -then - var String formattedString = String::format("%s%s%s%s%s%s%s%s",Nilan_Display_Text_1_2.state, Nilan_Display_Text_3_4.state, Nilan_Display_Text_5_6.state, Nilan_Display_Text_7_8.state, Nilan_Display_Text_9_10.state, Nilan_Display_Text_11_12.state, Nilan_Display_Text_13_14.state, Nilan_Display_Text_15_16.state) - logInfo(">>> Display items <<<", formattedString) - nilan_generated_displaytext.postUpdate(formattedString) -end - - - -rule "nilan date items concatenation" -when - //Item Nilan_Time_Second received update or - Item Nilan_Time_Minute received update or - Item Nilan_Time_Hour received update or - Item Nilan_Time_Day received update or - Item Nilan_Time_Month received update or - Item Nilan_Time_Year received update or - - System started -then - var String formattedString = String::format("%s:%s %s.%s.%s",Nilan_Time_Hour.state, Nilan_Time_Minute.state, Nilan_Time_Day.state, Nilan_Time_Month.state, Nilan_Time_Year.state) - logInfo(">>> Datum Zusammenfassung <<<", formattedString) - nilan_generated_time.postUpdate(formattedString) -end +import org.openhab.core.library.types.* + + +// some Nilan Items need to be scaled +val Functions$Function3 scale = [ NumberItem internalItem, NumberItem item, DecimalType factor | + var Number decimalValue = (internalItem.state as DecimalType) + // shape negative values + if(decimalValue > 0x8000) { + decimalValue = decimalValue - 0xFFFF + } + val scaledValue = decimalValue * factor + item.postUpdate(scaledValue) +] + + +rule "nilan date items concatenation" +when + //Item Nilan_Time_Second received update or + Item Nilan_Time_Minute received update or + Item Nilan_Time_Hour received update or + Item Nilan_Time_Day received update or + Item Nilan_Time_Month received update or + Item Nilan_Time_Year received update or + + System started +then + var String formattedString = String::format("%02.0f:%02.0f Uhr - %02.0f.%02.0f.%04.0f",Float.parseFloat(Nilan_Time_Hour.state.toString()), Float.parseFloat(Nilan_Time_Minute.state.toString()), Float.parseFloat(Nilan_Time_Day.state.toString()), Float.parseFloat(Nilan_Time_Month.state.toString()), Float.parseFloat(Nilan_Time_Year.state.toString())) + nilan_generated_time.postUpdate(formattedString) +end + + + +rule "scale Nilan_Input_T0_Controller_Internal" +when + Item Nilan_Input_T0_Controller_Internal received update or + System started +then + scale.apply(Nilan_Input_T0_Controller_Internal, Nilan_Input_T0_Controller, 0.01) +end + +rule "scale Nilan_Input_T1_Intake_Internal" +when + Item Nilan_Input_T1_Intake_Internal received update or + System started +then + scale.apply(Nilan_Input_T1_Intake_Internal, Nilan_Input_T1_Intake, 0.01) +end + +rule "scale Nilan_Input_T2_Inlet_Internal" +when + Item Nilan_Input_T2_Inlet_Internal received update or + System started +then + scale.apply(Nilan_Input_T2_Inlet_Internal, Nilan_Input_T2_Inlet, 0.01) +end + +rule "scale Nilan_Input_T3_Exhaust_Internal" +when + Item Nilan_Input_T3_Exhaust_Internal received update or + System started +then + scale.apply(Nilan_Input_T3_Exhaust_Internal, Nilan_Input_T3_Exhaust, 0.01) +end + +rule "scale Nilan_Input_T4_Outlet_Internal" +when + Item Nilan_Input_T4_Outlet_Internal received update or + System started +then + scale.apply(Nilan_Input_T4_Outlet_Internal, Nilan_Input_T4_Outlet, 0.01) +end + +rule "scale Nilan_Input_T5_Cond_Internal" +when + Item Nilan_Input_T5_Cond_Internal received update or + System started +then + scale.apply(Nilan_Input_T5_Cond_Internal, Nilan_Input_T5_Cond, 0.01) +end + +rule "scale Nilan_Input_T6_Evap_Internal" +when + Item Nilan_Input_T6_Evap_Internal received update or + System started +then + scale.apply(Nilan_Input_T6_Evap_Internal, Nilan_Input_T6_Evap, 0.01) +end + +rule "scale Nilan_Input_T7_Inlet_Internal" +when + Item Nilan_Input_T7_Inlet_Internal received update or + System started +then + scale.apply(Nilan_Input_T7_Inlet_Internal, Nilan_Input_T7_Inlet, 0.01) +end + +rule "scale Nilan_Input_T8_Outdoor_Internal" +when + Item Nilan_Input_T8_Outdoor_Internal received update or + System started +then + scale.apply(Nilan_Input_T8_Outdoor_Internal, Nilan_Input_T8_Outdoor, 0.01) +end + +rule "scale Nilan_Input_T9_Heater_Internal" +when + Item Nilan_Input_T9_Heater_Internal received update or + System started +then + scale.apply(Nilan_Input_T9_Heater_Internal, Nilan_Input_T9_Heater, 0.01) +end + +rule "scale Nilan_Input_T10_Extem_Internal" +when + Item Nilan_Input_T10_Extem_Internal received update or + System started +then + scale.apply(Nilan_Input_T10_Extem_Internal, Nilan_Input_T10_Extem, 0.01) +end + +rule "scale Nilan_Input_T11_Top_Internal" +when + Item Nilan_Input_T11_Top_Internal received update or + System started +then + scale.apply(Nilan_Input_T11_Top_Internal, Nilan_Input_T11_Top, 0.01) +end + +rule "scale Nilan_Input_T12_Bottom_Internal" +when + Item Nilan_Input_T12_Bottom_Internal received update or + System started +then + scale.apply(Nilan_Input_T12_Bottom_Internal, Nilan_Input_T12_Bottom, 0.01) +end + +rule "scale Nilan_Input_T13_Retum_Internal" +when + Item Nilan_Input_T13_Retum_Internal received update or + System started +then + scale.apply(Nilan_Input_T13_Retum_Internal, Nilan_Input_T13_Retum, 0.01) +end + +rule "scale Nilan_Input_T14_Supply_Internal" +when + Item Nilan_Input_T14_Supply_Internal received update or + System started +then + scale.apply(Nilan_Input_T14_Supply_Internal, Nilan_Input_T14_Supply, 0.01) +end + +rule "scale Nilan_Input_T15_Room_Internal" +when + Item Nilan_Input_T15_Room_Internal received update or + System started +then + scale.apply(Nilan_Input_T15_Room_Internal, Nilan_Input_T15_Room, 0.01) +end + +rule "scale Nilan_Input_T16_Internal" +when + Item Nilan_Input_T16_Internal received update or + System started +then + scale.apply(Nilan_Input_T16_Internal, Nilan_Input_T16, 0.01) +end + +rule "scale Nilan_Input_RH_Internal" +when + Item Nilan_Input_RH_Internal received update or + System started +then + scale.apply(Nilan_Input_RH_Internal, Nilan_Input_RH, 0.01) +end + +rule "scale Nilan_Input_CO2_Internal" +when + Item Nilan_Input_CO2_Internal received update or + System started +then + scale.apply(Nilan_Input_CO2_Internal, Nilan_Input_CO2, 0.01) +end + +rule "scale Nilan_AirTemp_TempinletSet_Internal" +when + Item Nilan_AirTemp_TempinletSet_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempinletSet_Internal, Nilan_AirTemp_TempinletSet, 0.01) +end + +rule "scale Nilan_AirTemp_TempControl_Internal" +when + Item Nilan_AirTemp_TempControl_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempControl_Internal, Nilan_AirTemp_TempControl, 0.01) +end + +rule "scale Nilan_AirTemp_TempRoom_Internal" +when + Item Nilan_AirTemp_TempRoom_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempRoom_Internal, Nilan_AirTemp_TempRoom, 0.01) +end + +rule "scale Nilan_AirTemp_EffPct_Internal" +when + Item Nilan_AirTemp_EffPct_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_EffPct_Internal, Nilan_AirTemp_EffPct, 0.01) +end + + + + + + + +rule "scale Nilan_Output_ExhaustSpeed_Internal" +when + Item Nilan_Output_ExhaustSpeed_Internal received update or + System started +then + scale.apply(Nilan_Output_ExhaustSpeed_Internal, Nilan_Output_ExhaustSpeed, 0.01) +end +rule "scale Nilan_Output_ExhaustSpeed" +when + Item Nilan_Output_ExhaustSpeed received command +then + var Number realValue = (Nilan_Output_ExhaustSpeed.state as DecimalType) + sendCommand(Nilan_Output_ExhaustSpeed_Internal, realValue*100); +end + + +rule "scale Nilan_Output_InletSpeed_Internal" +when + Item Nilan_Output_InletSpeed_Internal received update or + System started +then + scale.apply(Nilan_Output_InletSpeed_Internal, Nilan_Output_InletSpeed, 0.01) +end +rule "scale Nilan_Output_InletSpeed" +when + Item Nilan_Output_InletSpeed received command +then + var Number realValue = (Nilan_Output_InletSpeed.state as DecimalType) + sendCommand(Nilan_Output_InletSpeed_Internal, realValue*100); +end + + +rule "scale Nilan_Control_TempSet_Internal" +when + Item Nilan_Control_TempSet_Internal received update or + System started +then + scale.apply(Nilan_Control_TempSet_Internal, Nilan_Control_TempSet, 0.01) +end +rule "scale Nilan_Control_TempSet" +when + Item Nilan_Control_TempSet received command +then + var Number realValue = (Nilan_Control_TempSet.state as DecimalType) + sendCommand(Nilan_Control_TempSet_Internal, realValue*100); +end + + +rule "scale Nilan_Control_ServicePct_Internal" +when + Item Nilan_Control_ServicePct_Internal received update or + System started +then + scale.apply(Nilan_Control_ServicePct_Internal, Nilan_Control_ServicePct, 0.01) +end +rule "scale Nilan_Control_ServicePct" +when + Item Nilan_Control_ServicePct received command +then + var Number realValue = (Nilan_Control_ServicePct.state as DecimalType) + sendCommand(Nilan_Control_ServicePct_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMinSum_Internal" +when + Item Nilan_AirTemp_TempMinSum_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMinSum_Internal, Nilan_AirTemp_TempMinSum, 0.01) +end +rule "scale Nilan_AirTemp_TempMinSum" +when + Item Nilan_AirTemp_TempMinSum received command +then + var Number realValue = (Nilan_AirTemp_TempMinSum.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMinSum_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMinWin_Internal" +when + Item Nilan_AirTemp_TempMinWin_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMinWin_Internal, Nilan_AirTemp_TempMinWin, 0.01) +end +rule "scale Nilan_AirTemp_TempMinWin" +when + Item Nilan_AirTemp_TempMinWin received command +then + var Number realValue = (Nilan_AirTemp_TempMinWin.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMinWin_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMax_Internal" +when + Item Nilan_AirTemp_TempMax_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMax_Internal, Nilan_AirTemp_TempMax, 0.01) +end +rule "scale Nilan_AirTemp_TempMax" +when + Item Nilan_AirTemp_TempMax received command +then + var Number realValue = (Nilan_AirTemp_TempMax.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMax_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempMaxWin_Internal" +when + Item Nilan_AirTemp_TempMaxWin_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempMaxWin_Internal, Nilan_AirTemp_TempMaxWin, 0.01) +end +rule "scale Nilan_AirTemp_TempMaxWin" +when + Item Nilan_AirTemp_TempMaxWin received command +then + var Number realValue = (Nilan_AirTemp_TempMaxWin.state as DecimalType) + sendCommand(Nilan_AirTemp_TempMaxWin_Internal, realValue*100); +end + + +rule "scale Nilan_AirTemp_TempSummer_Internal" +when + Item Nilan_AirTemp_TempSummer_Internal received update or + System started +then + scale.apply(Nilan_AirTemp_TempSummer_Internal, Nilan_AirTemp_TempSummer, 0.01) +end +rule "scale Nilan_AirTemp_TempSummer" +when + Item Nilan_AirTemp_TempSummer received command +then + var Number realValue = (Nilan_AirTemp_TempSummer.state as DecimalType) + sendCommand(Nilan_AirTemp_TempSummer_Internal, realValue*100); +end + + +rule "scale Nilan_HotWater_TempSet_T11_Internal" +when + Item Nilan_HotWater_TempSet_T11_Internal received update or + System started +then + scale.apply(Nilan_HotWater_TempSet_T11_Internal, Nilan_HotWater_TempSet_T11, 0.01) +end +rule "scale Nilan_HotWater_TempSet_T11" +when + Item Nilan_HotWater_TempSet_T11 received command +then + var Number realValue = (Nilan_HotWater_TempSet_T11.state as DecimalType) + sendCommand(Nilan_HotWater_TempSet_T11_Internal, realValue*100); +end + +rule "scale Nilan_HotWater_TempSet_T12_Internal" +when + Item Nilan_HotWater_TempSet_T12_Internal received update or + System started +then + scale.apply(Nilan_HotWater_TempSet_T12_Internal, Nilan_HotWater_TempSet_T12, 0.01) +end +rule "scale Nilan_HotWater_TempSet_T12" +when + Item Nilan_HotWater_TempSet_T12 received command +then + var Number realValue = (Nilan_HotWater_TempSet_T12.state as DecimalType) + sendCommand(Nilan_HotWater_TempSet_T12_Internal, realValue*100); +end + +rule "scale Nilan_AirQual_RH_LimLo_Internal" +when + Item Nilan_AirQual_RH_LimLo_Internal received update or + System started +then + scale.apply(Nilan_AirQual_RH_LimLo_Internal, Nilan_AirQual_RH_LimLo, 0.01) +end +rule "scale Nilan_AirQual_RH_LimLo" +when + Item Nilan_AirQual_RH_LimLo received command +then + var Number realValue = (Nilan_AirQual_RH_LimLo.state as DecimalType) + sendCommand(Nilan_AirQual_RH_LimLo_Internal, realValue*100); +end + diff --git a/openhab2/services/modbus.cfg b/openhab2/services/modbus.cfg index 30e155f..1bacee3 100755 --- a/openhab2/services/modbus.cfg +++ b/openhab2/services/modbus.cfg @@ -112,32 +112,250 @@ # See: org.openhab.binding.modbus/src/main/java/net/wimpi/modbus/util/SerialParameters.java # See: org.openhab.binding.modbus/src/main/java/org/openhab/binding/modbus/internal/ModbusBinding.java -#serial.nilan.connection=/dev/ttyUSB0:19200:8:even:1:rtu -#serial.nilan.id=30 -#serial.nilan.start=200 -#serial.nilan.length=16 -#serial.nilan.type=input -#serial.pollinterval=2000 -#serial.nilan.valuetype=int16 +writemultipleregisters=true + + +serial.nilan_input_device.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_device.id=30 +serial.nilan_input_device.start=0 +serial.nilan_input_device.length=4 +serial.nilan_input_device.type=input + +serial.nilan_holding_device.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_device.id=30 +serial.nilan_holding_device.start=0 +serial.nilan_holding_device.length=1 +serial.nilan_holding_device.type=holding + + +serial.nilan_input_discreteio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_discreteio.id=30 +serial.nilan_input_discreteio.start=100 +serial.nilan_input_discreteio.length=14 +serial.nilan_input_discreteio.type=input + +serial.nilan_holding_discreteio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_discreteio.id=30 +serial.nilan_holding_discreteio.start=100 +serial.nilan_holding_discreteio.length=28 +serial.nilan_holding_discreteio.type=holding + + +serial.nilan_input_analogio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_analogio.id=30 +serial.nilan_input_analogio.start=200 +serial.nilan_input_analogio.length=23 +serial.nilan_input_analogio.type=input + +serial.nilan_holding_analogio.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_analogio.id=30 +serial.nilan_holding_analogio.start=200 +serial.nilan_holding_analogio.length=6 +serial.nilan_holding_analogio.type=holding + + +#serial.nilan_input_time.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_time.id=30 +#serial.nilan_input_time.start=300 +#serial.nilan_input_time.length=x +#serial.nilan_input_time.type=input + +serial.nilan_holding_time.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_time.id=30 +serial.nilan_holding_time.start=300 +serial.nilan_holding_time.length=6 +serial.nilan_holding_time.type=holding + + +serial.nilan_input_alarm.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_alarm.id=30 +serial.nilan_input_alarm.start=400 +serial.nilan_input_alarm.length=10 +serial.nilan_input_alarm.type=input + +serial.nilan_holding_alarm.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_alarm.id=30 +serial.nilan_holding_alarm.start=400 +serial.nilan_holding_alarm.length=1 +serial.nilan_holding_alarm.type=holding + + +#serial.nilan_input_weekprogram.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_weekprogram.id=30 +#serial.nilan_input_weekprogram.start=500 +#serial.nilan_input_weekprogram.length=x +#serial.nilan_input_weekprogram.type=input + +serial.nilan_holding_weekprogram.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_weekprogram.id=30 +serial.nilan_holding_weekprogram.start=500 +serial.nilan_holding_weekprogram.length=1 +serial.nilan_holding_weekprogram.type=holding + + +#serial.nilan_input_user1functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_user1functions.id=30 +#serial.nilan_input_user1functions.start=600 +#serial.nilan_input_user1functions.length=x +#serial.nilan_input_user1functions.type=input + +serial.nilan_holding_user1functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_user1functions.id=30 +serial.nilan_holding_user1functions.start=600 +serial.nilan_holding_user1functions.length=6 +serial.nilan_holding_user1functions.type=holding + + +#serial.nilan_input_user2functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_user2functions.id=30 +#serial.nilan_input_user2functions.start=600 +#serial.nilan_input_user2functions.length=x +#serial.nilan_input_user2functions.type=input + +serial.nilan_holding_user2functions.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_user2functions.id=30 +serial.nilan_holding_user2functions.start=610 +serial.nilan_holding_user2functions.length=6 +serial.nilan_holding_user2functions.type=holding + + +serial.nilan_input_control.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_control.id=30 +serial.nilan_input_control.start=1000 +serial.nilan_input_control.length=4 +serial.nilan_input_control.type=input + +serial.nilan_holding_control.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_control.id=30 +serial.nilan_holding_control.start=1000 +serial.nilan_holding_control.length=8 +serial.nilan_holding_control.type=holding + + +#serial.nilan_input_airflow.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airflow.id=30 +#serial.nilan_input_airflow.start=1100 +#serial.nilan_input_airflow.length=x +#serial.nilan_input_airflow.type=input + +serial.nilan_holding_airflow.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airflow.id=30 +serial.nilan_holding_airflow.start=1100 +serial.nilan_holding_airflow.length=2 +serial.nilan_holding_airflow.type=holding + + +serial.nilan_input_airtemp.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_airtemp.id=30 +serial.nilan_input_airtemp.start=1200 +serial.nilan_input_airtemp.length=7 +serial.nilan_input_airtemp.type=input + +serial.nilan_holding_airtemp.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airtemp.id=30 +serial.nilan_holding_airtemp.start=1200 +serial.nilan_holding_airtemp.length=6 +serial.nilan_holding_airtemp.type=holding + + +#serial.nilan_input_airbypass.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airbypass.id=30 +#serial.nilan_input_airbypass.start=1300 +#serial.nilan_input_airbypass.length=x +#serial.nilan_input_airbypass.type=input + +#serial.nilan_input_airheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airheat.id=30 +#serial.nilan_input_airheat.start=1400 +#serial.nilan_input_airheat.length=x +#serial.nilan_input_airheat.type=input + +#serial.nilan_input_compressor.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_compressor.id=30 +#serial.nilan_input_compressor.start=1500 +#serial.nilan_input_compressor.length=x +#serial.nilan_input_compressor.type=input + +#serial.nilan_input_defrost.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_defrost.id=30 +#serial.nilan_input_defrost.start=1600 +#serial.nilan_input_defrost.length=x +#serial.nilan_input_defrost.type=input + + +#serial.nilan_input_hotwater.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_hotwater.id=30 +#serial.nilan_input_hotwater.start=1700 +#serial.nilan_input_hotwater.length=x +#serial.nilan_input_hotwater.type=input + +serial.nilan_holding_hotwater.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_hotwater.id=30 +serial.nilan_holding_hotwater.start=1700 +serial.nilan_holding_hotwater.length=2 +serial.nilan_holding_hotwater.type=holding + + +#serial.nilan_input_centheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_centheat.id=30 +#serial.nilan_input_centheat.start=1800 +#serial.nilan_input_centheat.length=1 +#serial.nilan_input_centheat.type=input + +serial.nilan_holding_centheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_centheat.id=30 +serial.nilan_holding_centheat.start=1800 +serial.nilan_holding_centheat.length=1 +serial.nilan_holding_centheat.type=holding + + +#serial.nilan_input_airqualrh.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airqualrh.id=30 +#serial.nilan_input_airqualrh.start=1900 +#serial.nilan_input_airqualrh.length=x +#serial.nilan_input_airqualrh.type=input + +serial.nilan_holding_airqualrh.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airqualrh.id=30 +serial.nilan_holding_airqualrh.start=1910 +serial.nilan_holding_airqualrh.length=4 +serial.nilan_holding_airqualrh.type=holding + + +#serial.nilan_input_airqualco2.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_airqualco2.id=30 +#serial.nilan_input_airqualco2.start=1900 +#serial.nilan_input_airqualco2.length=x +#serial.nilan_input_airqualco2.type=input + +serial.nilan_holding_airqualco2.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_airqualco2.id=30 +serial.nilan_holding_airqualco2.start=1920 +serial.nilan_holding_airqualco2.length=3 +serial.nilan_holding_airqualco2.type=holding + + +serial.nilan_input_userpanel.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_input_userpanel.id=30 +serial.nilan_input_userpanel.start=2000 +serial.nilan_input_userpanel.length=12 +serial.nilan_input_userpanel.type=input + +serial.nilan_holding_userpanel.connection=/dev/ttyUSB0:19200:8:even:1:rtu +serial.nilan_holding_userpanel.id=30 +serial.nilan_holding_userpanel.start=2000 +serial.nilan_holding_userpanel.length=1 +serial.nilan_holding_userpanel.type=holding + +#serial.nilan_input_preheat.connection=/dev/ttyUSB0:19200:8:even:1:rtu +#serial.nilan_input_preheat.id=30 +#serial.nilan_input_preheat.start=2100 +#serial.nilan_input_preheat.length=x +#serial.nilan_input_preheat.type=input -writemultipleregisters=true -# we need a sleep time of a few seconds to get our workaround python script running -serial.nilan2.connection=/dev/ttyUSB0:19200:8:even:1:rtu:3000 -serial.nilan2.id=30 -serial.nilan2.start=1001 -serial.nilan2.length=8 -serial.nilan2.type=holding - -# we need a sleep time of a few seconds to get our workaround python script running -serial.nilan3.connection=/dev/ttyUSB0:19200:8:even:1:rtu:6000 -serial.nilan3.id=30 -serial.nilan3.start=200 -serial.nilan3.length=2 -serial.nilan3.type=holding -#serial.nilan3.valuetype=uint16 diff --git a/openhab2/sitemaps/main.sitemap b/openhab2/sitemaps/main.sitemap index 4e86550..0266339 100755 --- a/openhab2/sitemaps/main.sitemap +++ b/openhab2/sitemaps/main.sitemap @@ -15,131 +15,164 @@ sitemap main label="Main Menu" } } + Frame label="Heizung und Lüftung" { - Text item=nilan icon="fan" label="Nilan Lüftungsanlage" { + Text icon="fan" label="Nilan Lüftungsanlage" { Frame label="Ãœbersicht" { - Default item=nilan_generated_displaytext - Default item=nilan_generated_time - Switch item=nilan_onoff - //Text item=Nilan_Control_RunAct label="Actual on/off state [%d]" - //Text item=Nilan_Control_RunSet mappings=[0="Off", 1="On"] - - Switch item=nilan_vent icon="fan_ceiling" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] - Text item=nilan_exhaust_speed label="Auslassgeschwindigkeit" icon="fan" - Text item=nilan_inlet_speed label="Einlassgeschwindigkeit" icon="fan" - //Text item=Nilan_Control_VentSet - - //Selection item=nilan_user_operation_mode mappings=[0="Off", 1="Heat", 2="Cool", 3="AUTO", 4="Service"] - Selection item=Nilan_Control_ModeAct label="Betriebsart [%d]" mappings=[0="Off", 1="Heat", 2="Cool", 3="Auto", 4="Service"] - //Text item=Nilan_Control_ModeSet mappings=[0="Off", 1="Heat", 2="Cool", 3="AUTO", 4="Service"] - - //Text item=Nilan_Control_TempSet - - - //Switch item=nilan_userfunc label="Ãœberdruck für Feuerstätte aktiv [%d]" icon="fire" - Text item=Nilan_Output_UserFunc icon="fire" - - //Text item=Nilan_Output_UserFunc_2 - //Default item=Nilan_Input_UserFunc_2 - + Text item=nilan_generated_time { + Setpoint item=Nilan_Time_Second label="Sekunde [%d]" minValue=0 maxValue=59 step=1 + Setpoint item=Nilan_Time_Minute label="Minute [%d]" minValue=0 maxValue=59 step=1 + Setpoint item=Nilan_Time_Hour label="Stunde [%d]" minValue=0 maxValue=23 step=1 + Setpoint item=Nilan_Time_Day label="Tag [%d]" minValue=1 maxValue=31 step=1 + Setpoint item=Nilan_Time_Month label="Monat [%d]" minValue=1 maxValue=12 step=1 + Setpoint item=Nilan_Time_Year label="Jahr [%d]" minValue=1900 maxValue=2300 step=1 + } + + Switch item=Nilan_Control_RunSet label="Lüftung aktiv" mappings=[0="OFF", 1="ON"] icon="switch" + Selection item=Nilan_Control_ModeSet label="Betriebsart" mappings=[0="Off", 1="Heat", 2="Cool", 3="AUTO", 4="Service"] + Selection item=Nilan_Control_State label="Betriebsmodus" mappings=[0="Off", 1="Shift", 2="Stop", 3="Start", 4="Standby", 5="Ventilation stop", 6="Ventilation", 7="Heating", 8="Cooling", 9="Hot water", 10="Legionella", 11="Cooling + hot water", 12="Central heating", 13="Defrost", 14="Frost secure", 15="Service", 16="Alarm", 17="Heating + hot water"] + Setpoint item=Nilan_Control_TempSet label="Zieltemperatur [%.1f °C]" minValue=0 maxValue=65 step=1 + Switch item=Nilan_Control_VentSet label="Lüfterstufe" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_Output_ExhaustSpeed label="Absauggeschwindigkeit [%.0f %%]" + Setpoint item=Nilan_Output_InletSpeed label="Einlassgeschwindigkeit [%.0f %%]" + Selection item=Nilan_Output_UserFunc label="Ãœberdruck für Feuerstätte" mappings=[0="nicht aktiv", 1="aktiv"] icon="fire" + //Switch item=Nilan_Output_UserFunc_2 } + Frame label="Sensoren" { - Text item=Nilan_Input_T15_Room label="Wohnzimmer" - Text item=Nilan_Input_T7_Inlet label="Raumauslass" - Text item=Nilan_Input_RH icon="humidity" label="Luftfeuchtigkeit" + Text item=Nilan_Input_T15_Room label="Wohnzimmer" + Text item=Nilan_Input_T3_Exhaust label="Raumabluft" + Text item=Nilan_Input_T7_Inlet label="Raumeinlass" + Text item=Nilan_Input_RH label="Luftfeuchtigkeit" Text item=Nilan_Input_T8_Outdoor label="Außentemperatur" } - Frame label="Alarme" { - Text item=Nilan_Alarm_Reset - Default item=Nilan_Input_AirFilter - Default item=Nilan_Input_DoorOpen - Default item=Nilan_Input_Smoke - Default item=Nilan_Input_MotorThermo - Default item=Nilan_Input_Frost_Overht - Default item=Nilan_Input_AirFlow - Default item=Nilan_Input_P_HI - Default item=Nilan_Input_Defrost - - Default item=Nilan_Alarm_Status - //Text item=Nilan_Alarm_List_1_ID "Alarm 1 - Code [%d]" - //Text item=Nilan_Alarm_List_1_Date "Alarm 1 - Date [%d]" - //Text item=Nilan_Alarm_List_1_Time "Alarm 1 - Time [%d]" - //Text item=Nilan_Alarm_List_2_ID "Alarm 2 - Code [%d]" - //Text item=Nilan_Alarm_List_2_Date "Alarm 2 - Date [%d]" - //Text item=Nilan_Alarm_List_2_Time "Alarm 2 - Time [%d]" - //Text item=Nilan_Alarm_List_3_ID "Alarm 3 - Code [%d]" - //Text item=Nilan_Alarm_List_3_Date "Alarm 3 - Date [%d]" - //Text item=Nilan_Alarm_List_3_Time "Alarm 3 - Time [%d]" - - Default item=Nilan_Display_LED_1 - Default item=Nilan_Display_LED_2 + + Frame label="Status" { + + Text item=Nilan_Display_LED_1 label="Alarme" icon="light" { + Selection item=Nilan_Display_LED_1 label="Bedienpanel LED" mappings=[0="Off", 1="On"] + //Selection item=Nilan_Display_LED_2 + Selection item=Nilan_Alarm_Reset label="Alarm-Code zurücksetzen" + mappings=[ + 0="No command", + //1..99="1..99 : (reserved internal commands)", + //101..199="101..199 : Clear alarm display code 1..99", + 101="Clear alarm display code 1", + 102="Clear alarm display code 2", + 103="Clear alarm display code 3", + 104="Clear alarm display code 4", + //... + 255="Clear all alarms" + ] + Selection item=Nilan_Input_AirFilter label="Luftfilter-Alarm" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_DoorOpen label="Türkontakt" mappings=[0="Closed", 1="Open"] + Selection item=Nilan_Input_Smoke label="Feuer- / Rauchalarm" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_MotorThermo label="Motor-Thermo-Sicherung" mappings=[0="OK", 1="Burned"] + Selection item=Nilan_Input_Frost_Overht label="Frost / Ãœberhitzung" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_AirFlow label="Luftstromüberwachung" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_P_HI label="Ãœberdruckventil" mappings=[0="OK", 1="Alarm"] + Selection item=Nilan_Input_Defrost label="Enteisungsthermostat" mappings=[0="OK", 1="Alarm"] - Selection item=Nilan_Control_State label="Actual control state [%d]" mappings=[0="Off", 1="Shift", 2="Stop", 3="Start", 4="Standby", 5="Ventilation stop", 6="Ventilation", 7="Heating", 8="Cooling", 9="Hot water", 10="Legionella", 11="Cooling + hot water", 12="Central heating", 13="Defrost", 14="Frost secure", 15="Service", 16="Alarm", 17="Heating + hot water"] - //Text item=Nilan_Control_SeclnState label="Actual time in state [%d]" - Selection item=Nilan_Control_ServiceMode mappings=[0="Off", 1="Defrost", 2="Flaps", 3="Inlet", 4="Exhaust", 5="Compressor", 6="Heating", 7="Hot water", 8="Central heat"] + Text item=Nilan_Alarm_Status label="Alarm-Code (Bitmask)" + //Bitmaks: 0x80 : Active / 0x03 : Nb. of alarms + + Text item=Nilan_Alarm_List_1_ID label="Alarm 1 - Code [%d]" visibility=[Nilan_Alarm_List_1_ID>=1] + Text item=Nilan_Alarm_List_1_Date label="Alarm 1 - Date [%d]" visibility=[Nilan_Alarm_List_1_ID>=1] + Text item=Nilan_Alarm_List_1_Time label="Alarm 1 - Time [%d]" visibility=[Nilan_Alarm_List_1_ID>=1] + Text item=Nilan_Alarm_List_2_ID label="Alarm 2 - Code [%d]" visibility=[Nilan_Alarm_List_2_ID>=1] + Text item=Nilan_Alarm_List_2_Date label="Alarm 2 - Date [%d]" visibility=[Nilan_Alarm_List_2_ID>=1] + Text item=Nilan_Alarm_List_2_Time label="Alarm 2 - Time [%d]" visibility=[Nilan_Alarm_List_2_ID>=1] + Text item=Nilan_Alarm_List_3_ID label="Alarm 3 - Code [%d]" visibility=[Nilan_Alarm_List_3_ID>=1] + Text item=Nilan_Alarm_List_3_Date label="Alarm 3 - Date [%d]" visibility=[Nilan_Alarm_List_3_ID>=1] + Text item=Nilan_Alarm_List_3_Time label="Alarm 3 - Time [%d]" visibility=[Nilan_Alarm_List_3_ID>=1] + + Selection item=Nilan_Control_ServiceMode label="Service-Modus" mappings=[0="Off", 1="Defrost", 2="Flaps", 3="Inlet", 4="Exhaust", 5="Compressor", 6="Heating", 7="Hot water", 8="Central heat"] + } + + Text item=Nilan_Output_BypassOpen label="Bypass Status" icon="flap" { + Switch item=Nilan_Output_AirFlap label="Luftklappe" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_SmokeFlap label="Feuer-/Rauchklappe" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_BypassOpen label="Bypass offen" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_BypassClose label="Bypass zu" mappings=[0=Closed, 1=Open] + Switch item=Nilan_Output_Defrosting label="Enteisung" mappings=[0=Off, 1=On] + } } - Frame label="Regelung" { - Text item=Nilan_AirTemp_EffPct icon="line" label="Effektivität (Wärmetauscher)" - Text item=Nilan_AirTemp_IsSummer icon="sun" - Default item=Nilan_AirTemp_Tempinlet - Default item=Nilan_AirTemp_TempCont - //Default item=Nilan_AirTemp_TempRoom - - Text item=Nilan_Input_T3_Exhaust label="Raumauslass (Anlage)" - Text item=Nilan_Input_T4_Outlet label="Auslass (Abluft)" - Text item=Nilan_Input_T7_Inlet label="Raumauslass (Nach Heizelement)" - Text item=Nilan_Input_T8_Outdoor label="Außentemperatur" - Text item=Nilan_Input_T15_Room label="Wohnzimmer" - Text item=Nilan_Input_T0_Controller - - //Default item=Nilan_AirTemp_CapSet - //Default item=Nilan_AirTemp_CapAct - - Selection item=Nilan_AirFlow_AirExchMode mappings=[0="Energy", 1="Comfort", 2="ComfortWater"] - Text item=Nilan_AirFlow_CoolVent - Text item=Nilan_AirTemp_CoolSet - Text item=Nilan_AirTemp_TempMinSum - Text item=Nilan_AirTemp_TempMinWin - Text item=Nilan_AirTemp_TempMax - Text item=Nilan_AirTemp_TempMaxWin - Text item=Nilan_AirTemp_TempSummer - - Text item=Nilan_AirQual_RH_VentLo - Text item=Nilan_AirQual_RH_VentHi - Text item=Nilan_AirQual_RH_LimLo - Text item=Nilan_AirQual_RH_TimeOut - //Text item=Nilan_AirQual_CO2_VentHi - //Text item=Nilan_AirQual_CO2_LimLo - //Text item=Nilan_AirQual_0O2_LimHi + + Frame label="Regler" { + + Text item=Nilan_AirTemp_EffPct label="Temperaturregler" icon="temperature"{ + Selection item=Nilan_Control_State label="Betriebsmodus" mappings=[0="Off", 1="Shift", 2="Stop", 3="Start", 4="Standby", 5="Ventilation stop", 6="Ventilation", 7="Heating", 8="Cooling", 9="Hot water", 10="Legionella", 11="Cooling + hot water", 12="Central heating", 13="Defrost", 14="Frost secure", 15="Service", 16="Alarm", 17="Heating + hot water"] + //Text item=Nilan_Control_SeclnState label="Actual time in state [%d]" + Text item=Nilan_AirTemp_EffPct label="Effektivität (Wärmetauscher)" + Selection item=Nilan_AirTemp_IsSummer label="Reglermodus (Jahreszeit)" mappings=[0="Winter", 1="Sommer"] + Setpoint item=Nilan_AirTemp_TempSummer label="Grenzwert Sommer/Winter" minValue=0 maxValue=65 step=1 + Text item=Nilan_Input_T8_Outdoor label="Außentemperatur" + //Text item=Nilan_Input_T1_Intake label="Frischluftzufuhr (Vor Wärmetauscher)" + Text item=Nilan_Input_T3_Exhaust label="Raumabluft" + Text item=Nilan_Input_T4_Outlet label="Auslass (Abluft)" + Text item=Nilan_AirTemp_TempinletSet label="Zieltemperatur Raumeinlass (Sollwert)" + Text item=Nilan_AirTemp_TempControl label="Tatsächliche Temperatur (Istwert/Raumabluft)" + Text item=Nilan_Input_T2_Inlet label="Raumeinlass (Vor Heizelement)" + Text item=Nilan_Input_T7_Inlet label="Raumeinlass (Nach Heizelement)" + Text item=Nilan_Input_T15_Room label="Wohnzimmer" + //Text item=Nilan_AirTemp_TempRoom //same as T15 + + Text item=Nilan_Input_T0_Controller label="Temperatur auf Elektronik-Platine" + + //Default item=Nilan_AirTemp_CapSet + //Default item=Nilan_AirTemp_CapAct + + Setpoint item=Nilan_AirTemp_TempMinSum label="Temperaturminimum (Sommer)" minValue=0 maxValue=65 step=1 + Setpoint item=Nilan_AirTemp_TempMax label="Temperaturmaximum (Sommer)" minValue=0 maxValue=65 step=1 + Setpoint item=Nilan_AirTemp_TempMinWin label="Temperaturminimum (Winter)" minValue=0 maxValue=65 step=1 + Setpoint item=Nilan_AirTemp_TempMaxWin label="Temperaturmaximum (Winter)" minValue=0 maxValue=65 step=1 + + Selection item=Nilan_AirFlow_AirExchMode label="Luftwechselrate (Modus)" mappings=[0="Energy", 1="Comfort", 2="ComfortWater"] + Selection item=Nilan_AirFlow_CoolVent label="Lüfterstufe zum Abkühlen" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Selection item=Nilan_AirTemp_CoolSet label="Temperaturoffset zum Abkühlen" mappings=[0="Off (No cooling allowed)", 1="Set + 0 °C (User setpoint plus 0 degrees)", 2="Set + 1 °C", 3="Set + 2 °C", 4="Set + 3 °C", 5="Set + 4 °C", 6="Set + 5 °C", 7="Set + 7 °C", 8="Set + 10 °C"] + } + + Text item=Nilan_Input_RH label="Luftfeuchtigkeitsregler" icon="humidity" { + Text item=Nilan_Input_RH label="Luftfeuchtigkeit" + Selection item=Nilan_AirQual_RH_VentLo label="Lüfterstufe bei zu niedriger Luftfeuchtigkeit (Winter)" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Selection item=Nilan_AirQual_RH_VentHi label="Lüfterstufe bei zu hoher Luftfeuchtigkeit" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_AirQual_RH_LimLo label="Grenzwert für zu niedrige Luftfeuchtigkeit" minValue=0 maxValue=100 step=1 + Setpoint item=Nilan_AirQual_RH_TimeOut label="Lüftungsdauer bei zu hoher Luftfeuchtigkeit [%d min.]" minValue=0 maxValue=65000 step=1 + } + + //Text label="CO2-Regler" icon="carbondioxide" { + //Text item=Nilan_AirQual_CO2_VentHi + //Text item=Nilan_AirQual_CO2_LimLo + //Text item=Nilan_AirQual_CO2_LimHi + //} + } - Frame label="Bypass Status" { - Text item=Nilan_Output_AirFlap - Text item=Nilan_Output_SmokeFlap - Text item=Nilan_Output_BypassOpen - Text item=Nilan_Output_BypassClose - - Text item=Nilan_Output_Defrosting - Text item=Nilan_Output_ExhaustSpeed - Text item=Nilan_Output_InletSpeed - } + Frame label="Benutzerwahlprogramm" { - Selection item=Nilan_Program_Select mappings=[0="None", 1="Program 1", 2="Program 2", 3="Program 3", 4="Erase"] - Text item=Nilan_Program_UserFuncAct - Selection item=Nilan_Program_UserFuncSet mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] - Text item=Nilan_Program_UserTimeSet - Selection item=Nilan_Program_UserVentSet mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] - Text item=Nilan_Program_UserTempSet - Text item=Nilan_Program_UserOffsSet - Text item=Nilan_Program_User2FuncAct - Selection item=Nilan_Program_User2FuncSet mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] - Text item=Nilan_Program_User2TimeSet - Selection item=Nilan_Program_User2VentSet mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] - Text item=Nilan_Program_User2TempSet - Text item=Nilan_Program_User2OffsSet + Selection item=Nilan_Program_Select label="Wochenprogramm" mappings=[0="None", 1="Program 1", 2="Program 2", 3="Program 3", 4="Erase"] + + Text label="Benutzerfunktion 1" icon="boy_2" { + Selection item=Nilan_Program_UserFuncAct label="Status (Ãœberdruck für Feuerstätte)" mappings=[0="nicht aktiv", 1="aktiv"] icon="fire" + Selection item=Nilan_Program_UserFuncSet label="Funktion" mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] + Setpoint item=Nilan_Program_UserTimeSet label="Dauer [%d min.]" minValue=0 maxValue=65000 step=1 + Selection item=Nilan_Program_UserVentSet label="Lüfterstufe" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_Program_UserTempSet label="Temperaturvorgabe" minValue=0 maxValue=65 step=1 visibility=[Nilan_Program_UserFuncSet==1] + Setpoint item=Nilan_Program_UserOffsSet label="Temperatur-Offset" minValue=0 maxValue=65000 step=1 visibility=[Nilan_Program_UserFuncSet==4] + } + + Text label="Benutzerfunktion 2" icon="boy_2" { + Selection item=Nilan_Program_User2FuncAct label="Status" mappings=[0="nicht aktiv", 1="aktiv"] + Selection item=Nilan_Program_User2FuncSet label="Funktion" mappings=[0="None", 1="Extend", 2="Inlet", 3="Exhaust", 4="External heater offset", 5="Ventilate"] + Setpoint item=Nilan_Program_User2TimeSet label="Dauer [%d min.]" minValue=0 maxValue=65000 step=1 + Selection item=Nilan_Program_User2VentSet label="Lüfterstufe" mappings=[0="Off", 1="1", 2="2", 3="3", 4="4"] + Setpoint item=Nilan_Program_User2TempSet label="Temperaturvorgabe" minValue=0 maxValue=65 step=1 visibility=[Nilan_Program_User2FuncSet==1] + Setpoint item=Nilan_Program_User2OffsSet label="Temperatur-Offset" minValue=0 maxValue=65000 step=1 visibility=[Nilan_Program_User2FuncSet==4] + } } + Frame label="Details" { - Group item=gNilanInput + Group item=gNilan label="Alle Modbus-Attribute (Input + Holding)" } } } diff --git a/openhab2/transform/nilan_airflow_airexchmode.map b/openhab2/transform/nilan_airflow_airexchmode.map new file mode 100644 index 0000000..38fe9ca --- /dev/null +++ b/openhab2/transform/nilan_airflow_airexchmode.map @@ -0,0 +1,3 @@ +0=Energy +1=Comfort +2=ComfortWater \ No newline at end of file diff --git a/openhab2/transform/nilan_control_modeact.map b/openhab2/transform/nilan_control_modeact.map new file mode 100644 index 0000000..eb5cd55 --- /dev/null +++ b/openhab2/transform/nilan_control_modeact.map @@ -0,0 +1,5 @@ +0=Off +1=Heat +2=Cool +3=Auto +4=Service \ No newline at end of file diff --git a/openhab2/transform/nilan_control_servicemode.map b/openhab2/transform/nilan_control_servicemode.map new file mode 100644 index 0000000..157aca3 --- /dev/null +++ b/openhab2/transform/nilan_control_servicemode.map @@ -0,0 +1,9 @@ +0=Off +1=Defrost +2=Flaps +3=Inlet +4=Exhaust +5=Compressor +6=Heating +7=Hot water +8=Central heat \ No newline at end of file diff --git a/openhab2/transform/nilan_control_state.map b/openhab2/transform/nilan_control_state.map new file mode 100644 index 0000000..1cccf24 --- /dev/null +++ b/openhab2/transform/nilan_control_state.map @@ -0,0 +1,15 @@ +-=Undefined +0=Off +1=Shift +2=Stop +3=Start +4=Standby +5=Ventilation stop +6=Ventilation +7=Heating +8=Cooling +9=Hot water +10=Legionella +11=Cooling + hot water +12=Central heating +13=Defrost \ No newline at end of file diff --git a/openhab2/transform/nilan_flap.map b/openhab2/transform/nilan_flap.map new file mode 100644 index 0000000..1659cc2 --- /dev/null +++ b/openhab2/transform/nilan_flap.map @@ -0,0 +1,2 @@ +0=closed +1=open \ No newline at end of file diff --git a/openhab2/transform/nilan_on_off.map b/openhab2/transform/nilan_on_off.map new file mode 100644 index 0000000..4cdc2f2 --- /dev/null +++ b/openhab2/transform/nilan_on_off.map @@ -0,0 +1,2 @@ +0=Off +1=On diff --git a/openhab2/transform/nilan_program_select.map b/openhab2/transform/nilan_program_select.map new file mode 100644 index 0000000..759c25e --- /dev/null +++ b/openhab2/transform/nilan_program_select.map @@ -0,0 +1,5 @@ +0=None +1=Program 1 +2=Program 2 +3=Program 3 +4=Erase \ No newline at end of file diff --git a/openhab2/transform/nilan_program_userfuncset.map b/openhab2/transform/nilan_program_userfuncset.map new file mode 100644 index 0000000..918211f --- /dev/null +++ b/openhab2/transform/nilan_program_userfuncset.map @@ -0,0 +1,6 @@ +0=None +1=Extend +2=Inlet +3=Exhaust +4=External heater offset +5=Ventilate \ No newline at end of file diff --git a/openhab2/transform/nilan_ventset.map b/openhab2/transform/nilan_ventset.map new file mode 100644 index 0000000..c9dddb0 --- /dev/null +++ b/openhab2/transform/nilan_ventset.map @@ -0,0 +1,5 @@ +0=Off +1=1 +2=2 +3=3 +4=4 \ No newline at end of file