jaalee_ble package

Parser for Jaalee BLE advertisements.

class jaalee_ble.BinarySensorDeviceClass(*values)[source]

Bases: BaseDeviceClass

Device class for binary sensors.

BATTERY = 'battery'
BATTERY_CHARGING = 'battery_charging'
CO = 'carbon_monoxide'
COLD = 'cold'
CONNECTIVITY = 'connectivity'
DOOR = 'door'
GARAGE_DOOR = 'garage_door'
GAS = 'gas'
GENERIC = 'generic'
HEAT = 'heat'
LIGHT = 'light'
LOCK = 'lock'
MOISTURE = 'moisture'
MOTION = 'motion'
MOVING = 'moving'
OCCUPANCY = 'occupancy'
OPENING = 'opening'
PLUG = 'plug'
POWER = 'power'
PRESENCE = 'presence'
PROBLEM = 'problem'
RUNNING = 'running'
SAFETY = 'safety'
SMOKE = 'smoke'
SOUND = 'sound'
TAMPER = 'tamper'
UPDATE = 'update'
VIBRATION = 'vibration'
WINDOW = 'window'
class jaalee_ble.BinarySensorValue(device_key: DeviceKey, name: str | None, native_value: bool | None)[source]

Bases: BaseValue

A class that describes sensor values.

native_value: bool | None
class jaalee_ble.DeviceKey(key: str, device_id: str | None = None)[source]

Bases: object

Key for a device.

Example: device_id: outdoor_sensor_1 key: temperature

device_id: str | None = None
key: str
class jaalee_ble.JaaleeBluetoothDeviceData(sensor_model: SensorModel = SensorModel.SHT20)[source]

Bases: BluetoothData

Data parser for Jaalee Bluetooth devices.

class jaalee_ble.SensorDescription(device_key: DeviceKey, device_class: SensorDeviceClass | None = None, native_unit_of_measurement: Units | None = None)[source]

Bases: BaseSensorDescription, KeyedBaseDescription

A class that describes sensors.

class jaalee_ble.SensorDeviceClass(*values)[source]

Bases: BaseDeviceClass

Device class for sensors.

ACCELERATION = 'acceleration'
APPARENT_POWER = 'apparent_power'
AQI = 'aqi'
BATTERY = 'battery'
CO = 'carbon_monoxide'
CO2 = 'carbon_dioxide'
CONDUCTIVITY = 'conductivity'
COUNT = 'count'
CURRENT = 'current'
DATE = 'date'
DEW_POINT = 'dew_point'
DISTANCE = 'distance'
DURATION = 'duration'
ENERGY = 'energy'
FORMALDEHYDE = 'formaldehyde'
FREQUENCY = 'frequency'
GAS = 'gas'
GYROSCOPE = 'gyroscope'
HUMIDITY = 'humidity'
ILLUMINANCE = 'illuminance'
IMPEDANCE = 'impedance'
KEG_SIZE = 'keg_size'
KEG_TYPE = 'keg_type'
MASS = 'mass'
MASS_NON_STABILIZED = 'mass_non_stabilized'
MOISTURE = 'moisture'
MONETARY = 'monetary'
NITROGEN_DIOXIDE = 'nitrogen_dioxide'
NITROGEN_MONOXIDE = 'nitrogen_monoxide'
NITROUS_OXIDE = 'nitrous_oxide'
OZONE = 'ozone'
PACKET_ID = 'packet_id'
PM1 = 'pm1'
PM10 = 'pm10'
PM25 = 'pm25'
PM4 = 'pm4'
PORT_COUNT = 'port_count'
PORT_NAME = 'port_name'
PORT_STATE = 'port_state'
POWER = 'power'
POWER_FACTOR = 'power_factor'
PRESSURE = 'pressure'
REACTIVE_POWER = 'reactive_power'
ROTATION = 'rotation'
SIGNAL_STRENGTH = 'signal_strength'
SPECIFIC_GRAVITY = 'specific_gravity'
SPEED = 'speed'
SULPHUR_DIOXIDE = 'sulphur_dioxide'
TEMPERATURE = 'temperature'
TIME = 'time'
TIMESTAMP = 'timestamp'
UV_INDEX = 'uv_index'
VOLATILE_ORGANIC_COMPOUNDS = 'volatile_organic_compounds'
VOLTAGE = 'voltage'
VOLUME = 'volume'
VOLUME_DISPENSED = 'volume_dispensed'
VOLUME_FLOW_RATE = 'volume_flow_rate'
VOLUME_START = 'volume_start'
WATER = 'water'
class jaalee_ble.SensorDeviceInfo(name: 'str | None', model: 'str | None', manufacturer: 'str | None', sw_version: 'str | None', hw_version: 'str | None')[source]

Bases: object

hw_version: str | None
manufacturer: str | None
model: str | None
name: str | None
sw_version: str | None
class jaalee_ble.SensorModel(*values)[source]

Bases: Enum

Sensor model variant used to decode temperature/humidity values.

