Skip to content

Commit 23bbb26

Browse files
authored
Merge pull request #13 from RFD-FHEM/feat/demoDocs
Add some demo to the docs
2 parents f7110b4 + f7a43fa commit 23bbb26

25 files changed

+262
-345
lines changed

.devcontainer/fhem-data/fhem_signalduino_example.cfg

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,16 @@ attr WEB stylesheetPrefix dark
2525
define eventTypes eventTypes ./log/eventTypes.txt
2626
setuuid eventTypes 695e9c21-f33f-c986-9ac3-190c47641a98acb9
2727

28+
29+
# tag::broker_config[]
2830
# 4. Define the MQTT Client (Broker Connection)
2931
# 'mqtt' is the hostname of the broker service in docker-compose.yml
3032
define mqtt_broker MQTT2_CLIENT mqtt:1883
3133
setuuid mqtt_broker 695e9c21-f33f-c986-e617-d7301881c4685bc6
3234
attr mqtt_broker autocreate simple
35+
# end::broker_config[]
3336

37+
# tag::device_config[]
3438
# 5. Define the SignalDuino MQTT Device
3539
define PySignalDuino MQTT2_DEVICE
3640
setuuid PySignalDuino 695e9c21-f33f-c986-4f81-a9f0ab37b6bcedf8
@@ -75,6 +79,7 @@ attr PySignalDuino setList raw:textField signalduino/v1/commands/set/raw $EVTPAR
7579
# Maintenance commands \
7680
factory_reset:noArg signalduino/v1/commands/set/factory_reset
7781
attr PySignalDuino stateFormat state
82+
# end::device_config[]
7883
# Map JSON payload to readings
7984
# Define setter commands
8085

.github/workflows/docs.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ jobs:
3131
- name: run asciidoctor with Kroki extension
3232
# Registriere die Kroki-Extension (-r asciidoctor-kroki) und aktiviere sie (-a kroki=).
3333
# Mermaid-Diagramme werden mit dem Kroki-Server gerendert.
34-
run: asciidoctor -R docs -D build/site/html -a docinfo=shared -a toc=left -a toclevels=2 -r asciidoctor-kroki -a kroki= 'docs/index.adoc'
34+
# Verwendung von -R docs, um die Verzeichnisstruktur unter build/site/html beizubehalten
35+
run: |
36+
shopt -s globstar
37+
asciidoctor -R docs -D build/site/html -a docinfo=shared -a toc=left -a toclevels=2 -r asciidoctor-kroki -a kroki= docs/**/*.adoc
3538
3639
- name: Setup Python for Sitemap Generation
3740
uses: actions/setup-python@v5

