Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DeviceManager ¶
type DeviceManager interface { GetRelay(string) (*Relay, error) GetSensor(string) (*Sensor, error) GetSensors(string, string) ([]*Sensor, error) UpdateSensor(string, *Sensor) (*Sensor, error) }
DeviceManager provides functions for updating and retrieving sensor and relay devices
func NewDeviceDatabase ¶
func NewDeviceDatabase(dynamoDBService *dynamodb.DynamoDB, geoLookup *geo.GoogleGeoLookup) DeviceManager
NewDeviceDatabase constructs a new Database instance
type InfluxDAO ¶
type InfluxDAO struct {
// contains filtered or unexported fields
}
InfluxDAO represents a DAO capable of interacting with InfluxDB
func NewInfluxDAO ¶
func NewInfluxDAO(address string, username string, password string, databaseName string, deviceManager DeviceManager) (*InfluxDAO, error)
NewInfluxDAO creates a new DAO for interacting with InfluxDB
func (*InfluxDAO) GetLastSensorReadings ¶
func (i *InfluxDAO) GetLastSensorReadings(accountID string, state string) (*LatestSensorReadings, error)
GetLastSensorReadings returns the latest sensor readings for the given account
func (*InfluxDAO) QueryForSensorReadings ¶
func (i *InfluxDAO) QueryForSensorReadings(accountID, sensorID string, startTime, endTime int64) (*QueryForSensorReadingsResults, error)
QueryForSensorReadings returns sensor readings within an account
type LatestSensorReadings ¶
type LatestSensorReadings struct {
Sensors map[string]*SensorReading `json:"sensors"`
}
LatestSensorReadings contains the latest readings for a set of sensors
type Measurement ¶
type Measurement struct { Name string `json:"name"` Value float64 `json:"value"` Unit string `json:"unit"` }
Measurement represents a single measurement's details
type MeasurementsDatabase ¶
type MeasurementsDatabase interface { GetLastSensorReadings(string, string) (*LatestSensorReadings, error) QueryForSensorReadings(string, string, int64, int64) (*QueryForSensorReadingsResults, error) }
MeasurementsDatabase provides functions for retrieving sensor measurements
type MinMaxMeasurement ¶
type MinMaxMeasurement struct { Name string `json:"name"` Min Measurement `json:"min"` Max Measurement `json:"max"` }
MinMaxMeasurement has the minimum and maximum values for a measurement
type MinimalReading ¶
type MinimalReading struct { Timestamp int64 `json:"timestamp"` Measurements []Measurement `json:"measurements"` }
MinimalReading represents a single reading
type QueryForSensorReadingsResults ¶
type QueryForSensorReadingsResults struct { AccountID string `json:"account_id"` SensorID string `json:"sensor_id"` Readings []*MinimalReading `json:"readings"` }
QueryForSensorReadingsResults has results for a sensor-readings query
type Relay ¶
type Relay struct { ID string `json:"id"` AccountID string `json:"account_id"` Name string `json:"name"` State string `json:"state"` }
Relay has details for a StreamMarker relay
type Sensor ¶
type Sensor struct { ID string `json:"id"` AccountID string `json:"account_id"` Name string `json:"name"` State string `json:"state"` LocationEnabled bool `json:"location_enabled"` Latitude float64 `json:"latitude,omitempty"` Longitude float64 `json:"longitude,omitempty"` TimeZoneID string `json:"timezone_id,omitempty"` TimeZoneName string `json:"timezone_name,omitempty"` SampleFrequency int64 `json:"sample_frequency,omitempty"` }
Sensor represents a sensor capable of producing measurements
type SensorReading ¶
type SensorReading struct { SensorID string `json:"sensor_id"` AccountID string `json:"account_id"` Name string `json:"name"` State string `json:"state"` Timestamp int64 `json:"timestamp"` Measurements []Measurement `json:"measurements"` }
SensorReading has details for a single reading