Takt für Beep-State-Machine; ersetzt direkten ISR-Aufruf von PiepPattern::TaskCyclic()
+
+
+
rfEventQueue
+
Queue – RfEvent_t
32 Einträge × 5 B
+
pinLevelChangeIsr bei jeder Flanke
+
rfDecodeTask Core 0, Prio 4
+
Überträgt {dtMicros, pinValue}; alle 5 Receiver-State-Machines laufen jetzt im Task-Kontext
+
+
+
+
+
+
+
3 · Signalflüsse
+
+
+
+
+
+
4 · 433-MHz-Receiver
+
+
Objekt
Protokoll
Key-Bytes
Anzahl Keys
Key-Index-Offset
Basisklasse
+
receiverSw
SmartWares Manchester OOK
8 B
22
0
Receiver433
+
receiverAiggend
3-Byte-Key PWM
3 B + 1 Richtungs-B
konfigurierbar
+30
Receiver3ByteKey
+
receiverOval
3-Byte-Key PWM
3 B + 1 Richtungs-B
konfigurierbar
+40
Receiver3ByteKey
+
receiverKerui
3-Byte-Key PWM
3 B + 1 Richtungs-B
konfigurierbar
+50
Receiver3ByteKey
+
receiverThermo
Funk-Thermometer PWM
4 B (36 bit, 4 bit ignoriert)
–
–
Receiver433
+
+
+ Alle .Isr()-Aufrufe erfolgen in rfDecodeTask (Core 0) via rfEventQueue.
+ Debounce: loopCountSincePause < 2 → ISR verwirft Flanke nach Key-Empfang.
+
+
+
+
+
+
5 · Fenster-Objekte
+
+
+
Variante EG (VERSION_DG_ONLY=0, alleFenster[4])
+
+
Name
Sensor-Typ
Key-Nr (mit Offset)
Wait-Zeit-Quelle
+
fensterWz
Kerui
2 + 50 = 52
waitTimeDs (Temperatur)
+
fensterBadUnten
Aiggend
3 + 30 = 33
waitTimeDs
+
fensterKueche
Oval
2 + 40 = 42
waitTimeDs
+
fensterToniNeu
Oval
1 + 40 = 41
waitTimeDs
+
+
+
+
Variante DG (VERSION_DG_ONLY=1, alleFenster[4])
+
+
Name
Sensor-Typ
Key-Nr (mit Offset)
Wait-Zeit-Quelle
+
fensterBadOben
Aiggend
1 + 30 = 31
waitTimeDs
+
fensterFlo
Aiggend
2 + 30 = 32
waitTimeDs
+
fensterHanna
Oval
5 + 40 = 45
waitTimeDs
+
fensterFloBuero
Oval
4 + 40 = 44
waitTimeDs
+
+
+
+
+
+
Sonder-Objekte (immer instanziiert)
+
Name
Sensor-Typ
Key-Nr
Besonderheit
+
fensterGefrier
SmartWares
10
Feste Wait-Zeit: 30 s (hardcodiert in ShallPiep())
+
+
+
+
+
+
+
6 · Beep-Muster (PiepPattern)
+
+
Modus
onTime
offTime
requestCount
Reihenfolge
+
piepFast
20 ms
80 ms
2 Mal
1.
+
piepSlow
500 ms
100 ms
1 Mal
2.
+
piepPauseLong
0 ms
1000 ms
120 × = 60 s
3. (Standardpause)
+
piepPauseShort
0 ms
1000 ms
20 × = 10 s
3. (nach 6 min Dauerbeeep)
+
+
+ Pattern läuft zyklisch: fast → slow → pause(Long/Short) → fast → …
+ Start/Stop über piepPattern→startRequest / stopRequest (volatile).
+ Stopp bei Nacht (bIsNightTime) oder alle Fenster zu.
+
+
+
+
+
+
7 · Wartezeit-Berechnung (waitTimeDs)
+
+
Außentemperatur
Wartezeit
Erklärung
+
< −5 °C
5 min
Kurz – kalte Luft, schnelles Lüften
+
−5 … 19,5 °C
5 … 30 min (linear)
Lineare Interpolation: 5 + (T+5)×25/24,5
+
19,5 … 25 °C
~2 Wochen
Kein Alarm – Sommer, Lüften sinnvoll
+
> 25 °C
30 min
Heiß – kurze Alarmverzögerung
+
kein Sensor-Wert
10 min
Default bis erste Thermo-Meldung
+
+
+ Quelle: receiverThermo (Funk-Thermometer, Aussensensor) · Update bei jedem neuen Thermo-Paket (~50 s Intervall).
+