caspia.node.components.sensors package

Submodules

caspia.node.components.sensors.analog module

class caspia.node.components.sensors.analog.AnalogSensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

class Config(pin, interval, power_pin=None, samples=1)[source]

Bases: caspia.node.components.sensors.base.Config

classmethod from_bytes(data)
get_bytes()
classmethod params_from_config_dict(cfg)[source]

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict()[source]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[SensorBase])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
parse()[source]
class State(value=None, error=None, timestamp=None)[source]

Bases: caspia.node.components.base.State

update_from_bytes(data)[source]
update_from_error(error_code, data)
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

classmethod parse_measurement_data(data)[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
type = 7

caspia.node.components.sensors.apds9300 module

class caspia.node.components.sensors.apds9300.APDS9300Sensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

class Config(*, interval, address=None)[source]

Bases: caspia.node.components.sensors.base.Config

classmethod from_bytes(data)
get_bytes()
classmethod params_from_config_dict(cfg)[source]

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict()[source]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[SensorBase])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
property lux
parse()[source]
class State(raw=(None, None), error=None, timestamp=None)[source]

Bases: caspia.node.components.base.State

property lux
update_from_bytes(data)[source]
update_from_error(error_code, data)[source]
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

classmethod parse_measurement_data(data)[source]
classmethod raw_to_lux(raw)[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
type = 11

caspia.node.components.sensors.base module

class caspia.node.components.sensors.base.SensorBase(node, identifier: int)[source]

Bases: caspia.node.components.base.Component

class Config(interval: int)[source]

Bases: caspia.node.config.Config

classmethod from_bytes(data)[source]
get_bytes()[source]
classmethod params_from_config_dict(cfg: Dict[int, bytes])[source]

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict() → Dict[int, bytes][source]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[ForwardRef('SensorBase')])[source]

Bases: caspia.node.events.BroadcastEvent, caspia.node.components.base.Event

property can_id
property component_id
parse()[source]
class State

Bases: object

abstract update_from_bytes(data)
update_from_error(error_code, data)
abstract update_from_event(event)
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()[source]
classmethod parse_broadcast(broadcast)[source]

Return Event subclass for specific broadcast.

classmethod parse_measurement_data(data)[source]
classmethod register_measurement_event_cls(evt_cls)[source]
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()[source]
type = None

caspia.node.components.sensors.datatypes module

caspia.node.components.sensors.datatypes.parse_analog_uint10(data)[source]

Return float in range 0-1 if data are valid.

None if value is invalid. Raises value error if data are invalid.

caspia.node.components.sensors.datatypes.parse_co2(data)[source]

Return float on valid co2.

None, on measurement error (INVALID_VALUE).

caspia.node.components.sensors.datatypes.parse_humidity(data)[source]
caspia.node.components.sensors.datatypes.parse_temperature(data)[source]

Return float on valid temperature.

None, on measurement error (INVALID_VALUE).

caspia.node.components.sensors.mcp980x module

class caspia.node.components.sensors.mcp980x.MCP980XSensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

class Config(interval, address=None, resolution=None)[source]

Bases: caspia.node.components.sensors.base.Config

RESOLUTION_10b = 1
RESOLUTION_11b = 2
RESOLUTION_12b = 3
RESOLUTION_9b = 0
classmethod from_bytes(data)
get_bytes()
classmethod params_from_config_dict(cfg)[source]

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict()[source]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[SensorBase])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
parse()[source]
class State(temperature=None, error=None, timestamp=None)[source]

Bases: caspia.node.components.base.State

error = None

If False, self.temperature contains valid temp

temperature = None

In degrees celsius

timestamp = None

Time of last update

update_from_bytes(data)[source]
update_from_error(error_code, data)
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

classmethod parse_measurement_data(data)[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
type = 3

caspia.node.components.sensors.s300 module

class caspia.node.components.sensors.s300.S300Sensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

class Config(interval: int)[source]

Bases: caspia.node.components.sensors.base.Config

classmethod from_bytes(data)
get_bytes()
classmethod params_from_config_dict(cfg: Dict[int, bytes])

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict() → Dict[int, bytes]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[SensorBase])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
parse()[source]
class State(co2=None, error=None, timestamp=None)[source]

Bases: caspia.node.components.base.State

update_from_bytes(data)[source]
update_from_error(error_code, data)
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

