uecho package

Subpackages

Submodules

uecho.const module

uecho.controller module

class uecho.controller.ControleListener

Bases: object

ControleListener is an abstract listener class to listen to response and announce messages for nodes.

abstract node_add(node: RemoteNode)
abstract node_updated(node: RemoteNode)
abstract object_updated(node: RemoteNode, obj: Object)
abstract property_updated(node: RemoteNode, obj: Object, prop: Property)
class uecho.controller.Controller

Bases: LocalNode

The Controller and find any devices of Echonet Lite, send any requests to the found devices and receive the responses easily without building the binary protocol messages directly.

add_listener(listener: ControleListener)

Adds a listener to listen to response and announce messages for nodes.

Parameters:

listener (ControleListener) – A listener implemented abstract methods of ControleListener.

announce_message(msg: Message) → bool

Posts a multicast message to the same local network asynchronously.

get_node(addr: str | Tuple[str, int]) → RemoteNode | None

Returns the node specified the IP address.

Parameters:

addr (Union[str, Tuple[str, int]]) – A hostname or an IP address.

Returns:

Returns the node that is already found by the specified address, otherwise None.

Return type:

Optional[RemoteNode]

get_standard_manufacturer(code: int | bytes) → Manufacture | None
get_standard_manufacturer_name(code: int | bytes) → str | None
get_standard_object(code: Object | int | Tuple[int, int]) → Object | None
message_received(proto_msg: Message)
property nodes: List[RemoteNode]

Retures found nodes.

Returns:

List[RemoteNode]; The found remote node list.

post_message(msg: Message, dest: Tuple[str, int] | str | RemoteNode) → Message | None

Posts a unicast message to the specified node and return the response message synchronously.

Parameters:
  • msg (Message) – The request message.

  • dest (Union[Tuple[str, int], str, RemoteNode]) – The destination target.

Returns:

The response message if successful receiving the response message, otherwise None.

Return type:

Optional[Message]

remove_listener(listener: ControleListener)

Removes the specified listener.

Parameters:

listener (ControleListener) – The listener which is already added.

search() → bool

Posts a multicast read request to search all nodes in the same local network asynchronously.

send_message(msg: Message, dest: Tuple[str, int] | str | RemoteNode) → bool

Posts a unicast message to the specified node asynchronously.

Parameters:
  • msg (Message) – The request message.

  • dest (Union[Tuple[str, int], str, RemoteNode]) – The destination target.

Returns:

True if successful, otherwise False.

Return type:

bool

start() → bool

Starts the controller to listen to any multicast and unicast messages from other nodes in the same local network, and executes search() after starting.

stop() → bool

Stops the controller not to listen to any messages.

uecho.device module

class uecho.device.Device(code: int | Tuple[int, int] | Tuple[int, int, int] | Any)

Bases: StandardObject

code: int
name: str
node: Any | None

uecho.esv module

class uecho.esv.ESV

Bases: ESV

ESV represents a ESV code in a protocol message of Echonet Lite.

uecho.local_node module

class uecho.local_node.LocalNode

Bases: Node

add_object(obj: Object) → bool
add_observer(observer)
announce_message(msg: Message) → bool
is_enabled(opt: int) → bool
message_received(proto_msg: Message)
send_message(msg: Message, addr) → bool
set_enabled(opt: int, v: bool) → bool
start(ifaddrs: List[str] = []) → bool
stop() → bool

uecho.manufacturer module

class uecho.manufacturer.Manufacture

Bases: object

code: int
name: str

uecho.message module

class uecho.message.Message(msg: Message | None = None)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
add_get_property(prop: Property | Tuple[int, bytes] | int) → bool

Adds the specified property to the message.

Parameters:

prop (Union[Property, Tuple[int, bytes]]) – The new property. The property code is required, but the property bytes are optional.

Returns:

Returns True when the specified property is added, Otherwise False.

Return type:

bool

add_property(prop: Property | Tuple[int, bytes] | int) → bool

Adds the specified property to the message.

Parameters:

