Der Benutzer-Leitfaden enthält Anweisungen zur Installation, Konfiguration und grundlegenden Verwendung von PySignalduino.
PySignalduino ist eine moderne Python-Bibliothek zur Kommunikation mit SIGNALDuino-Hardware – einem Arduino-basierten Transceiver für 433/868 MHz Funkkommunikation. Die Bibliothek bietet:
-
Asynchrone Verarbeitung: Vollständige
asyncio-Integration für nicht-blockierende Operationen. -
MQTT-Bridge: Eingebaute MQTT-Unterstützung für nahtlose Integration in Smart-Home-Systeme.
-
Protokollbibliothek: Portierung der originalen FHEM‑SIGNALDuino‑Protokolle (
SD_Protocols.pm,SD_ProtocolData.pm) in Python. -
Moderne Transporte: Unterstützung für serielle und TCP-Verbindungen.
PySignalduino ist keine direkte Portierung des Perl‑FHEM‑Moduls, sondern eine Neuimplementierung mit folgenden Schwerpunkten:
-
Asynchrone Architektur: Statt Threads wird
asyncioverwendet, was bessere Skalierbarkeit und einfachere Integration in asynchrone Anwendungen ermöglicht. -
Typisierung: Vollständige Typ‑Annotations für bessere Code‑Qualität und IDE‑Unterstützung.
-
Konfiguration über Umgebungsvariablen: Einfache Einrichtung ohne Codeänderungen.
-
Umfangreiche Testsuite: Hohe Testabdeckung zur Gewährleistung der Stabilität.
|
Warning
|
Entwicklungsstatus PySignalduino befindet sich noch in aktiver Entwicklung und hat noch kein offizielles Release veröffentlicht. Die API kann sich zwischen Versionen ändern. Entwickler sollten bei der Verwendung Vorsicht walten lassen und auf mögliche Breaking Changes vorbereitet sein. |
PySignalduino folgt einer modular aufgebauten Architektur:
link:../../docs/diagrams/architecture.puml[role=include]Die Hauptkomponenten sind:
-
Transport Layer (
signalduino.transport):-
SerialTransport– Asynchrone serielle Kommunikation überpyserial-asyncio. -
TcpTransport– TCP‑Socket‑Verbindung.
-
-
Parser Layer (
signalduino.parser):-
MCParser,MNParser,MSParser,MUParser– Verarbeitung der verschiedenen SIGNALDuino‑Nachrichtentypen.
-
-
Protokollbibliothek (
sd_protocols):-
SDProtocols– Hauptklasse für Protokollerkennung und ‑dekodierung. -
SDProtocolData– Datenstrukturen für Protokolldefinitionen.
-
-
Controller (
signalduino.controller):-
SignalduinoController– Zentrale Steuerungsklasse, koordiniert Transport, Parser und MQTT.
-
-
MQTT‑Integration (
signalduino.mqtt):-
MqttPublisher– Asynchroner MQTT‑Client für Publikation und Subscription.
-
-
Befehls‑API (
signalduino.commands):-
SignalduinoCommands– Umfassende Schnittstelle zur Steuerung der SIGNALDuino‑Firmware.
-
Für einen schnellen Einstieg folgen Sie diesen Schritten:
-
Installation: Siehe Installationsanleitung.
-
Konfiguration: Setzen Sie die erforderlichen Umgebungsvariablen (z.B.
SIGNALDUINO_SERIAL_PORT,MQTT_HOST). -
Programm starten: Führen Sie
python3 main.pyaus. -
MQTT‑Nachrichten überwachen: Abonnieren Sie das Topic
signalduino/messages, um dekodierte Signale zu empfangen.
Ausführliche Anleitungen finden Sie in den folgenden Kapiteln.