|
3 | 3 |
|
4 | 4 | Der Benutzer-Leitfaden enthält Anweisungen zur Installation, Konfiguration und grundlegenden Verwendung von PySignalduino. |
5 | 5 |
|
| 6 | +== Was ist PySignalduino? |
| 7 | + |
| 8 | +PySignalduino ist eine moderne Python-Bibliothek zur Kommunikation mit **SIGNALDuino**-Hardware – einem Arduino-basierten Transceiver für 433/868 MHz Funkkommunikation. Die Bibliothek bietet: |
| 9 | + |
| 10 | +* **Asynchrone Verarbeitung**: Vollständige `asyncio`-Integration für nicht-blockierende Operationen. |
| 11 | +* **MQTT-Bridge**: Eingebaute MQTT-Unterstützung für nahtlose Integration in Smart-Home-Systeme. |
| 12 | +* **Protokollbibliothek**: Portierung der originalen FHEM‑SIGNALDuino‑Protokolle (`SD_Protocols.pm`, `SD_ProtocolData.pm`) in Python. |
| 13 | +* **Moderne Transporte**: Unterstützung für serielle und TCP-Verbindungen. |
| 14 | + |
| 15 | +=== Unterschied zum Original |
| 16 | +PySignalduino ist keine direkte Portierung des Perl‑FHEM‑Moduls, sondern eine Neuimplementierung mit folgenden Schwerpunkten: |
| 17 | + |
| 18 | +* **Asynchrone Architektur**: Statt Threads wird `asyncio` verwendet, was bessere Skalierbarkeit und einfachere Integration in asynchrone Anwendungen ermöglicht. |
| 19 | +* **Typisierung**: Vollständige Typ‑Annotations für bessere Code‑Qualität und IDE‑Unterstützung. |
| 20 | +* **Konfiguration über Umgebungsvariablen**: Einfache Einrichtung ohne Codeänderungen. |
| 21 | +* **Umfangreiche Testsuite**: Hohe Testabdeckung zur Gewährleistung der Stabilität. |
| 22 | + |
| 23 | +=== Entwicklungsstatus |
| 24 | + |
| 25 | +[WARNING] |
| 26 | +==== |
| 27 | +**Entwicklungsstatus** |
| 28 | +
|
| 29 | +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. |
| 30 | +==== |
| 31 | + |
| 32 | +=== Zielgruppe |
| 33 | +PySignalduino richtet sich an: |
| 34 | + |
| 35 | +* **Entwickler**, die SIGNALDuino‑Hardware in Python‑Projekte integrieren möchten. |
| 36 | +* **Smart‑Home‑Enthusiasten**, die eine MQTT‑Bridge für ihre Funkgeräte benötigen. |
| 37 | +* **Integratoren**, die bestehende FHEM‑Installationen um moderne Python‑Komponenten erweitern wollen. |
| 38 | + |
| 39 | +== Architektur-Übersicht |
| 40 | + |
| 41 | +PySignalduino folgt einer modular aufgebauten Architektur: |
| 42 | + |
| 43 | +[source,plantuml] |
| 44 | +---- |
| 45 | +include::../../docs/diagrams/architecture.puml[] |
| 46 | +---- |
| 47 | + |
| 48 | +Die Hauptkomponenten sind: |
| 49 | + |
| 50 | +1. **Transport Layer** (`signalduino.transport`): |
| 51 | + * `SerialTransport` – Asynchrone serielle Kommunikation über `pyserial-asyncio`. |
| 52 | + * `TcpTransport` – TCP‑Socket‑Verbindung. |
| 53 | + |
| 54 | +2. **Parser Layer** (`signalduino.parser`): |
| 55 | + * `MCParser`, `MNParser`, `MSParser`, `MUParser` – Verarbeitung der verschiedenen SIGNALDuino‑Nachrichtentypen. |
| 56 | + |
| 57 | +3. **Protokollbibliothek** (`sd_protocols`): |
| 58 | + * `SDProtocols` – Hauptklasse für Protokollerkennung und ‑dekodierung. |
| 59 | + * `SDProtocolData` – Datenstrukturen für Protokolldefinitionen. |
| 60 | + |
| 61 | +4. **Controller** (`signalduino.controller`): |
| 62 | + * `SignalduinoController` – Zentrale Steuerungsklasse, koordiniert Transport, Parser und MQTT. |
| 63 | + |
| 64 | +5. **MQTT‑Integration** (`signalduino.mqtt`): |
| 65 | + * `MqttPublisher` – Asynchroner MQTT‑Client für Publikation und Subscription. |
| 66 | + |
| 67 | +6. **Befehls‑API** (`signalduino.commands`): |
| 68 | + * `SignalduinoCommands` – Umfassende Schnittstelle zur Steuerung der SIGNALDuino‑Firmware. |
| 69 | + |
| 70 | +== Schnellstart |
| 71 | + |
| 72 | +Für einen schnellen Einstieg folgen Sie diesen Schritten: |
| 73 | + |
| 74 | +1. **Installation**: Siehe link:installation.adoc[Installationsanleitung]. |
| 75 | +2. **Konfiguration**: Setzen Sie die erforderlichen Umgebungsvariablen (z.B. `SIGNALDUINO_SERIAL_PORT`, `MQTT_HOST`). |
| 76 | +3. **Programm starten**: Führen Sie `python3 main.py` aus. |
| 77 | +4. **MQTT‑Nachrichten überwachen**: Abonnieren Sie das Topic `signalduino/messages`, um dekodierte Signale zu empfangen. |
| 78 | + |
| 79 | +Ausführliche Anleitungen finden Sie in den folgenden Kapiteln. |
| 80 | + |
6 | 81 | include::installation.adoc[] |
7 | 82 | include::usage.adoc[] |
0 commit comments