prop (Union[Property, Tuple[int, bytes]]) – The new property. The property code is required, but the property bytes are optional.

Returns:

Returns True when the specified property is added, Otherwise False.

Return type:

bool

add_set_property(prop: Property | Tuple[int, bytes] | int) → bool

Adds the specified property to the message.

Parameters:

prop (Union[Property, Tuple[int, bytes]]) – The new property. The property code is required, but the property bytes are optional.

Returns:

Returns True when the specified property is added, Otherwise False.

Return type:

bool

from_addr: Tuple[str, int] | None
get_properties: List[Property]
is_node_profile_message()
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None

uecho.messages module

class uecho.messages.ReadRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.messages.SearchMessage

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.messages.WriteReadRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.messages.WriteRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.messages.WriteResponseRequiredRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None

uecho.node module

class uecho.node.Node(addr: Tuple[str, int] | None = None)

Bases: object

PORT = 3610
add_object(obj: Object) → bool
property address: Tuple[str, int] | None
get_object(code: int | Tuple[int, int, int]) → Object | None

Returns the object specified the code.

Parameters:

code (Union[str, Tuple[int, int, int]]) – A object code.

Returns:

Returns the object when the node has the object specified by the code, otherwise None.

Return type:

Optional[Object]

has_object(code: int) → bool
property ip: str
property objects: List[Object]
property port: int
set_address(addr: Tuple[str, int]) → bool

uecho.node_profile module

class uecho.node_profile.NodeProfile

Bases: Profile

BOOTING = 48
CLASS_CODE = 240
CODE = 978945
FAULT_CONTENT = 137
FAULT_CONTENT_SIZE = 2
IDENTIFICATION_MANUFACTURER_CODE_SIZE = 3
IDENTIFICATION_NUMBER = 131
IDENTIFICATION_NUMBER_SIZE = 17
IDENTIFICATION_UNIQUE_ID_SIZE = 13
INSTANCE_GENERAL_CODE = 1
INSTANCE_LIST_NOTIFICATION = 213
INSTANCE_LIST_NOTIFICATION_MAX = 255
INSTANCE_TRANSMISSION_ONLY_CODE = 2
LOWER_COMMUNICATION_LAYER_PROTOCOL_TYPE = 254
NOT_BOOTING = 49
NUMBER_OF_SELF_NODE_CLASSES = 212
NUMBER_OF_SELF_NODE_CLASSES_SIZE = 2
NUMBER_OF_SELF_NODE_INSTANCES = 211
NUMBER_OF_SELF_NODE_INSTANCES_SIZE = 3
OPERATING_STATUS = 128
OPERATING_STATUS_OFF = 49
OPERATING_STATUS_ON = 48
OPERATING_STATUS_SIZE = 1
SELF_NODE_CLASS_LIST_S = 215
SELF_NODE_CLASS_LIST_S_MAX = 255
SELF_NODE_INSTANCE_LIST_S = 214
SELF_NODE_INSTANCE_LIST_S_MAX = 255
UNIQUE_IDENTIFIER_DATA = 191
UNIQUE_IDENTIFIER_DATA_SIZE = 2
VERSION_INFORMATION = 130
VERSION_INFORMATION_SIZE = 4
code: int
name: str
node: Any | None
class uecho.node_profile.NodeProfileReadOnly

Bases: NodeProfile

CODE = 978946
code: int
name: str
node: Any | None
property_write_requested(prop: Property, data: bytes) → bool

uecho.object module

class uecho.object.Object(code: int | Tuple[int, int] | Tuple[int, int, int] | Any | None = None)

Bases: object

Object represents a object of ECHONET Lite, and it has child properties that includes the specification attributes and the dynamic data.

