Skip to content

Latest commit

 

History

History
130 lines (96 loc) · 5.39 KB

File metadata and controls

130 lines (96 loc) · 5.39 KB

SIGNALduino - Projektübersicht

Er dient als Signal-Transceiver und Protokolldekoder.

Der SIGNALduino (bestehend aus Hardware-Stick und Firmware) ist ein leistungsstarkes I/O-Gerät zur Erfassung, zum Empfang und zur Verarbeitung von digitalen Funksignalen (typischerweise 433 MHz und 868 MHz).

Seine Hauptaufgabe ist es, Funksignale anhand von Mustern zu erkennen und sie in maximal detaillierter Form an die übergeordnete Hausautomations-Software (wie FHEM) zur Dekodierung weiterzugeben. Dadurch werden verschiedenste proprietäre Funkprotokolle für die Nutzung in Smart-Home-Systemen zugänglich.

Die verfügbare Hardware-Basis reicht von einfachen Arduino/nanoCUL-Lösungen bis hin zu erweiterten Varianten wie dem Maple-SignalDuino und dem ESP32-SignalDuino, die erweiterte Funktionen (z.B. WLAN) bieten.

Übersicht: Hardware und Funktion
graph TD
    subgraph "Input (Funksignale)"
        A[433/868 MHz Signale]
        B[Sensoren / Fernbedienungen]
    end

    subgraph "Hardware-Plattform"
        C[CC1101 Funkmodul]
        D[Arduino Nano]
        E[ESP8266 / ESP32]
    end

    subgraph "PySignalduino (Software-Verarbeitung)"
        F[Empfangen / Senden]

        H[Dekodierung Protokolle]
    end

    subgraph "Output (Home Automation)"
        I[MQTT Bridge]
        J[Serielle Schnittstelle]
        K[FHEM / Home Assistant / ioBroker]
    end

    A --> C
    B --> C
    C -- "Funksignale" --> F
    D -- "Strom/Schnittstelle" --> F
    E -- "Strom/Schnittstelle" --> F

    F -- "Rohdaten" --> G
    G -- "Demodulierte Daten" --> H
    H -- "Decodierte Nachricht" --> I
    H -- "Decodierte Nachricht" --> J
    I --> K
    J --> K

Das SIGNALduino-Projekt entstand in der RFD-FHEM-Community als Open-Source-Initiative zur kostengünstigen Funkkommunikation im Smart-Home-Bereich.

  • 2010er Jahre: Entwicklung erster Arduino-basierter Transceiver mit CC1101-Chips für 433/868 MHz.

  • Perl-Ära: Die Protokollimplementierung erfolgte zunächst als FHEM-Modul 00_SIGNALduino.pm in Perl.

  • Community-Wachstum: Eine aktive Entwickler- und Anwendergemeinschaft trieb die Erweiterung der unterstützten Protokolle voran.

  • PySignalduino: Mit dem Aufkommen moderner IoT-Architekturen wurde eine Python-Implementierung notwendig.

  • Asynchrone Verarbeitung: PySignalduino nutzt asyncio für effiziente, nicht-blockierende Verarbeitung.

  • MQTT-Integration: Eingebaute MQTT-Bridge für nahtlose Integration in moderne Smart-Home-Systeme.

Die SIGNALDuino-Firmware wird kontinuierlich im separaten Repository weiterentwickelt:

  • GitHub Repository: https://github.com/RFD-FHEM/SIGNALDuino

  • Aktuelle Version: v3.5.0 (Stand Dezember 2025)

  • Unterstützte Plattformen:

    • Arduino Nano mit CC1101

    • ESP32 (mit WiFi-Unterstützung)

    • STM32 (Maple Mini)

  • Build-System: PlatformIO und Arduino-IDE Projekte sind im Repository enthalten.

PySignalduino ist keine direkte Portierung, sondern eine Neuimplementierung mit folgenden Schwerpunkten: - Moderne Python-Praktiken: Typisierung, strukturierte Logging, Konfiguration über Umgebungsvariablen. - Erweiterte Transporte: Unterstützung für serielle und TCP-Verbindungen. - Testabdeckung: Umfangreiche Testsuite zur Gewährleistung der Codequalitä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.

Eine breite Palette von Funkprotokollen wird unterstützt und ständig erweitert. Detaillierte Informationen zu den unterstützten Geräten und Protokollen finden Sie im Benutzerhandbuch.

Die Firmware wird kontinuierlich weiterentwickelt und ist nicht auf jedem prinzipiell geeigneten Gerät lauffähig, da spezifische Anpassungen an die Hardware erforderlich sind.

PySignalduino wurde von einer Thread-basierten Architektur zu einer asynchronen asyncio-Architektur migriert. Falls Sie von einer Version vor 0.9.0 upgraden, lesen Sie die Migrationsleitfäden: