Schnellstart: UESPA mit Python

Wrapper: uespa-ffi + UniFFI · Ziele: Linux, macOS, Windows (CPython 3.9+)

1. Konto, App-ID und LicenseCert

Lege im Developer-Portal eine App mit der App-ID deiner Anwendung an und stelle ein LicenseCert aus. Das Zertifikat ist 294 Byte groß, wird offline geprüft und gilt nur für genau diese App-ID. Details: Lizenzen, App-IDs & Mandanten.

2. Einbinden

Bindings erzeugen

bash
scripts/gen-bindings.sh out/   # out/python/uespa_ffi.py + libuespa_ffi.*

3. Initialisieren und senden

python
import base64, time
from uespa_ffi import UespaClient, UespaListener

cert = base64.b64decode(open("license.b64").read())
uespa = UespaClient(0, "com.example.gateway", cert, device_seed)

class Listener(UespaListener):
    def on_event(self, event):
        print(event)

uespa.bus_subscribe("sensors/#")
listener = Listener()
while True:
    uespa.tick(listener)
    time.sleep(0.05)

Hinweise

  • Ideal für Gateways, Tests und Prototypen.
  • Das Gerät leitet immer auch Pakete anderer Apps verschlüsselt weiter (Zwangs-Hop) – zugestellt wird nur im eigenen Namespace.
  • Rendezvous für Internet-P2P: rendezvous.uespa.io:47401 (UDP), Authority: https://uespa.io/v1/authority.