ANNO_PROPERTY_MAP = 157
ANNO_PROPERTY_MAP_MAX_SIZE = 17
CODE_MAX = 16777215
CODE_MIN = 0
CODE_SIZE = 3
CODE_UNKNOWN = 0
GET_PROPERTY_MAP = 159
GET_PROPERTY_MAP_MAX_SIZE = 17
MANUFACTURER_CODE = 138
MANUFACTURER_CODE_SIZE = 3
MANUFACTURER_EVALUATION_CODE_MAX = 16777215
MANUFACTURER_EVALUATION_CODE_MIN = 16777200
MANUFACTURER_UNKNOWN = 16777200
OPERATING_STATUS = 128
OPERATING_STATUS_OFF = 49
OPERATING_STATUS_ON = 48
OPERATING_STATUS_SIZE = 1
PROPERTY_MAP_MAX_SIZE = 16
SET_PROPERTY_MAP = 158
SET_PROPERTY_MAP_MAX_SIZE = 17
add_observer(observer) → bool

Adds a message observer to the subject.

Parameters:

Observer (observer) – A message observer.

Returns:

Returns True when the specified observer is added, Otherwise False.

Return type:

bool

add_property(prop: Property) → bool
property class_code
code: int
copy()
get_property(code: int) → Property | None
get_property_data(code: int) → bytes | None
property group_code
has_property(code: int) → bool
property instance_code
is_class(group_code: int, class_code: int) → bool

Checks the object belongs to the specified group and class.

Parameters:
  • group_code (int) – A group code.

  • class_code (int) – A class code.

Returns:

True if the object belongs to the specified group and class, otherwise False.

Return type:

bool

is_code(code: int | Tuple[int, int] | Tuple[int, int, int] | Any) → bool

Checks whether the object has the specified code or belongs to the specified tuple code.

Parameters:

code (Union[int, Tuple[int, int], Tuple[int, int, int], Any]) – A single code or tuple code.

Returns:

True if the object belongs to the specified code, otherwise False.

Return type:

bool

is_group(code: int) → bool

Checks the object belongs to the specified group.

Parameters:

code (int) – A group code.

Returns:

True if the object belongs to the specified group, otherwise False.

Return type:

bool

message_received(req_msg: Message) → Message | None
name: str
node: Any | None
post_message(esv: int, props: List[Tuple[int, bytes]]) → Any | None

Posts a unicast message to the specified property asynchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • props (List[Tuple[int, bytes]]) – List of a request property tuple (property code, property data).

Returns:

The response message if successful receiving the response message, otherwise None.

Return type:

Optional[Message]

property properties: List[Property]
send_message(esv: int, props: List[Tuple[int, bytes]]) → bool

Sends a unicast message to the specified property asynchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • props (List[Tuple[int, bytes]]) – List of a request property tuple (property code, property data).

Returns:

True if successful, otherwise False.

Return type:

bool

set_code(code: int | Tuple[int, int] | Tuple[int, int, int] | Any) → bool

Sets the spcecified code as the object code.

Parameters:

code (Union[int, Tuple[int, int], Tuple[int, int, int], Any]) – A code or tuple code.

Returns:

True if the specified code is valid, otherwise False.

Return type:

bool

set_property_data(code: int, data: bytes) → bool
set_property_integer(code: int, data: int, size: int) → bool
set_property_string(code: int, data: str) → bool
set_request_handler(listener: ObjectRequestHandler) → bool

Sets a ObjectRequestHandler to handle read and write requests from other controllers and devices.

Parameters:

listener (ObjectRequestHandler) – The listener that handles read and write requests from other controllers and devices.

class uecho.object.ObjectRequestHandler

Bases: object

ObjectRequestHandler is an abstract handler class to handle to request messages to a device.

abstract property_read_requested(prop: Property) → bool

Handles a read request message, and updates the propery data if needed.

Parameters:

prop (Property) – The target property.

Returns:

True if allowed the access, otherwise False.

Return type:

bool

abstract property_write_requested(prop: Property, data: bytes) → bool

Handles a write request message, and updates the propery data by the specified data if allowed.

Parameters:
  • prop (Property) – The target property.

  • data (bytes) – The update data.

Returns:

True if allowed the update, otherwise False.

Return type:

bool

uecho.option module

uecho.profile module

class uecho.profile.Profile(code: int | Tuple[int, int] | Tuple[int, int, int] | Any | None = None)

