Documentation
¶
Index ¶
- type Config
- type Controller
- func (c *Controller) FetchErrors() (*Errors, error)
- func (c *Controller) FetchReadings() (*Readings, error)
- func (c *Controller) FetchRegisterValues(slaveID byte, registers []Register) (map[Register]uint16, error)
- func (c *Controller) FetchSettings() (*Settings, error)
- func (c *Controller) FetchValue(slaveID byte, register Register) (uint16, error)
- func (c *Controller) GetDeviceType() (DeviceType, error)
- func (c *Controller) SendSettings(settings Settings) error
- func (c *Controller) SetRegisterValues(slaveID byte, values map[Register]uint16) error
- type DeviceType
- type Errors
- type FanSpeed
- type Readings
- type Register
- type Settings
Constants ¶
This section is empty.
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 "192.168.5.107:502". 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) FetchReadings ¶
func (c *Controller) FetchReadings() (*Readings, error)
FetchReadings of Nilan sensors
func (*Controller) FetchRegisterValues ¶
func (c *Controller) FetchRegisterValues(slaveID byte, registers []Register) (map[Register]uint16, error)
FetchRegisterValues from slave
func (*Controller) FetchSettings ¶
func (c *Controller) FetchSettings() (*Settings, error)
FetchSettings of Nilan
func (*Controller) FetchValue ¶
func (c *Controller) FetchValue(slaveID byte, register Register) (uint16, error)
FetchValue from register
func (*Controller) GetDeviceType ¶
func (c *Controller) GetDeviceType() (DeviceType, error)
func (*Controller) SendSettings ¶
func (c *Controller) SendSettings(settings Settings) error
SendSettings of Nilan
func (*Controller) SetRegisterValues ¶
func (c *Controller) SetRegisterValues(slaveID byte, values map[Register]uint16) error
SetRegisterValues on slave
type DeviceType ¶
type DeviceType int
const ( DeviceTypeAir9 DeviceType = 0 DeviceTypeGeo DeviceType = 1 )
type FanSpeed ¶
type FanSpeed uint16
FanSpeed represents Nilan ventilation intensity value in range from 101 (lowest) to 104 (highest).
const ( // FanSpeedLow represents lowest fan speed aka level 1 FanSpeedLow FanSpeed = 101 // FanSpeedNormal represents normal fan speed aka level 2 FanSpeedNormal FanSpeed = 102 // FanSpeedHigh represents high fan speed aka level 3 FanSpeedHigh FanSpeed = 103 // FanSpeedVeryHigh represents highest fan speed aka level 4 FanSpeedVeryHigh FanSpeed = 104 )
type Readings ¶
type Readings struct { // RoomTemperature in C times 10 RoomTemperature int // OutdoorTemperature in C times 10 OutdoorTemperature int // AverageHumidity (0-100%) AverageHumidity int // ActualHumidity of air (0-100%) ActualHumidity int // DHWTankTopTempeature in C times 10 DHWTankTopTemperature int // DHWTankBottomTemperature in C times 10 DHWTankBottomTemperature int // SupplyFlowTemperature in C times 10 SupplyFlowTemperature int }
Readings from Nilan sensors
type Register ¶
type Register uint16
Register is address of register on client
const ( // FanSpeedRegister is ID of register holding desired FanSpeed value FanSpeedRegister Register = 20148 // DesiredRoomTemperatureRegister is ID of register holding desired room temperature in C times 10. // Example: 23.5 C is stored as 235. DesiredRoomTemperatureRegister Register = 20260 // MasterTemperatureSensorSettingRegister is ID of register holding either 0 (read temperature from T3) // or 1 (read temperature from Text) MasterTemperatureSensorSettingRegister Register = 20263 // T3ExtractAirTemperatureRegister is ID of register holding room temperature value when // MasterTemperatureSensorSettingRegister is 0 T3ExtractAirTemperatureRegister Register = 20286 // TextRoomTemperatureRegister is ID of register holding room temperature value when // MasterTemperatureSensorSettingRegister is 1 TextRoomTemperatureRegister Register = 20280 // OutdoorTemperatureRegister is ID of register outdoor temperature OutdoorTemperatureRegister Register = 20282 // AverageHumidityRegister is ID of register holding average humidity value AverageHumidityRegister Register = 20164 // ActualHumidityRegister is ID of register holding actual humidity value ActualHumidityRegister Register = 21776 // DHWTopTankTemperatureRegister is ID of register holding T11 top DHW tank temperature DHWTopTankTemperatureRegister Register = 20520 // DHWBottomTankTemperatureRegister is ID of register holding T11 bottom DHW tank temperature DHWBottomTankTemperatureRegister Register = 20522 // DHWSetPointRegister is ID of register holding desired DHW temperature DHWSetPointRegister Register = 20460 // DHWPauseRegister is ID of register holding DHW pause flag DHWPauseRegister Register = 20440 // DHWPauseDurationRegister is ID of register holding DHW pause duration value DHWPauseDurationRegister Register = 20441 // CentralHeatingPauseRegister is ID of register holding central heating pause flag CentralHeatingPauseRegister Register = 20600 // CentralHeatingPauseDurationRegister is ID of register holding central heating pause duration value CentralHeatingPauseDurationRegister Register = 20601 // CentralHeatingPowerRegister is ID of register holding On/Off value of central heating CentralHeatingPowerRegister Register = 20602 // VentilationModeRegister is ID of register holding ventilation mode value (0, 1 or 2). VentilationModeRegister Register = 20120 // VentilationPauseRegister is ID of register holding ventilation pause flag VentilationPauseRegister Register = 20100 // SetpointSupplyTemperatureRegisterAIR9 is ID of register holding setpoint supply temperature // on AIR9 models SetpointSupplyTemperatureRegisterAIR9 Register = 20680 // SetpointSupplyTemperatureRegisterGEO is ID of register holding setpoint supply temperature // on GEO models SetpointSupplyTemperatureRegisterGEO Register = 20640 // DeviceTypeGEOReigister is ID of register that holds number 8 on GEO models DeviceTypeGEOReigister Register = 21839 // DeviceTypeAIR9Register is ID of register that holds number 9 on AIR9 models DeviceTypeAIR9Register Register = 21899 // T18ReadingRegisterGEO is ID of register holding T18 supply flow temperature reading // on GEO models T18ReadingRegisterGEO Register = 20653 // T18ReadingRegisterAIR9 is ID of register holding T18 supply flow temperature reading // on AIR9 models T18ReadingRegisterAIR9 Register = 20686 // EventOutdoorFilterWarningRegister is ID of register holding outdoor filter warning presence value EventOutdoorFilterWarningRegister Register = 22507 // EventExtractFilterWarningRegister is ID of register holding extract filter warning presence value EventExtractFilterWarningRegister Register = 22508 // EventHeaterOverHeatAlarmRegister is ID of register holding overheat alarm presence value EventHeaterOverHeatAlarmRegister Register = 22512 // EventHeaterFrostWarningRegister is ID of register holding frost warning presence value EventHeaterFrostWarningRegister Register = 22514 // EventHeaterFrostLongAlarmRegister is ID of register holding long frost alarm presence value EventHeaterFrostLongAlarmRegister Register = 22515 // EventHeaterFrostAlarmRegister is ID of register holding frost alarm presence value EventHeaterFrostAlarmRegister Register = 22516 // EventFireThermAlarmRegister is ID of register holding brandindgang activation status value EventFireThermAlarmRegister Register = 22521 // EventKlixonWarningRegister is ID of register holding klixon warning presence value EventKlixonWarningRegister Register = 22578 // EventCompressHighPressWarning is ID of register holding high presure warning presence value EventCompressHighPressWarning Register = 22579 )
type Settings ¶
type Settings struct { // FanSpeed of ventilation FanSpeed *FanSpeed // DesiredRoomTemperature in C (5-40) times 10 DesiredRoomTemperature *int // DesiredDHWTemperature in C (10-60) times 10 DesiredDHWTemperature *int // DHWProductionPaused tells if DHW is switched temporaty off DHWProductionPaused *bool // DHWProductionPauseDuration is duration of DHW pause (1-180) DHWProductionPauseDuration *int // CentralHeatingPaused tells if central heating is switched temporary off CentralHeatingPaused *bool // CentralHeatingPauseDuration is duration of central heating pause (1-180) CentralHeatingPauseDuration *int // CentralHeatingIsOn is a power switch for central heating CentralHeatingIsOn *bool // VentilationMode is either 0 (Auto), 1 (Cooling) or 2 (Heating) VentilationMode *int // VentilationOnPause is used for stopping ventilation (emergency) VentilationOnPause *bool // SetpointSupplyTemperature in C (5-50) SetpointSupplyTemperature *int }
Settings of Nilan system