Documentation ¶
Index ¶
- func ConnectToNATS(i intelli, url string, timeout int) error
- type AdvancedIDose
- type AlarmEcIDose
- type AlarmIDose
- type AlarmNutTempIDose
- type AlarmPhIDose
- type ConfigIDose
- type FunctionsIDose
- type GeneralIDose
- type GeneralStatusIDose
- type IntelliDose
- func (id *IntelliDose) Config() ConfigIDose
- func (id *IntelliDose) IsDayTime() bool
- func (id *IntelliDose) Readings() MetricsIDose
- func (id *IntelliDose) Serial() string
- func (id *IntelliDose) Settings() SettingsIDose
- func (id *IntelliDose) Update(b []byte) error
- func (id *IntelliDose) WaitForUpdate()
- type IrrigationIntervalIDose
- type MetricsIDose
- type ReportedIDose
- type SetPointsIDose
- type SettingsIDose
- type StateIDose
- type StatusIDose
- type TimesIDose
- type UnitsIDose
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConnectToNATS ¶
ConnectToNATS will connect an intelli object to the NATS server running on an IntelliLink device
Types ¶
type AdvancedIDose ¶
type AdvancedIDose struct { ProportinalDosing bool `json:"proportinal_dosing"` SequentialDosing bool `json:"sequential_dosing"` DisableEc bool `json:"disable_ec"` DisablePh bool `json:"disable_ph"` MntnReminderFreq string `json:"mntn_reminder_freq"` }
AdvancedIDose represents some advanced settings for the IntelliDose
type AlarmEcIDose ¶
type AlarmEcIDose struct { Enabled bool `json:"enabled"` Max float64 `json:"max"` Min float64 `json:"min"` }
AlarmEcIDose represents the EC settings of an IntelliDose
type AlarmIDose ¶
type AlarmIDose struct { Detent byte `json:"detent"` Ec AlarmEcIDose `json:"ec"` NutTemp AlarmNutTempIDose `json:"nut_temp"` Ph AlarmPhIDose `json:"ph"` }
AlarmIDose represents the alarm settings for an IntelliDose
type AlarmNutTempIDose ¶
type AlarmNutTempIDose struct { Enabled bool `json:"enabled"` Max float64 `json:"max"` Min float64 `json:"min"` }
AlarmNutTempIDose represents the nutrient temp settings of an IntelliDose
type AlarmPhIDose ¶
type AlarmPhIDose struct { Enabled bool `json:"enabled"` Max float64 `json:"max"` Min float64 `json:"min"` }
AlarmPhIDose represents the pH temp settings of an IntelliDose
type ConfigIDose ¶
type ConfigIDose struct { Units UnitsIDose `json:"units"` Times TimesIDose `json:"times"` Functions FunctionsIDose `json:"functions"` Advanced AdvancedIDose `json:"advanced"` General GeneralIDose `json:"general"` }
ConfigIDose represents the IntelliDose config
type FunctionsIDose ¶
type FunctionsIDose struct { NutrientsParts byte `json:"nutrients_parts"` PhDosing string `json:"ph_dosing"` IrrigationMode string `json:"irrigation_mode"` IrrigationStations byte `json:"irrigation_stations"` SeparatePumpOutput bool `json:"separate_pump_output"` UseWater bool `json:"use_water"` ExternalAlarm bool `json:"external_alarm"` DayNightEc bool `json:"day_night_ec"` IrrigationStation1 string `json:"irrigation_station_1"` IrrigationStation2 string `json:"irrigation_station_2"` IrrigationStation3 string `json:"irrigation_station_3"` IrrigationStation4 string `json:"irrigation_station_4"` Scheduling bool `json:"scheduling"` MuteBuzzer bool `json:"mute_buzzer"` }
FunctionsIDose represents the configuration of the functions in the IntelliDose
type GeneralIDose ¶
type GeneralIDose struct { Growroom string `json:"growroom"` DeviceName string `json:"device_name"` }
GeneralIDose represents some general settings of the IntelliDose
type GeneralStatusIDose ¶
type GeneralStatusIDose struct { DoseInterval byte `json:"dose_interval"` NutrientDoseTime byte `json:"nutrient_dose_time"` IrrigationInterval1 IrrigationIntervalIDose `json:"irrigation_interval_1"` IrrigationInterval2 IrrigationIntervalIDose `json:"irrigation_interval_2"` IrrigationInterval3 IrrigationIntervalIDose `json:"irrigation_interval_3"` IrrigationInterval4 IrrigationIntervalIDose `json:"irrigation_interval_4"` IrrigationDuration1 int `json:"irrigation_duration_1"` IrrigationDuration2 int `json:"irrigation_duration_2"` IrrigationDuration3 int `json:"irrigation_duration_3"` IrrigationDuration4 int `json:"irrigation_duration_4"` MaxNutrientDoseTime byte `json:"max_nutrient_dose_time"` MaxPhDoseTime byte `json:"max_ph_dose_time"` Mix1 byte `json:"mix_1"` Mix2 byte `json:"mix_2"` Mix3 byte `json:"mix_3"` Mix4 byte `json:"mix_4"` Mix5 byte `json:"mix_5"` Mix6 byte `json:"mix_6"` Mix7 byte `json:"mix_7"` Mix8 byte `json:"mix_8"` PhDoseTime byte `json:"ph_dose_time"` }
GeneralStatusIDose represents the general status of the intellidose
type IntelliDose ¶
IntelliDose represents the IntelliDose single function controller
func NewIntelliDose ¶
func NewIntelliDose(sn string) *IntelliDose
NewIntelliDose returns a new IntelliDose with the given serial number
func (*IntelliDose) Config ¶
func (id *IntelliDose) Config() ConfigIDose
Config returns the configuration of the IntelliDose
func (*IntelliDose) IsDayTime ¶
func (id *IntelliDose) IsDayTime() bool
IsDayTime returns true if the IntelliDose thinks that it is currently day time
func (*IntelliDose) Readings ¶
func (id *IntelliDose) Readings() MetricsIDose
Readings returns the current readings for the IntelliDose
func (*IntelliDose) Serial ¶
func (id *IntelliDose) Serial() string
Serial returns the serial number of this IntelliDose
func (*IntelliDose) Settings ¶
func (id *IntelliDose) Settings() SettingsIDose
Settings returns the settings of the IntelliDose
func (*IntelliDose) Update ¶
func (id *IntelliDose) Update(b []byte) error
Update the IntelliDose from the given JSON payload, WaitForUpdate will stop blocking after this
func (*IntelliDose) WaitForUpdate ¶
func (id *IntelliDose) WaitForUpdate()
type IrrigationIntervalIDose ¶
type IrrigationIntervalIDose struct { Days int `json:"days"` Day int `json:"day"` Night int `json:"night"` }
IrrigationIntervalIDose represents the irrigation interval settings of an IntelliDose
type MetricsIDose ¶
type MetricsIDose struct { Ec float64 `json:"ec"` NutTemp float64 `json:"nut_temp"` PH float64 `json:"pH"` }
MetricsIDose represents the IntelliDose metrics
type ReportedIDose ¶
type ReportedIDose struct { Config ConfigIDose `json:"config"` Metrics MetricsIDose `json:"metrics"` Settings SettingsIDose `json:"status"` Source string `json:"source"` Device string `json:"device"` Timestamp int64 `json:"timestamp"` }
ReportedIDose represents the top level report from the IntelliDose
type SetPointsIDose ¶
type SetPointsIDose struct { Nutrient float64 `json:"nutrient"` PhDosing string `json:"ph_dosing"` Ph float64 `json:"ph"` }
SetPointsIDose represents the set points settings for an IntelliDose
type SettingsIDose ¶
type SettingsIDose struct { General GeneralStatusIDose `json:"general"` Nutrient AlarmIDose `json:"nutrient"` SetPoints SetPointsIDose `json:"set_points"` Status []StatusIDose `json:"status"` Units UnitsIDose `json:"units"` }
SettingsIDose represents the top level of the IntelliDose status
type StateIDose ¶
type StateIDose struct {
Reported ReportedIDose `json:"reported"`
}
StateIDose represents the state of the IntelliDose
type StatusIDose ¶
type StatusIDose struct { Active bool `json:"active"` Enabled bool `json:"enabled"` ForceOn bool `json:"force_on"` Function string `json:"function"` }
StatusIDose represents the current status of an IntelliDose
type TimesIDose ¶
TimesIDose represents the day start and day end times