Models

Data Delivery

Enumeration of data delivery types.

class wolk.model.data_delivery.DataDelivery(value)[source]

Bases: Enum

Enumeration of available data delivery types.

A device’s data delivery mode is either an always connected device (PUSH), or a device that only periodically establishes connection and then subsequently checks if there are any pending messages that are intended for it (PULL).

PULL = 'PULL'
PUSH = 'PUSH'

Data Type

Enumeration of available data types on the Platform.

class wolk.model.data_type.DataType(value)[source]

Bases: Enum

Enumeration of data types on the Platform.

BOOLEAN = 'BOOLEAN'
ENUM = 'ENUM'
HEXADECIMAL = 'HEXADECIMAL'
LOCATION = 'LOCATION'
NUMERIC = 'NUMERIC'
STRING = 'STRING'

Feed Type

Enumeration of feed types.

class wolk.model.feed_type.FeedType(value)[source]

Bases: Enum

Enumeration of available feed types.

IN = 'IN'
IN_OUT = 'IN_OUT'

Device

Everything needed for authenticating a device on WolkAbout IoT Platform.

class wolk.model.device.Device(key: str, password: str, data_delivery: Optional[DataDelivery] = DataDelivery.PUSH)[source]

Bases: object

Device identified by key and password, and its outbound data mode.

A device’s data delivery mode is either an always connected device (PUSH), or a device that only periodically establishes connection and then subsequently checks if there are any pending messages that are intended for it (PULL).

Variables:
  • key (str) – Device’s key

  • password (str) – Device’s unique password

  • data_delivery (DataDelivery) – Is the device always connected or only periodically

data_delivery: Optional[DataDelivery] = 'PUSH'
key: str
password: str

File management error type

Enumeration of defined file management errors.

class wolk.model.file_management_error_type.FileManagementErrorType(value)[source]

Bases: Enum

Enumeration of available file management errors.

FILE_HASH_MISMATCH = 'FILE_HASH_MISMATCH'
FILE_SYSTEM_ERROR = 'FILE_SYSTEM_ERROR'
MALFORMED_URL = 'MALFORMED_URL'
RETRY_COUNT_EXCEEDED = 'RETRY_COUNT_EXCEEDED'
TRANSFER_PROTOCOL_DISABLED = 'TRANSFER_PROTOCOL_DISABLED'
UNKNOWN = 'UNKNOWN'
UNSUPPORTED_FILE_SIZE = 'UNSUPPORTED_FILE_SIZE'

File management status

Information about the current status of the firmware update process.

class wolk.model.file_management_status.FileManagementStatus(status: FileManagementStatusType, error: Optional[FileManagementErrorType] = None)[source]

Bases: object

Contains the status of the file management process.

Variables:
  • status – The status of the file management process

  • error – The type of error that occurred

Ivartype status:

FileManagementStatusType

Ivartype error:

FileManagementErrorType or None

error: Optional[FileManagementErrorType] = None
status: FileManagementStatusType

File management status type

Statuses defined for file management.

class wolk.model.file_management_status_type.FileManagementStatusType(value)[source]

Bases: Enum

Enumeration of available file management statuses.

ABORTED = 'ABORTED'
ERROR = 'ERROR'
FILE_READY = 'FILE_READY'
FILE_TRANSFER = 'FILE_TRANSFER'

File transfer package

File transfer package model.

class wolk.model.file_transfer_package.FileTransferPackage(previous_hash: bytes, data: bytes, current_hash: bytes)[source]

Bases: object

Data from a file binary request response.

Variables:
  • previous_hash (bytes) – Hash of the previous chunk

  • data (bytes) – Requested chunk

  • current_hash (bytes) – Hash of the current chunk

current_hash: bytes
data: bytes
previous_hash: bytes

Firmware update error type

Firmware update error types.

class wolk.model.firmware_update_error_type.FirmwareUpdateErrorType(value)[source]

Bases: Enum

Enumeration of possible firmware update errors.

INSTALLATION_FAILED = 'INSTALLATION_FAILED'
UNKNOWN = 'UNKNOWN'
UNKNOWN_FILE = 'UNKNOWN_FILE'

Firmware update status

Information about the current status of the firmware update process.

class wolk.model.firmware_update_status.FirmwareUpdateStatus(status: FirmwareUpdateStatusType, error: Optional[FirmwareUpdateErrorType] = None)[source]

Bases: object

Contains the status of the firmware update process.

Variables:
  • status – The status of the firmware update process

  • error – The type of error that occurred

Ivartype status:

FirmwareUpdateStatusType

Ivartype error:

FirmwareUpdateErrorType or None

error: Optional[FirmwareUpdateErrorType] = None
status: FirmwareUpdateStatusType

Firmware update status type

Firmware update statuses.

class wolk.model.firmware_update_status_type.FirmwareUpdateStatusType(value)[source]

Bases: Enum

Enumeration of available firmware update status types.

ABORTED = 'ABORTED'
ERROR = 'ERROR'
INSTALLING = 'INSTALLING'
SUCCESS = 'SUCCESS'

Message

MQTT message model.

class wolk.model.message.Message(topic: str, payload: Optional[Union[bytes, str]] = None)[source]

Bases: object

MQTT message identified by topic and payload.

Variables:
  • topic (str) – Topic where the message is from or will be sent to

  • payload (bytes or str or None) – Content of the message

payload: Optional[Union[bytes, str]] = None
topic: str

Unit

Enumeration of available units on the Platform.

class wolk.model.unit.Unit(value)[source]

Bases: Enum

Enumeration of default available units on the Platform.

Units are grouped by reading type, along with a comment that indicates what data type that unit expects.

