Skip to content

Commit cdf99a9

Browse files
author
sidey79
committed
fix(docs): improve documentation clarity and formatting across multiple files
1 parent f324be3 commit cdf99a9

File tree

9 files changed

+30
-26
lines changed

9 files changed

+30
-26
lines changed

docs/01_user_guide/index.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ Die Hauptkomponenten sind:
7171

7272
Für einen schnellen Einstieg folgen Sie diesen Schritten:
7373

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.
74+
. **Installation**: Siehe link:installation.adoc[Installationsanleitung].
75+
. **Konfiguration**: Setzen Sie die erforderlichen Umgebungsvariablen (z.B. `SIGNALDUINO_SERIAL_PORT`, `MQTT_HOST`).
76+
. **Programm starten**: Führen Sie `python3 main.py` aus.
77+
. **MQTT‑Nachrichten überwachen**: Abonnieren Sie das Topic `signalduino/messages`, um dekodierte Signale zu empfangen.
7878

7979
Ausführliche Anleitungen finden Sie in den folgenden Kapiteln.
8080

docs/01_user_guide/installation.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
====
55
PySignalduino ist noch in Entwicklung.
66
Es gibt bisher keine stabile Version – nutzen Sie die Software mit entsprechender Vorsicht.
7+
====
78

89
== Voraussetzungen
910

docs/02_developer_guide/contribution.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ Beiträge zum Projekt sind willkommen!
99
1010
== Workflow
1111
12-
1. **Fork & Clone:** Projekt forken und lokal klonen.
13-
2. **Branch:** Feature-Branch erstellen (`git checkout -b feature/mein-feature`).
14-
3. **Entwicklung:** Änderungen implementieren.
15-
4. **Tests:** Sicherstellen, dass alle Tests bestehen (`pytest`).
16-
5. **Pull Request:** PR auf GitHub öffnen.
12+
. **Fork & Clone:** Projekt forken und lokal klonen.
13+
. **Branch:** Feature-Branch erstellen (`git checkout -b feature/mein-feature`).
14+
. **Entwicklung:** Änderungen implementieren.
15+
. **Tests:** Sicherstellen, dass alle Tests bestehen (`pytest`).
16+
. **Pull Request:** PR auf GitHub öffnen.
1717
1818
== Entwicklungsumgebung
1919

docs/03_protocol_reference/protocol_details.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ Die Datei `sd_protocols/protocols.json` ist die definitive Quelle für alle Prot
2222

2323
== Neues Protokoll hinzufügen
2424

25-
1. Definition in `protocols.json` ergänzen.
26-
2. Dekodierungsmethode implementieren (z.B. in `sd_protocols/manchester.py`).
27-
3. Tests hinzufügen.
25+
. Definition in `protocols.json` ergänzen.
26+
. Dekodierungsmethode implementieren (z.B. in `sd_protocols/manchester.py`).
27+
. Tests hinzufügen.

docs/architecture/decisions/ADR-001-mqtt-get-frequency.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ $$f_{RF} = \frac{26}{65536} \times F_{REG} \, \text{MHz}$$
2424

2525
Wir implementieren den `get/frequency` Befehl als Teil der `MqttHandler`- und `Commands`-Klassen.
2626