Bases: SuperObject

code: int
name: str
node: Any | None
set_code(code: int | Tuple[int, int] | Tuple[int, int, int] | Any) → bool

Sets the spcecified code as the object code.

Parameters:

code (Union[int, Tuple[int, int], Tuple[int, int, int], Any]) – A code or tuple code.

Returns:

True if the specified code is valid, otherwise False.

Return type:

bool

uecho.property module

class uecho.property.Property(code: int = 0, data: bytes = b'')

Bases: Property

Property represents a property of ECHONET Lite, and it includes the specification attributes and the dynamic data.

ANNO = 2
CODE_MAX = 255
CODE_MIN = 128
GET = 0
OPTIONAL = 2
PROHIBITED = 0
PROPERTYMAP_FORMAT1_MAX_SIZE = 15
PROPERTYMAP_FORMAT2_MAP_SIZE = 16
PROPERTYMAP_FORMAT_MAX_SIZE = 17
REQUIRED = 1
SET = 1
anno_status: bool
attrs: List[int]
property bytes
copy()
get_attribute(typ: int) → int
is_announce_enabled() → bool
is_announce_required() → bool
is_mandatory() → bool
is_read_enabled() → bool
is_read_required() → bool
is_write_enabled() → bool
is_write_required() → bool
name: str
property number
object: Any | None
post_message(esv: int, data: bytes = bytearray(b'')) → Message | None

Posts a unicast message to the property and return the response message synchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • data (bytes, optional) – A property data. Defaults to bytearray().

Returns:

The response message if successful receiving the response message, otherwise None.

Return type:

Optional[Message]

property property_map_codes
send_message(esv: int, data: bytes = bytearray(b'')) → bool

Sends a unicast message to the property asynchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • data (bytes, optional) – : A property data. Defaults to bytearray().

Returns:

True if successful, otherwise False.

Return type:

bool

set_attribute(typ: int, attr: int)
size: int
uecho.property.is_propertymap_description_format1(n: int) → bool
uecho.property.is_propertymap_description_format2(n: int) → bool

uecho.remote_node module

class uecho.remote_node.RemoteNode(addr: Tuple[str, int] | None = None)

Bases: Node

controller: Any | None
parse_message(msg: Message) → bool

Module contents

class uecho.Controller

Bases: LocalNode

The Controller and find any devices of Echonet Lite, send any requests to the found devices and receive the responses easily without building the binary protocol messages directly.

add_listener(listener: ControleListener)

Adds a listener to listen to response and announce messages for nodes.

Parameters:

listener (ControleListener) – A listener implemented abstract methods of ControleListener.

announce_message(msg: Message) → bool

Posts a multicast message to the same local network asynchronously.

get_node(addr: str | Tuple[str, int]) → RemoteNode | None

Returns the node specified the IP address.

Parameters:

addr (Union[str, Tuple[str, int]]) – A hostname or an IP address.

Returns:

Returns the node that is already found by the specified address, otherwise None.

Return type:

Optional[RemoteNode]

get_standard_manufacturer(code: int | bytes) → Manufacture | None
get_standard_manufacturer_name(code: int | bytes) → str | None
get_standard_object(code: Object | int | Tuple[int, int]) → Object | None
message_received(proto_msg: Message)
property nodes: List[RemoteNode]

Retures found nodes.

Returns:

List[RemoteNode]; The found remote node list.

post_message(msg: Message, dest: Tuple[str, int] | str | RemoteNode) → Message | None

Posts a unicast message to the specified node and return the response message synchronously.

Parameters:
  • msg (Message) – The request message.

  • dest (Union[Tuple[str, int], str, RemoteNode]) – The destination target.

Returns:

The response message if successful receiving the response message, otherwise None.

Return type:

Optional[Message]

remove_listener(listener: ControleListener)

Removes the specified listener.

Parameters:

listener (ControleListener) – The listener which is already added.

search() → bool

Posts a multicast read request to search all nodes in the same local network asynchronously.

send_message(msg: Message, dest: Tuple[str, int] | str | RemoteNode) → bool