README.adoc

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
= PySignalduino – Asynchrone MQTT-Bridge für SIGNALDuino
2+
:sectlinks:
3+
4+
Dieses Projekt ist eine moderne Python-Implementierung der SIGNALDuino-Protokolle mit vollständiger *asyncio*-Unterstützung und integrierter *MQTT-Bridge*. Es ermöglicht die Kommunikation mit SIGNALDuino-Hardware (über serielle Schnittstelle oder TCP) und veröffentlicht empfangene Signale sowie empfängt Steuerbefehle über MQTT.
5+
6+
=== Entwicklungsstatus
7+
8+
[NOTE]
9+
.Entwicklungsstatus
10+
====
11+
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.
12+
====
13+
14+
=== PySignalduino vs. Original
15+
PySignalduino ist keine direkte Portierung, sondern eine Neuimplementierung mit folgenden Unterschieden:
16+
* *Asynchrone Verarbeitung*:: Statt Threads wird `asyncio` verwendet.
17+
* *MQTT-Integration*:: Eingebaute MQTT-Bridge für nahtlose Integration in IoT-Ökosysteme.
18+
* *Moderne Python-Praktiken*:: Typisierung, strukturierte Logging, Konfiguration über Umgebungsvariablen.
19+
20+
== Controller-Code und Firmware
21+
22+
Die SIGNALDuino-Firmware (Microcontroller-Code) wird in einem separaten Repository entwickelt:
23+
24+
* *GitHub Repository*:: https://github.com/RFD-FHEM/SIGNALDuino
25+
* *Aktuelle Version*:: v4.0.0
26+
* *Unterstützte Hardware*::
27+
** Arduino Nano mit CC1101
28+
** ESP32-basierte Boards (z.B. ESP32-DevKitC)
29+
** Maple Mini (STM32)
30+
* *Build-Anleitungen*:: Das Repository enthält PlatformIO-Konfigurationen und Arduino-IDE-Projektdateien für einfache Kompilierung.
31+
32+
== Hauptmerkmale
33+
34+
* **Vollständig asynchron** – Basierend auf `asyncio` für hohe Performance und einfache Integration in asynchrone Anwendungen.
35+
* **MQTT-Integration** – Automatisches Publizieren dekodierter Nachrichten in konfigurierbare Topics und Empfang von Steuerbefehlen (z.B. `version`, `set`, `mqtt`).
36+
* **Unterstützte Transporte** – Serielle Verbindung (über `pyserial-asyncio`) und TCP-Verbindung.
37+
* **Umfangreiche Protokollbibliothek** – Portierung der originalen FHEM‑SIGNALDuino‑Protokolle mit `SDProtocols` und `SDProtocolData`.
38+
* **Konfiguration über Umgebungsvariablen** – Einfache Einrichtung ohne Codeänderungen.
39+
* **Ausführbares Hauptprogramm** – `main.py` bietet eine sofort einsatzbereite Lösung mit Logging, Signalbehandlung und Timeout‑Steuerung.
40+
* **Komprimierte Datenübertragung** – Effiziente Payload‑Kompression für MQTT‑Nachrichten.
41+
42+
== Demo
43+
44+
=== MQTT-CLI-Integration
45+
46+
image::docs/pysignalduino_cli.apng[PySignalduino CLI Demo]
47+
48+
=== FHEMweb-Integration
49+
50+
image::docs/pysignalduino_fhemweb.apng[PySignalduino FHEMweb Demo]
51+
52+
== Projektstruktur
53+
54+
[source,text]
55+
----
56+
PySignalduino/
57+
├── signalduino/ # Hauptpaket
58+
│ ├── controller.py # Asynchroner Controller
59+
│ ├── mqtt.py # MQTT‑Publisher/Subscriber
60+
│ ├── transport.py # Serielle/TCP‑Transporte (asyncio)
61+
│ ├── commands.py # Befehlsimplementierung
62+
│ └── ...
63+
├── sd_protocols/ # Protokollbibliothek (SDProtocols)
64+
├── tests/ # Umfangreiche Testsuite
65+
├── docs/ # Dokumentation (AsciiDoc)
66+
├── main.py # Ausführbares Hauptprogramm
67+
├── pyproject.toml # Paketkonfiguration
68+
└── requirements*.txt # Abhängigkeiten
69+
----
70+
71+
== Dokumentation
72+
73+
Die vollständige Dokumentation und alle Anleitungen finden Sie auf der Hauptseite:
74+
75+
* xref:docs/index.adoc[Zur vollständigen PySignalduino Dokumentation]
76+
77+
== SEO & Sitemap
78+
79+
Die Dokumentation wird automatisch mit einer dynamischen Sitemap (`sitemap.xml`) und branch‑spezifischen `robots.txt`‑Dateien versehen, um die Auffindbarkeit in Suchmaschinen zu verbessern.
80+
81+
* *Sitemap‑Generierung*:: Das Skript xref:tools/generate_sitemap.py[tools/generate_sitemap.py] scannt den Build‑Output, weist Prioritäten und Update‑Frequenzen zu und generiert eine valide XML‑Sitemap gemäß sitemaps.org.
82+
* *Branch‑spezifische URLs*:: Für die Branches `main`, `preview` und `develop` werden unterschiedliche Base‑URLs verwendet.
83+
* *Integration in CI/CD*:: Der GitHub Actions Workflow link:.github/workflows/docs.yml[.github/workflows/docs.yml] generiert die Sitemap automatisch nach jedem Build und passt die `robots.txt` entsprechend an.
84+
85+
Weitere Details zur Architektur finden Sie im xref:docs/02_developer_guide/architecture.adoc#dokumentations-infrastruktur-sitemap--seo[Architektur‑Dokument].
86+
87+
== Lizenz
88+
89+
Dieses Projekt steht unter der MIT‑Lizenz – siehe xref:LICENSE[LICENSE] für Details.
90+
91+
== Danksagung
92+
93+
Basierend auf der originalen FHEM‑SIGNALDuino‑Implementierung von [@Sidey79](https://github.com/Sidey79) und der Community.

README.md

Lines changed: 0 additions & 220 deletions
This file was deleted.

0 commit comments

Comments
 (0)