27-
1. *MQTT Topic*: Der Befehl wird über `cmd/get/frequency` empfangen (komplettes Topic: `<base_topic>/commands/get/frequency`).
28-
2. *Antwort Topic*: Die Antwort wird über das etablierte Antwort-Topic (`<base_topic>/responses`) veröffentlicht, um Konsistenz mit dem bestehenden `get/system/version` Befehl zu gewährleisten. Der Payload muss das Feld `command` enthalten, um die Herkunft zu kennzeichnen.
29-
3. *Berechnungslogik*: Die Berechnung wird exakt nach der CC1101-Formel unter Verwendung von $F_{XOSC} = 26 \, \text{MHz}$ durchgeführt.
27+
. *MQTT Topic*: Der Befehl wird über `cmd/get/frequency` empfangen (komplettes Topic: `<base_topic>/commands/get/frequency`).
28+
. *Antwort Topic*: Die Antwort wird über das etablierte Antwort-Topic (`<base_topic>/responses`) veröffentlicht, um Konsistenz mit dem bestehenden `get/system/version` Befehl zu gewährleisten. Der Payload muss das Feld `command` enthalten, um die Herkunft zu kennzeichnen.
29+
. *Berechnungslogik*: Die Berechnung wird exakt nach der CC1101-Formel unter Verwendung von $F_{XOSC} = 26 \, \text{MHz}$ durchgeführt.
3030
* Wir erstellen eine asynchrone Methode in `signalduino/hardware.py` (z.B. `get_frequency_registers()`) zum Auslesen von FREQ2, FREQ1, FREQ0.
3131
* Wir implementieren die Berechnung in `signalduino/commands.py` (z.B. `get_frequency()`), um die Abhängigkeit der Hardware vom Command Layer zu kapseln.
3232
* Das Ergebnis wird auf 4 Dezimalstellen gerundet (in MHz), um eine hohe Genauigkeit bei der Anzeige zu gewährleisten.

docs/architecture/decisions/ADR-002-mqtt-command-dispatcher.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ Die zentrale Verwaltung der Befehle und deren Validierung ist eine bewährte Met
1515

1616
Die hartcodierte `if/elif`-Logik in `signalduino/mqtt.py` wird durch die Verwendung des `MqttCommandDispatcher` ersetzt.
1717

18-
1. Der `MqttPublisher` in `signalduino/mqtt.py` wird eine Instanz des `MqttCommandDispatcher` erhalten.
19-
2. Die Methode `_handle_command` in `MqttPublisher` wird umgeschrieben, um den eingehenden Befehlspfad und Payload direkt an `MqttCommandDispatcher.dispatch()` zu übergeben.
20-
3. Die Fehler- und Erfolgsantworten werden vom `MqttCommandDispatcher` zurückgegeben und von `MqttPublisher` an die entsprechenden MQTT-Topics (`/responses` und `/errors`) publiziert.
18+
. Der `MqttPublisher` in `signalduino/mqtt.py` wird eine Instanz des `MqttCommandDispatcher` erhalten.
19+
. Die Methode `_handle_command` in `MqttPublisher` wird umgeschrieben, um den eingehenden Befehlspfad und Payload direkt an `MqttCommandDispatcher.dispatch()` zu übergeben.
20+
. Die Fehler- und Erfolgsantworten werden vom `MqttCommandDispatcher` zurückgegeben und von `MqttPublisher` an die entsprechenden MQTT-Topics (`/responses` und `/errors`) publiziert.
2121

2222
[[konsequenzen]]
2323
== Konsequenzen

docs/architecture/proposals/mqtt_get_frequency.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ Dieses Proposal beschreibt die Implementierung des MQTT-Kommandos `get/cc1101/fr
1313

1414
Der Befehl wird über das MQTT-Topic `[base_topic]/commands/get/cc1101/frequency` empfangen und löst eine Kette von Funktionsaufrufen aus:
1515

16-
1. *`signalduino/mqtt.py`*: Empfängt das Kommando und ruft die Kommando-Logik auf.
17-
2. *`signalduino/commands.py`*: Implementiert die High-Level-Logik, welche die Registerwerte von der Hardware abruft und die Frequenz berechnet.
18-
3. *`signalduino/hardware.py`*: Stellt eine neue Methode zum Lesen der FREQ2, FREQ1 und FREQ0 Register bereit.
16+
. *`signalduino/mqtt.py`*: Empfängt das Kommando und ruft die Kommando-Logik auf.
17+
. *`signalduino/commands.py`*: Implementiert die High-Level-Logik, welche die Registerwerte von der Hardware abruft und die Frequenz berechnet.
18+
. *`signalduino/hardware.py`*: Stellt eine neue Methode zum Lesen der FREQ2, FREQ1 und FREQ0 Register bereit.
1919

2020
Das Ergebnis wird als JSON-Objekt auf dem zentralen Antwort-Topic (`<base_topic>/responses`) veröffentlicht, um Konsistenz mit bestehenden Befehlen zu gewährleisten.
2121

docs/architecture/proposals/mqtt_set_commands.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
// Absicht und Zielsetzung
77
== 1. Zielsetzung und Scope
8+
89
Dieses Architekturproposal beschreibt die Implementierung der CC1101-Parameter-Set-Befehle über MQTT.
910
Die Funktionalität umfasst das Setzen von Frequenz, Bandbreite, Datenrate, Sensitivity und Ramping-Level (Rampl).
1011
Das Ziel ist es, eine konsistente, zuverlässige Kette vom MQTT-Topic bis zum seriellen Kommando an den Signalduino zu gewährleisten.
@@ -103,9 +104,9 @@ Das Feld `req_id` in allen MQTT-Command-Payloads (sowohl `set/...` als auch `get
103104
* **Antwort:** Bei Fehlen der `req_id` in der Anfrage wird das Feld `req_id` in der Antwort-Payload (Topics `responses` und `errors`) den Wert `null` (JSON null) annehmen.
104105