AMPERE = 'AMPERE'
ANGSTROM = 'ANGSTROM'
ARE = 'ARE'
ASTRONOMICAL_UNIT = 'ASTRONOMICAL_UNIT'
ATMOSPHERE = 'ATMOSPHERE'
ATOM = 'ATOM'
ATOMIC_MASS = 'ATOMIC_MASS'
BAR = 'BAR'
BECQUEREL = 'BECQUEREL'
BIT = 'BIT'
BOOLEAN = 'BOOLEAN'
BYTE = 'BYTE'
C = 'C'
CANDELA = 'CANDELA'
CELSIUS = 'CELSIUS'
CENTIMETRE = 'CENTIMETRE'
CENTIRADIAN = 'CENTIRADIAN'
CENTIVOLT = 'CENTIVOLT'
COULOMB = 'COULOMB'
CUBIC_INCH = 'CUBIC_INCH'
CUBIC_METRE = 'CUBIC_METRE'
CURIE = 'CURIE'
DAY = 'DAY'
DAY_SIDEREAL = 'DAY_SIDEREAL'
DECIBEL = 'DECIBEL'
DECILITRE = 'DECILITRE'
DEGREE_ANGLE = 'DEGREE_ANGLE'
DYNE = 'DYNE'
E = 'E'
ELECTRON_MASS = 'ELECTRON_MASS'
ELECTRON_VOLT = 'ELECTRON_VOLT'
ERG = 'ERG'
FAHRENHEIT = 'FAHRENHEIT'
FARAD = 'FARAD'
FARADAY = 'FARADAY'
FOOT = 'FOOT'
FOOT_SURVEY_US = 'FOOT_SURVEY_US'
FRANKLIN = 'FRANKLIN'
G = 'G'
GALLON_DRY_US = 'GALLON_DRY_US'
GALLON_UK = 'GALLON_UK'
GAUSS = 'GAUSS'
GIGAHERTZ = 'GIGAHERTZ'
GILBERT = 'GILBERT'
GRADE = 'GRADE'
GRAM = 'GRAM'
GRAY = 'GRAY'
HECTARE = 'HECTARE'
HECTOPASCAL = 'HECTOPASCAL'
HENRY = 'HENRY'
HERTZ = 'HERTZ'
HORSEPOWER = 'HORSEPOWER'
HOUR = 'HOUR'
INCH = 'INCH'
INCH_OF_MERCURY = 'INCH_OF_MERCURY'
JOULE = 'JOULE'
KATAL = 'KATAL'
KELVIN = 'KELVIN'
KILOGRAM = 'KILOGRAM'
KILOGRAM_FORCE = 'KILOGRAM_FORCE'
KILOMETRE = 'KILOMETRE'
KILOMETRES_PER_HOUR = 'KILOMETRES_PER_HOUR'
KNOT = 'KNOT'
LAMBERT = 'LAMBERT'
LIGHT_YEAR = 'LIGHT_YEAR'
LITRE = 'LITRE'
LOCATION = 'LOCATION'
LUMEN = 'LUMEN'
LUX = 'LUX'
MACH = 'MACH'
MAXWELL = 'MAXWELL'
MEGAHERTZ = 'MEGAHERTZ'
METRE = 'METRE'
METRES_PER_SECOND = 'METRES_PER_SECOND'
METRES_PER_SQUARE_SECOND = 'METRES_PER_SQUARE_SECOND'
METRIC_TON = 'METRIC_TON'
MILE = 'MILE'
MILES_PER_HOUR = 'MILES_PER_HOUR'
MILLIBAR = 'MILLIBAR'
MILLILITRE = 'MILLILITRE'
MILLIMETER_OF_MERCURY = 'MILLIMETER_OF_MERCURY'
MILLIMETRE = 'MILLIMETRE'
MILLIVOLT = 'MILLIVOLT'
MINUTE = 'MINUTE'
MINUTE_ANGLE = 'MINUTE_ANGLE'
MOLE = 'MOLE'
MONTH = 'MONTH'
NAUTICAL_MILE = 'NAUTICAL_MILE'
NEWTON = 'NEWTON'
NUMERIC = 'NUMERIC'
OHM = 'OHM'
OUNCE = 'OUNCE'
OUNCE_LIQUID_UK = 'OUNCE_LIQUID_UK'
PARSEC = 'PARSEC'
PASCAL = 'PASCAL'
PERCENT = 'PERCENT'
PIXEL = 'PIXEL'
POINT = 'POINT'
POISE = 'POISE'
POUND = 'POUND'
POUND_FORCE = 'POUND_FORCE'
RAD = 'RAD'
RADIAN = 'RADIAN'
RANKINE = 'RANKINE'
REM = 'REM'
REVOLUTION = 'REVOLUTION'
ROENTGEN = 'ROENTGEN'
RUTHERFORD = 'RUTHERFORD'
SECOND = 'SECOND'
SECOND_ANGLE = 'SECOND_ANGLE'
SIEMENS = 'SIEMENS'
SIEVERT = 'SIEVERT'
SPHERE = 'SPHERE'
SQUARE_METRE = 'SQUARE_METRE'
STERADIAN = 'STERADIAN'
STOKE = 'STOKE'
TESLA = 'TESLA'
TEXT = 'TEXT'
TON_UK = 'TON_UK'
TON_US = 'TON_US'
VOLT = 'VOLT'
WATT = 'WATT'
WEBER = 'WEBER'
WEEK = 'WEEK'
YARD = 'YARD'
YEAR = 'YEAR'
YEAR_CALENDAR = 'YEAR_CALENDAR'
YEAR_SIDEREAL = 'YEAR_SIDEREAL'