Posts a unicast message to the specified node asynchronously.

Parameters:
  • msg (Message) – The request message.

  • dest (Union[Tuple[str, int], str, RemoteNode]) – The destination target.

Returns:

True if successful, otherwise False.

Return type:

bool

start() → bool

Starts the controller to listen to any multicast and unicast messages from other nodes in the same local network, and executes search() after starting.

stop() → bool

Stops the controller not to listen to any messages.

class uecho.Device(code: int | Tuple[int, int] | Tuple[int, int, int] | Any)

Bases: StandardObject

code: int
name: str
node: Any | None
class uecho.ESV

Bases: ESV

ESV represents a ESV code in a protocol message of Echonet Lite.

class uecho.LocalNode

Bases: Node

add_object(obj: Object) → bool
add_observer(observer)
announce_message(msg: Message) → bool
is_enabled(opt: int) → bool
message_received(proto_msg: Message)
send_message(msg: Message, addr) → bool
set_enabled(opt: int, v: bool) → bool
start(ifaddrs: List[str] = []) → bool
stop() → bool
class uecho.Manufacture

Bases: object

code: int
name: str
class uecho.Message(msg: Message | None = None)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
add_get_property(prop: Property | Tuple[int, bytes] | int) → bool

Adds the specified property to the message.

Parameters:

prop (Union[Property, Tuple[int, bytes]]) – The new property. The property code is required, but the property bytes are optional.

Returns:

Returns True when the specified property is added, Otherwise False.

Return type:

bool

add_property(prop: Property | Tuple[int, bytes] | int) → bool

Adds the specified property to the message.

Parameters:

prop (Union[Property, Tuple[int, bytes]]) – The new property. The property code is required, but the property bytes are optional.

Returns:

Returns True when the specified property is added, Otherwise False.

Return type:

bool

add_set_property(prop: Property | Tuple[int, bytes] | int) → bool

Adds the specified property to the message.

Parameters:

prop (Union[Property, Tuple[int, bytes]]) – The new property. The property code is required, but the property bytes are optional.

Returns:

Returns True when the specified property is added, Otherwise False.

Return type:

bool

from_addr: Tuple[str, int] | None
get_properties: List[Property]
is_node_profile_message()
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.Node(addr: Tuple[str, int] | None = None)

Bases: object

PORT = 3610
add_object(obj: Object) → bool
property address: Tuple[str, int] | None
get_object(code: int | Tuple[int, int, int]) → Object | None

Returns the object specified the code.

Parameters:

code (Union[str, Tuple[int, int, int]]) – A object code.

Returns:

Returns the object when the node has the object specified by the code, otherwise None.

Return type:

Optional[Object]

has_object(code: int) → bool
property ip: str
property objects: List[Object]
property port: int
set_address(addr: Tuple[str, int]) → bool
class uecho.NodeProfile

Bases: Profile

BOOTING = 48
CLASS_CODE = 240
CODE = 978945
FAULT_CONTENT = 137
FAULT_CONTENT_SIZE = 2
IDENTIFICATION_MANUFACTURER_CODE_SIZE = 3
IDENTIFICATION_NUMBER = 131
IDENTIFICATION_NUMBER_SIZE = 17
IDENTIFICATION_UNIQUE_ID_SIZE = 13
INSTANCE_GENERAL_CODE = 1
INSTANCE_LIST_NOTIFICATION = 213
INSTANCE_LIST_NOTIFICATION_MAX = 255
INSTANCE_TRANSMISSION_ONLY_CODE = 2
LOWER_COMMUNICATION_LAYER_PROTOCOL_TYPE = 254
NOT_BOOTING = 49
NUMBER_OF_SELF_NODE_CLASSES = 212
NUMBER_OF_SELF_NODE_CLASSES_SIZE = 2
NUMBER_OF_SELF_NODE_INSTANCES = 211
NUMBER_OF_SELF_NODE_INSTANCES_SIZE = 3
OPERATING_STATUS = 128
OPERATING_STATUS_OFF = 49
OPERATING_STATUS_ON = 48
OPERATING_STATUS_SIZE = 1
SELF_NODE_CLASS_LIST_S = 215
SELF_NODE_CLASS_LIST_S_MAX = 255
SELF_NODE_INSTANCE_LIST_S = 214
SELF_NODE_INSTANCE_LIST_S_MAX = 255
UNIQUE_IDENTIFIER_DATA = 191
UNIQUE_IDENTIFIER_DATA_SIZE = 2
VERSION_INFORMATION = 130
VERSION_INFORMATION_SIZE = 4
code: int
name: str
node: Any | None
class uecho.Object(code: int | Tuple[int, int] | Tuple[int, int, int] | Any | None = None)

Bases: object

Object represents a object of ECHONET Lite, and it has child properties that includes the specification attributes and the dynamic data.

ANNO_PROPERTY_MAP = 157
ANNO_PROPERTY_MAP_MAX_SIZE = 17
CODE_MAX = 16777215
CODE_MIN = 0
CODE_SIZE = 3
CODE_UNKNOWN = 0
GET_PROPERTY_MAP = 159
GET_PROPERTY_MAP_MAX_SIZE = 17
MANUFACTURER_CODE = 138
MANUFACTURER_CODE_SIZE = 3
MANUFACTURER_EVALUATION_CODE_MAX = 16777215
MANUFACTURER_EVALUATION_CODE_MIN = 16777200
MANUFACTURER_UNKNOWN = 16777200
OPERATING_STATUS = 128
OPERATING_STATUS_OFF = 49
OPERATING_STATUS_ON = 48
OPERATING_STATUS_SIZE = 1
PROPERTY_MAP_MAX_SIZE = 16
SET_PROPERTY_MAP = 158
SET_PROPERTY_MAP_MAX_SIZE = 17
add_observer(observer) → bool

Adds a message observer to the subject.

Parameters:

Observer (observer) – A message observer.

Returns:

Returns True when the specified observer is added, Otherwise False.

Return type:

bool

add_property(prop: Property) → bool
property class_code
code: int
copy()
get_property(code: int) → Property | None
get_property_data(code: int) → bytes | None
property group_code
has_property(code: int) → bool
property instance_code
is_class(group_code: int, class_code: int) → bool

Checks the object belongs to the specified group and class.

Parameters:
  • group_code (int) – A group code.

  • class_code (int) – A class code.

Returns:

True if the object belongs to the specified group and class, otherwise False.

Return type:

bool

is_code(code: int | Tuple[int, int] | Tuple[int, int, int] | Any) → bool

Checks whether the object has the specified code or belongs to the specified tuple code.

Parameters:

code (Union[int, Tuple[int, int], Tuple[int, int, int], Any]) – A single code or tuple code.

Returns:

True if the object belongs to the specified code, otherwise False.

Return type:

bool

is_group(code: int) → bool

Checks the object belongs to the specified group.

Parameters:

code (int) – A group code.

Returns:

True if the object belongs to the specified group, otherwise False.

Return type:

bool

message_received(req_msg: Message) → Message | None
name: str
node: Any | None
post_message(esv: int, props: List[Tuple[int, bytes]]) → Any | None

Posts a unicast message to the specified property asynchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • props (List[Tuple[int, bytes]]) – List of a request property tuple (property code, property data).

Returns:

The response message if successful receiving the response message, otherwise None.

Return type:

Optional[Message]

property properties: List[Property]
send_message(esv: int, props: List[Tuple[int, bytes]]) → bool

Sends a unicast message to the specified property asynchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • props (List[Tuple[int, bytes]]) – List of a request property tuple (property code, property data).

Returns:

True if successful, otherwise False.

Return type:

bool

set_code(code: int | Tuple[int, int] | Tuple[int, int, int] | Any) → bool

Sets the spcecified code as the object code.

Parameters:

code (Union[int, Tuple[int, int], Tuple[int, int, int], Any]) – A code or tuple code.

Returns:

True if the specified code is valid, otherwise False.

