Modem

Represents a Modem device. Inherits data and feed operations from Asset and device operations from Device.

class roak_sdk.semantics.devices.modem.Modem(data, registry)[source]

Bases: Device

Represents a Modem device in the ROAK system. Inherits from the base Device class.

Parameters:
  • data (dict)

  • registry (ClientRegistry)

DEFAULT_FEEDS: list[str] = ['diverPressure', 'diverTemperature', 'baroPressure', 'baroTemperature']
get_data_through_children(feeds=None, start_datetime=None, end_datetime=None)[source]

Fetch data for this device by aggregating data from child devices.

Parameters:
  • feeds (list[str] | None) – Optional list of feed names to filter by.

  • start_datetime (datetime | int | None) – Start datetime as timezone-aware datetime or milliseconds since epoch.

  • end_datetime (datetime | int | None) – End datetime as timezone-aware datetime or milliseconds since epoch.

Returns:

Mapping of child device name to its data.

Return type:

dict

DEFAULT_TIMEFRAME_DAYS: int = 30
get_attributes()

Get the locally cached attribute dictionary.

Returns:

Raw data dictionary.

Return type:

dict

get_children()

Fetch child devices of this device.

Returns:

List of child Device instances.

Return type:

list[Device]

get_data(start_datetime=None, end_datetime=None, feeds=None)

First check if requested feeds exist. Fetch data for this asset within a date range.

Parameters:
  • start_datetime (datetime | int | None) – Start of the date range as timezone-aware datetime or milliseconds since epoch.

  • end_datetime (datetime | int | None) – End of the date range as timezone-aware datetime or milliseconds since epoch.

  • feeds (list[str] | None)

Returns:

List of data records.

Return type:

list[dict]

Raises:

AssetValidationError – If provided datetimes are naive or invalid.

get_feeds()

Fetch available data feeds for this asset.

Returns:

List of feed definitions.

Return type:

list[dict]

get_last_values()

Get one last-reading summary row per feed for this semantic.

Returns rows with:
  • feedname

  • last_value

  • unit (unit.name)

  • record_time

Return type:

list[dict]

refresh_attributes()

Fetch semantic attributes for this semantic and merge into _data.

Expects the API payload shape to be paged, with the attribute list in payload["content"].

Returns:

Updated attributes dictionary.

Return type:

dict

Raises:
  • KeyError – If content is missing from the API payload.

  • TypeError – If content is not iterable as expected.

guid: str
name: str