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