Return type:

bool

set_property_data(code: int, data: bytes) → bool
set_property_integer(code: int, data: int, size: int) → bool
set_property_string(code: int, data: str) → bool
set_request_handler(listener: ObjectRequestHandler) → bool

Sets a ObjectRequestHandler to handle read and write requests from other controllers and devices.

Parameters:

listener (ObjectRequestHandler) – The listener that handles read and write requests from other controllers and devices.

class uecho.ObjectRequestHandler

Bases: object

ObjectRequestHandler is an abstract handler class to handle to request messages to a device.

abstract property_read_requested(prop: Property) → bool

Handles a read request message, and updates the propery data if needed.

Parameters:

prop (Property) – The target property.

Returns:

True if allowed the access, otherwise False.

Return type:

bool

abstract property_write_requested(prop: Property, data: bytes) → bool

Handles a write request message, and updates the propery data by the specified data if allowed.

Parameters:
  • prop (Property) – The target property.

  • data (bytes) – The update data.

Returns:

True if allowed the update, otherwise False.

Return type:

bool

class uecho.Profile(code: int | Tuple[int, int] | Tuple[int, int, int] | Any | None = None)

Bases: SuperObject

code: int
name: str
node: Any | None
set_code(code: int | Tuple[int, int] | Tuple[int, int, int] | Any) → bool

Sets the spcecified code as the object code.

Parameters:

code (Union[int, Tuple[int, int], Tuple[int, int, int], Any]) – A code or tuple code.

Returns:

True if the specified code is valid, otherwise False.

Return type:

bool

class uecho.Property(code: int = 0, data: bytes = b'')

Bases: Property

Property represents a property of ECHONET Lite, and it includes the specification attributes and the dynamic data.

ANNO = 2
CODE_MAX = 255
CODE_MIN = 128
GET = 0
OPTIONAL = 2
PROHIBITED = 0
PROPERTYMAP_FORMAT1_MAX_SIZE = 15
PROPERTYMAP_FORMAT2_MAP_SIZE = 16
PROPERTYMAP_FORMAT_MAX_SIZE = 17
REQUIRED = 1
SET = 1
anno_status: bool
attrs: List[int]
property bytes
code: int
copy()
data: bytes
get_attribute(typ: int) → int
is_announce_enabled() → bool
is_announce_required() → bool
is_mandatory() → bool
is_read_enabled() → bool
is_read_required() → bool
is_write_enabled() → bool
is_write_required() → bool
name: str
property number
object: Any | None
post_message(esv: int, data: bytes = bytearray(b'')) → Message | None

Posts a unicast message to the property and return the response message synchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • data (bytes, optional) – A property data. Defaults to bytearray().

Returns:

The response message if successful receiving the response message, otherwise None.

Return type:

Optional[Message]

property property_map_codes
send_message(esv: int, data: bytes = bytearray(b'')) → bool

Sends a unicast message to the property asynchronously.

Parameters:
  • esv (int) – A service type of ECHONET Lite.

  • data (bytes, optional) – : A property data. Defaults to bytearray().

Returns:

True if successful, otherwise False.

Return type:

bool

set_attribute(typ: int, attr: int)
size: int
class uecho.ReadRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.RemoteNode(addr: Tuple[str, int] | None = None)

Bases: Node

controller: Any | None
parse_message(msg: Message) → bool
class uecho.SearchMessage

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.SuperObject(code: int | Tuple[int, int] | Tuple[int, int, int] | Any | None = None)

Bases: Object

CODE = 0
add_property(prop: Property) → bool
code: int
name: str
node: Any | None
property_read_requested(prop: Property) → bool
property_write_requested(prop: Property, data: bytes) → bool
class uecho.WriteReadRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.WriteRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None
class uecho.WriteResponseRequiredRequest(DEOJ: int)

Bases: Message

DEOJ: int
SEOJ: int
TID: int
from_addr: Tuple[str, int] | None
get_properties: List[Property]
properties: List[Property]
set_properties: List[Property]
to_addr: Tuple[str, int] | None