nilan

package module
v0.0.0-...-9c7bff9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
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 Errors

type Errors struct {
	// Indicates a need of new filters
	OldFilterWarning bool
	// Indicates other problems that must to be checked
	OtherErrors bool
}

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 ModeSet

type ModeSet uint16
const (
	ModeSetOff     ModeSet = 0
	ModeSetHeat    ModeSet = 1
	ModeSetCool    ModeSet = 2
	ModeSetAuto    ModeSet = 3
	ModeSetService ModeSet = 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 Register

type Register uint16

Register is address of register on client

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

Directories

Path Synopsis
cmd
fetch-data command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL