seguro.common.broker.Client

class seguro.common.broker.Client(uid=None, host='localhost', port=8883, tls_cert='keys/clients/admin.crt', tls_key='keys/clients/admin.key', tls_cacert='keys/ca.crt', keepalive=60)[source]

Bases: object

Helper class for MQTT interaction with the SEGuRo platform.

This class provides an abstraction layer for MQTT based communication between the SEGuRo platform and the MQTT broker.

Creates a paho.mqtt.client object and initialize the message queue.

Parameters:
  • uid – An identifier of the client

  • host (str) – The MQTT hostname or IP address. Defaults to localhost.

  • port (int) – The port number used for connecting to the MQTT broker. Defaults to 8883.

  • tls_cert (str) – File containing the TLS client certificate for mutual TLS authentication.

  • tls_key (str) – File containing the TLS client key for mutual TLS authentication.

  • tls_cacert (str) – File containing the TLS certificate authority to validate the servers certificate against.

  • keepalive – The keepalive interval in seconds.

__init__(uid=None, host='localhost', port=8883, tls_cert='keys/clients/admin.crt', tls_key='keys/clients/admin.key', tls_cacert='keys/ca.crt', keepalive=60)[source]
Parameters:
  • host (str)

  • port (int)

  • tls_cert (str)

  • tls_key (str)

  • tls_cacert (str)

Methods

__init__([uid, host, port, tls_cert, ...])

publish(topic, message)

Publish message to given topic

publish_samples(topic, samples)

Publish sample to given topic.

start_listening()

Start async listening on subscribed topics.

stop_listening()

Stop async listening on subscribed topics.

subscribe(topic, cb)

Subscribe client to given topic and registering callback (optional).

subscribe_samples(topic, cb)

Subscribe client to given topic and registering callback (optional).

publish(topic, message)[source]

Publish message to given topic

Parameters:
  • topic (str)

  • message (str | bytes | bytearray | int | float | None)

Returns:

The MQTT message information

Return type:

MQTTMessageInfo

publish_samples(topic, samples)[source]

Publish sample to given topic.

Parameters:
  • topic

  • samples (Iterable[Sample])

Returns:

The MQTT message information

Return type:

MQTTMessageInfo

start_listening()[source]

Start async listening on subscribed topics.

stop_listening()[source]

Stop async listening on subscribed topics.

subscribe(topic, cb)[source]

Subscribe client to given topic and registering callback (optional).

Parameters:
  • topic – The topic that is subscribed

  • callback – A callback func that is called on message reception

  • cb (Callable[[Client, MQTTMessage], None])

subscribe_samples(topic, cb)[source]

Subscribe client to given topic and registering callback (optional).

Parameters:
  • topic (str) – The topic that is subscribed

  • cb (Callable[[Client, str, list[Sample]], None]) – The callback func that is called for each received sample