Documentation
¶
Index ¶
- Constants
- type Config
- type Controller
- func (c *Controller) FetchErrors() (*Errors, error)
- func (c *Controller) FetchHoldingRegisters() (*ReadingHoldings, error)
- func (c *Controller) FetchHoldingValue(register Register) (uint16, error)
- func (c *Controller) FetchHoldingValues(registers []Register) (map[Register]uint16, error)
- func (c *Controller) FetchInputRegisterValues(registers []Register) (map[Register]uint16, error)
- func (c *Controller) FetchInputValue(register Register) (uint16, error)
- func (c *Controller) FetchReadings() (*Readings, error)
- func (c *Controller) FetchSettings() (*Settings, error)
- func (c *Controller) SetRegisterValues(values map[Register]uint16) error
- type Errors
- type FanSpeed
- type ModeSet
- type ReadingHoldings
- type Readings
- type Register
- type Settings
Constants ¶
const ( // Default modbus slave address of Nilan EC9 DeviceSlaveID byte = 30 //Errors AirFilter Register = 101 DoorOpen Register = 102 FireSmoke Register = 103 FrostOverHeat Register = 105 HighPressure Register = 106 BoilWater Register = 107 Defrost Register = 112 // T0 - T15 scale is 100 T0Controller Register = 200 T1InTakeTemp Register = 201 T2InletTemp Register = 202 //not in use EC9 T3ExhaustTemp Register = 203 //not in use EC9 T4OutletTemp Register = 204 //not in use EC9 T5CondTemp Register = 205 T6EvapTemp Register = 206 T7InletTemp Register = 207 T8OutdoorTemp Register = 208 T9HeaterTemp Register = 209 T10ExtTemp Register = 210 T11HotWaterTopTemp Register = 211 T12HotWaterBottomTemp Register = 212 T13ReturnTemp Register = 213 T14SupplyTemp Register = 214 T15RoomTemp Register = 215 RelativeHumidity Register = 221 CO2 Register = 222 AlarmStatus Register = 400 AlarmID1 Register = 401 AlarmID2 Register = 404 AlarmID3 Register = 407 ControlRunAct Register = 1000 ControlModeAct Register = 1001 ControlState Register = 1002 ControlSecInState Register = 1003 VentSetAct Register = 1100 InletAct Register = 1101 ExhaustAct Register = 1102 SinceFiltDay Register = 1103 ToFiltDay Register = 1104 IsSummer Register = 1200 TemperatureSet Register = 1201 TempControl Register = 1202 TempRoom Register = 1203 Efficiency Register = 1204 RequestedCapacity Register = 1205 ActualCapacity Register = 1206 HotWaterType Register = 1700 HotWaterAnodeState Register = 1701 DisplayLed1 Register = 2000 DisplayLed2 Register = 2001 HeatExtSet Register = 2100 //Holding registers Compressor Register = 109 WatherHeat Register = 116 CenCircPump Register = 118 CenHeat1 Register = 119 CenHeat2 Register = 120 CenHeat3 Register = 121 CenHeatExt Register = 122 Defrosting Register = 125 ExhaustFanSpeed Register = 200 InletFanSpeed Register = 201 AirHeatCap Register = 202 CenHeatCap Register = 203 CompresorCap Register = 204 // ControlModeSet {0-1; off,on} ControlRunSet Register = 1001 // ControlModeSet {0-4; off,heat,cool,auto,service} ControlModeSet Register = 1002 ControlVentSet Register = 1003 ControlTempSet Register = 1004 CoolVent Register = 1101 CoolSet Register = 1200 SummerTempMin Register = 1201 WinterTempMin Register = 1202 SummerTempMax Register = 1203 WinterTempMax Register = 1204 SummerTempLimit Register = 1205 HotWaterTempElectricT11 Register = 1700 HotWaterTempCompressorT12 Register = 1701 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// NilanAdress is IP address and port of Nilan heatpump. Factory
// default address is "/dev/ttyUSB1".
NilanAddress string
}
Config holds network settings of Nilan heatpump.
func CurrentConfig ¶
func CurrentConfig() Config
CurrentConfig reads NILAN_ADDRESS environment variable and returns configuration. If environment variable is not present, function returns standard config.
func StandardConfig ¶
func StandardConfig() Config
StandardConfig returns factory-default adress of Nilan heatpump
type Controller ¶
type Controller struct {
Config Config
}
Controller is used for communicating with Nilan CTS700 heatpump over Modbus TCP.
func (*Controller) FetchErrors ¶
func (c *Controller) FetchErrors() (*Errors, error)
func (*Controller) FetchHoldingRegisters ¶
func (c *Controller) FetchHoldingRegisters() (*ReadingHoldings, error)
FetchHoldingRegisters
func (*Controller) FetchHoldingValue ¶
func (c *Controller) FetchHoldingValue(register Register) (uint16, error)
FetchValue from HoldingRegister
func (*Controller) FetchHoldingValues ¶
func (c *Controller) FetchHoldingValues(registers []Register) (map[Register]uint16, error)
Fetch input register values from slave
func (*Controller) FetchInputRegisterValues ¶
func (c *Controller) FetchInputRegisterValues(registers []Register) (map[Register]uint16, error)
Fetch input register values from slave
func (*Controller) FetchInputValue ¶
func (c *Controller) FetchInputValue(register Register) (uint16, error)
FetchValue from InputRegister
func (*Controller) FetchReadings ¶
func (c *Controller) FetchReadings() (*Readings, error)
FetchReadings of Nilan sensors
func (*Controller) FetchSettings ¶
func (c *Controller) FetchSettings() (*Settings, error)
func (*Controller) SetRegisterValues ¶
func (c *Controller) SetRegisterValues(values map[Register]uint16) error
SetRegisterValues on slave
type FanSpeed ¶
type FanSpeed uint16
FanSpeed represents Nilan ventilation intensity value in range from 101 (lowest) to 104 (highest).
const ( FanSpeedOff FanSpeed = 0 // FanSpeedLow represents lowest fan speed aka level 1 FanSpeedLow FanSpeed = 1 // FanSpeedNormal represents normal fan speed aka level 2 FanSpeedNormal FanSpeed = 2 // FanSpeedHigh represents high fan speed aka level 3 FanSpeedHigh FanSpeed = 3 // FanSpeedVeryHigh represents highest fan speed aka level 4 FanSpeedVeryHigh FanSpeed = 4 )
type ReadingHoldings ¶
type ReadingHoldings struct {
Compressor int
WatherHeat int
CenCircPump int
CenHeat1 int
CenHeat2 int
CenHeat3 int
CenHeatExt int
Defrosting int
ExhaustFanSpeed int
InletFanSpeed int
AirHeatCap int
CenHeatCap int
CompresorCap int
ControlRunSet int
ControlModeSet int
ControlVentSet int
ControlTempSet int16
CoolVent int
CoolSet int
SummerTempMin int16
WinterTempMin int16
SummerTempMax int16
WinterTempMax int16
SummerTempLimit int16
HotWaterTempElectricT11 int16
HotWaterTempCompressorT12 int16
}
type Readings ¶
type Readings struct {
//T0 - T15 temp values in C scale 100
T0Controller int16
T1InTakeTemp int16
T2InletTemp int16
T3ExhaustTemp int16
T4OutletTemp int16
T5CondTemp int16
T6EvapTemp int16
T7InletTemp int16
T8OutdoorTemp int16
T9HeaterTemp int16
T10ExtTemp int16
T11HotWaterTopTemp int16
T12HotWaterBottomTemp int16
T13ReturnTemp int16
T14SupplyTemp int16
T15RoomTemp int16
RelativeHumidity int16
CO2 int16
AlarmStatus int
AlarmID1 int
AlarmID2 int
AlarmID3 int
// Control Run actual (0-1; off, on)
ControlRunAct int
// Control Mode (0-4; off, heat, cool, auto, service)
ControlModeAct int
ControlState int
ControlSecInState int
VentSetAct int
InletAct int
ExhaustAct int
SinceFiltDay int
ToFiltDay int
IsSummer int
TemperatureSet int16
TempControl int16
TempRoom int16
Efficiency int16
RequestedCapacity int16
ActualCapacity int16
HotWaterType int
HotWaterAnodeState int
DisplayLed1 int
DisplayLed2 int
HeatExtSet int16
}
Readings from Nilan sensors
type Settings ¶
type Settings struct {
// Mode set Off, Heat, Cool, Auto, Service
ModeSet ModeSet
// FanSpeed of ventilation (VentSet 0 - 5)
FanSpeed FanSpeed
// Requested temperature in C (5-40) times 100
RequestedTemperature int16
//Cooling ventilation (0 - 5) similar to fanspeed
CoolVent FanSpeed
//Cooling temperature set point scale 100
CoolTemperature int16
}
Settings of Nilan system