SHT20 = 'sht20'
SHT31 = 'sht31'
class jaalee_ble.SensorUpdate(title: 'str | None', devices: 'dict[str | None, SensorDeviceInfo]', entity_descriptions: 'dict[DeviceKey, SensorDescription]'=<factory>, entity_values: 'dict[DeviceKey, SensorValue]'=<factory>, binary_entity_descriptions: 'dict[DeviceKey, BinarySensorDescription]'=<factory>, binary_entity_values: 'dict[DeviceKey, BinarySensorValue]'=<factory>, events: 'dict[DeviceKey, Event]'=<factory>)[source]

Bases: object

binary_entity_descriptions: dict[DeviceKey, BinarySensorDescription]
binary_entity_values: dict[DeviceKey, BinarySensorValue]
devices: dict[str | None, SensorDeviceInfo]
entity_descriptions: dict[DeviceKey, SensorDescription]
entity_values: dict[DeviceKey, SensorValue]
events: dict[DeviceKey, Event]
title: str | None
class jaalee_ble.SensorValue(device_key: DeviceKey, name: str | None, native_value: str | int | float | date | datetime | Decimal | None)[source]

Bases: BaseValue

A class that describes sensor values.

native_value: str | int | float | date | datetime | Decimal | None
class jaalee_ble.Units(*values)[source]

Bases: StrEnum