classmethod parse_measurement_data(data)[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
async send_command(command)[source]

Send command to the S300Sensor.

See Programming Guide for I2C (S-Series) for available commands.

type = 10

caspia.node.components.sensors.scd30 module

class caspia.node.components.sensors.scd30.SCD30Sensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

CO2, Temperature and Relative Humidity sensor.

class Config(*args, temperature_offset=0, ambient_pressure=0, **kwargs)[source]

Bases: caspia.node.components.sensors.base.Config

classmethod from_bytes(data)
get_bytes()
classmethod params_from_config_dict(cfg)[source]

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict()[source]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[ForwardRef('SensorBase')])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
parse()
class State(co2: float = None, temperature: float = None, humidity: float = None, timestamp: arrow.arrow.Arrow = None, error: bool = None)[source]

Bases: caspia.node.components.base.State

co2 = None
error = None
humidity = None
temperature = None
timestamp = None
update_from_bytes(data)[source]
update_from_error(error_code, data)
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

static parse_measurement_data(data)[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
async set_self_calibration_enabled(enabled)[source]
type = 13

caspia.node.components.sensors.sht2x module

class caspia.node.components.sensors.sht2x.SHT2XSensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

class Config(interval: int)[source]

Bases: caspia.node.components.sensors.base.Config

classmethod from_bytes(data)
get_bytes()
classmethod params_from_config_dict(cfg: Dict[int, bytes])

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict() → Dict[int, bytes]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[SensorBase])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
parse()[source]
class State(temperature=None, humidity=None, error=None, timestamp=None)[source]

Bases: caspia.node.components.base.State

update_from_bytes(data)[source]
update_from_error(error_code, data)
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

classmethod parse_measurement_data(data)[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
type = 8

caspia.node.components.sensors.tsl258x module

class caspia.node.components.sensors.tsl258x.TSL258XSensor(node, identifier: int)[source]

Bases: caspia.node.components.sensors.base.SensorBase

I2C Light Sensor.

class Config(interval: int, address: int = 57, integration_cycles: int = 1, gain_control: 'TSL258XSensor.GainControl' = <factory>)[source]

Bases: caspia.node.components.sensors.base.Config

address = 57
classmethod from_bytes(data)
get_bytes()
integration_cycles = 1
classmethod params_from_config_dict(cfg)[source]

To be overriden by subclasses - should map cfg to initializer’s parameters.

to_config_dict()[source]

To be overriden by subclasses.

class Event

Bases: caspia.node.events.Event

An Event.

Every type of a broadcast made by a component should be

represented as subclass of this class.

Subclasses must provide can_id and component_id attributes.

class GainControl[source]

Bases: enum.IntEnum

An enumeration.

Gain111x = 3
Gain16x = 2
Gain1x = 0
Gain8x = 1
class MeasurementEvent(broadcast: caspia.node.broadcast.Broadcast, sensor_cls: Type[ForwardRef('SensorBase')])[source]

Bases: caspia.node.components.sensors.base.MeasurementEvent

property can_id
property component_id
property lux
parse()[source]
class PartIdentification(part, revision)

Bases: tuple

Create new instance of PartIdentification(part, revision)

count()

Return number of occurrences of value.

index()

Return first index of value.

Raises ValueError if the value is not present.

property part

Alias for field number 0

property revision

Alias for field number 1

class State(raw: Tuple[Union[int, NoneType], Union[int, NoneType]] = (None, None), error: Union[int, NoneType] = None, timestamp: Union[arrow.arrow.Arrow, NoneType] = None)[source]

Bases: caspia.node.components.base.State

error = None
property lux
raw = (None, None)
timestamp = None
update_from_bytes(data)[source]
update_from_error(error_code, data)[source]
update_from_event(event)[source]
static component_class_for_config_class(config_cls)

Get a Component subclass for a given Config subclass.

static component_classes()

Return dictionary [type:cls] with all registered comp. classes.

static component_type_to_cls(types, raise_on_unknown=True)
classmethod does_request(builder)
static get_error_code_domain(error_code) → int

Return the type of component the error_code is related to.

async load_state()
async measure()
classmethod parse_broadcast(broadcast)

Return Event subclass for specific broadcast.

static parse_measurement_data(data)[source]
classmethod raw_to_lux(raw)[source]
async read_part_id()[source]
classmethod register_measurement_event_cls(evt_cls)
async request(data: bytes, *args, timeout=5.0, **kwargs) → bytes

Make pollen request on behalf of the component.

async request_measurement()
type = 14

Module contents