(Gelöst) Wechselschaltung in Code erstellen

Begonnen von Deckoffizier, 04 Dezember 2025, 11:34:43

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

#15
Das Problem ist hier ganz klar 1-Wire. Denn wenn 1W-Devices am Bus hängen, und tatsächlich alle 3 Sekunden abgefragt werden, bedeutet das einen erheblichen Overhead auf dem Bus. Auch mit dem "fast"-Mode wird das in der Regel nicht besser werden. Ein iButton ist nichts Anderes als ein 1W-ID-Device, also "nur eine Seriennummer".

Es gibt aber einen Trick, den ich schon 2016 in den SmartHome Hacks beschrieben habe. Man lässt _eben nicht_ 1W-Devices permanent auf dem Bus. Sondern die Betätigung eines physisch vorhandenen Schalters bewirkt, dass ein 1W-Device _auf den Bus gelegt wird_. Dafür reicht ein ID-Device (oder ein iButton...) aus.

Der Busmaster kann hier alle 0,3-0,5 Sekunden pollen. Da er fast nie ein 1W-Device findet, gibt es keinen Overhead. WENN er dann eines findet, weiß er sehr schnell, um welches es sich handelt - und kann einen Schaltvorgang auslösen. Der Bus wird durch die 1W-Erkennung für ca. 1 Sekunde blockiert, das stört aber nicht.

Ich benutze diesen Trick, um mit iButtons mein Garagentor und auch Haus- und Hoftür zu öffnen, die Busmaster sind dabei jeweils Arduino Nano und pollen alle 0,3 Sekunden. Code dafür ist im FHEMWIKI unter "DoorPi und FHEM" zu finden.

Ausprobiert habe ich das auch mit Alarmkontakten für Fenster, das ist die Anwendung, die ich damals im Buch beschrieben habe. Wenn an jedem Fenster ein Kontakt mit integriertem 1W-ID-Device hängt, das bei Fensteröffnung auf den Bus gelegt wird, kann man mit einem einzigen 1W-Bus alle Fenster überwachen und sogar sehen, welches Fenster geöffnet wurde.

LG

pah

Zitat von: RalfRog am 05 Dezember 2025, 09:50:53isst das umgekehrt, dass du im schlechtesten Fall 10sec warten musst bis nach dem Schalten das System reagiert und das Licht anschaltet?
Ja.