ACCELERATION_METERS_PER_SQUARE_SECOND: Final = 'm/s²'
AREA_SQUARE_METERS: Final = 'm²'
CONCENTRATION_MICROGRAMS_PER_CUBIC_FOOT: Final = 'μg/ft³'
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER: Final = 'µg/m³'
CONCENTRATION_MILLIGRAMS_PER_CUBIC_METER: Final = 'mg/m³'
CONCENTRATION_PARTS_PER_BILLION: Final = 'ppb'
CONCENTRATION_PARTS_PER_CUBIC_METER: Final = 'p/m³'
CONCENTRATION_PARTS_PER_MILLION: Final = 'ppm'
CONDUCTIVITY: Final = 'µS/cm'
CURRENCY_CENT: Final = '¢'
CURRENCY_DOLLAR: Final = '$'
CURRENCY_EURO: Final = '€'
DATA_BITS: Final = 'bit'
DATA_BYTES: Final = 'B'
DATA_EXABYTES: Final = 'EB'
DATA_EXBIBYTES: Final = 'EiB'
DATA_GIBIBYTES: Final = 'GiB'
DATA_GIGABITS: Final = 'Gbit'
DATA_GIGABYTES: Final = 'GB'
DATA_KIBIBYTES: Final = 'KiB'
DATA_KILOBITS: Final = 'kbit'
DATA_KILOBYTES: Final = 'kB'
DATA_MEBIBYTES: Final = 'MiB'
DATA_MEGABITS: Final = 'Mbit'
DATA_MEGABYTES: Final = 'MB'
DATA_PEBIBYTES: Final = 'PiB'
DATA_PETABYTES: Final = 'PB'
DATA_RATE_BITS_PER_SECOND: Final = 'bit/s'
DATA_RATE_BYTES_PER_SECOND: Final = 'B/s'
DATA_RATE_GIBIBYTES_PER_SECOND: Final = 'GiB/s'
DATA_RATE_GIGABITS_PER_SECOND: Final = 'Gbit/s'
DATA_RATE_GIGABYTES_PER_SECOND: Final = 'GB/s'
DATA_RATE_KIBIBYTES_PER_SECOND: Final = 'KiB/s'
DATA_RATE_KILOBITS_PER_SECOND: Final = 'kbit/s'
DATA_RATE_KILOBYTES_PER_SECOND: Final = 'kB/s'
DATA_RATE_MEBIBYTES_PER_SECOND: Final = 'MiB/s'
DATA_RATE_MEGABITS_PER_SECOND: Final = 'Mbit/s'
DATA_RATE_MEGABYTES_PER_SECOND: Final = 'MB/s'
DATA_TEBIBYTES: Final = 'TiB'
DATA_TERABYTES: Final = 'TB'
DATA_YOBIBYTES: Final = 'YiB'
DATA_YOTTABYTES: Final = 'YB'
DATA_ZEBIBYTES: Final = 'ZiB'
DATA_ZETTABYTES: Final = 'ZB'
DEGREE: Final = '°'
ELECTRIC_CURRENT_AMPERE: Final = 'A'
ELECTRIC_CURRENT_MILLIAMPERE: Final = 'mA'
ELECTRIC_POTENTIAL_MILLIVOLT: Final = 'mV'
ELECTRIC_POTENTIAL_VOLT: Final = 'V'
ENERGY_KILO_WATT_HOUR: Final = 'kWh'
ENERGY_MEGA_WATT_HOUR: Final = 'MWh'
ENERGY_WATT_HOUR: Final = 'Wh'
FREQUENCY_GIGAHERTZ: Final = 'GHz'
FREQUENCY_HERTZ: Final = 'Hz'
FREQUENCY_KILOHERTZ: Final = 'kHz'
FREQUENCY_MEGAHERTZ: Final = 'MHz'
GYROSCOPE_DEGREES_PER_SECOND: Final = '°/s'
IRRADIATION_BTUS_PER_HOUR_SQUARE_FOOT: Final = 'BTU/(h×ft²)'
IRRADIATION_WATTS_PER_SQUARE_METER: Final = 'W/m²'
LENGTH_CENTIMETERS: Final = 'cm'
LENGTH_FEET: Final = 'ft'
LENGTH_INCHES: Final = 'in'
LENGTH_KILOMETERS: Final = 'km'
LENGTH_METERS: Final = 'm'
LENGTH_MILES: Final = 'mi'
LENGTH_MILLIMETERS: Final = 'mm'
LENGTH_YARD: Final = 'yd'
LIGHT_LUX: Final = 'lx'
MASS_GRAMS: Final = 'g'
MASS_KILOGRAMS: Final = 'kg'
MASS_MICROGRAMS: Final = 'µg'
MASS_MILLIGRAMS: Final = 'mg'
MASS_OUNCES: Final = 'oz'
MASS_POUNDS: Final = 'lb'
OHM: Final = 'ohm'
PERCENTAGE: Final = '%'
POWER_BTU_PER_HOUR: Final = 'BTU/h'
POWER_KILO_WATT: Final = 'kW'
POWER_VOLT_AMPERE: Final = 'VA'
POWER_VOLT_AMPERE_REACTIVE: Final = 'var'
POWER_WATT: Final = 'W'
PRECIPITATION_INCHES: Final = 'in'
PRECIPITATION_INCHES_PER_HOUR: Final = 'in/h'
PRECIPITATION_MILLIMETERS_PER_HOUR: Final = 'mm/h'
PRESSURE_BAR: Final = 'bar'
PRESSURE_CBAR: Final = 'cbar'
PRESSURE_HPA: Final = 'hPa'
PRESSURE_INHG: Final = 'inHg'
PRESSURE_KPA: Final = 'kPa'
PRESSURE_MBAR: Final = 'mbar'
PRESSURE_MMHG: Final = 'mmHg'
PRESSURE_PA: Final = 'Pa'
PRESSURE_PSI: Final = 'psi'
REVOLUTIONS_PER_MINUTE: Final = 'rpm'
SIGNAL_STRENGTH_DECIBELS: Final = 'dB'
SIGNAL_STRENGTH_DECIBELS_MILLIWATT: Final = 'dBm'
SOUND_PRESSURE_DB: Final = 'dB'
SOUND_PRESSURE_WEIGHTED_DBA: Final = 'dBa'
SPECIFIC_GRAVITY = 'SG'
SPEED_FEET_PER_SECOND: Final = 'ft/s'
SPEED_INCHES_PER_DAY: Final = 'in/d'
SPEED_INCHES_PER_HOUR: Final = 'in/h'
SPEED_KILOMETERS_PER_HOUR: Final = 'km/h'
SPEED_KNOTS: Final = 'kn'
SPEED_METERS_PER_SECOND: Final = 'm/s'
SPEED_MILES_PER_HOUR: Final = 'mph'
SPEED_MILLIMETERS_PER_DAY: Final = 'mm/d'
TEMP_CELSIUS: Final = '°C'
TEMP_FAHRENHEIT: Final = '°F'
TEMP_KELVIN: Final = 'K'
TIME_DAYS: Final = 'd'
TIME_HOURS: Final = 'h'
TIME_MICROSECONDS: Final = 'μs'
TIME_MILLISECONDS: Final = 'ms'
TIME_MINUTES: Final = 'min'
TIME_MONTHS: Final = 'm'
TIME_SECONDS: Final = 's'
TIME_WEEKS: Final = 'w'
TIME_YEARS: Final = 'y'
UV_INDEX: Final = 'UV index'
VOLUME_CUBIC_FEET: Final = 'ft³'
VOLUME_CUBIC_METERS: Final = 'm³'
VOLUME_FLOW_RATE_CUBIC_FEET_PER_MINUTE: Final = 'ft³/m'
VOLUME_FLOW_RATE_CUBIC_METERS_PER_HOUR: Final = 'm³/h'
VOLUME_FLUID_OUNCE: Final = 'fl. oz.'
VOLUME_GALLONS: Final = 'gal'
VOLUME_LITERS: Final = 'L'
VOLUME_MILLILITERS: Final = 'mL'

Submodules

jaalee_ble.parser module

Parser for Jaalee BLE advertisements.

class jaalee_ble.parser.JaaleeBluetoothDeviceData(sensor_model: SensorModel = SensorModel.SHT20)[source]

Bases: BluetoothData

Data parser for Jaalee Bluetooth devices.

class jaalee_ble.parser.SensorModel(*values)[source]

Bases: Enum

Sensor model variant used to decode temperature/humidity values.

SHT20 = 'sht20'
SHT31 = 'sht31'