105106
== 4. Fehlerbehandlung und Validierung
106-
1. **Validierung (Dispatcher):** Die MQTT-Payloads werden durch das in [`SignalduinoCommands.COMMAND_MAP`](signalduino/commands.py) definierte `schema` (z.B. `FREQ_SCHEMA`, `DATARATE_SCHEMA`) vor dem Aufruf der Controller-Methode validiert.
107-
2. **Serial-Kommunikation:** `SignalduinoCommands._send_command` wird bei Timeout eine `SignalduinoCommandTimeout` werfen. Diese wird im `SignalduinoController` gefangen und als NACK-Statusmeldung zurückgegeben.
108-
3. **`cc1101_write_init`:** Nach jedem Set-Vorgang muss `SignalduinoCommands.cc1101_write_init()` aufgerufen werden, um die CC1101-Konfiguration erneut in das Chip-Register zu schreiben und die Änderungen zu aktivieren.
107+
. **Validierung (Dispatcher):** Die MQTT-Payloads werden durch das in [`SignalduinoCommands.COMMAND_MAP`](signalduino/commands.py) definierte `schema` (z.B. `FREQ_SCHEMA`, `DATARATE_SCHEMA`) vor dem Aufruf der Controller-Methode validiert.
108+
. **Serial-Kommunikation:** `SignalduinoCommands._send_command` wird bei Timeout eine `SignalduinoCommandTimeout` werfen. Diese wird im `SignalduinoController` gefangen und als NACK-Statusmeldung zurückgegeben.
109+
. **`cc1101_write_init`:** Nach jedem Set-Vorgang muss `SignalduinoCommands.cc1101_write_init()` aufgerufen werden, um die CC1101-Konfiguration erneut in das Chip-Register zu schreiben und die Änderungen zu aktivieren.
109110

110111
== 5. Teststrategie
111112
* **Unit Tests (`tests/test_mqtt_cc1101.py` oder neu: `tests/test_set_commands.py`):**

docs/index.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
= SIGNALduino - Projektübersicht
22
:doctype: book :homepage: index.html :description: Der SIGNALduino ist ein vielseitiges Funkmodul zum Empfangen und Senden von 433/868MHz Signalen in Smart-Home-Umgebungen wie FHEM.
3-
Er dient als Signal-Transceiver und Protokolldekoder. :keywords: SIGNALduino, FHEM, 433MHz, 868MHz, Smart Home, Funkprotokolle, DIY, Arduino, ESP32 :toc: left :toclevels: 2
3+
:keywords: SIGNALduino, FHEM, 433MHz, 868MHz, Smart Home, Funkprotokolle, DIY, Arduino, ESP32 :toc: left :toclevels: 2
44
:experimental:
55

6+
Er dient als Signal-Transceiver und Protokolldekoder.
7+
68
[[section-uebersicht]]
79
== Zweck und Funktion
810

@@ -13,9 +15,9 @@ Dadurch werden verschiedenste proprietäre Funkprotokolle für die Nutzung in Sm
1315

1416
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.
1517

18+
.Übersicht: Hardware und Funktion
1619
[NOTE]
1720
====
18-
== Übersicht: Hardware und Funktion
1921
2022
[mermaid]
2123
----

0 commit comments

Comments
 (0)