Servus,
ich betreibe seit gestern (zumindest versuche ich es) ein Smart-MF 1-Wire Gateway 1TE mit OAM-RaumController [5.5.1]. Daran hängen 17x DS18B20 (3-Draht, 5 V), sternförmig ab Verteilklemmen (teils mit weiteren Verzweigungen) im Verteiler. Die Verkabelung ist baulich nicht mehr wirklich änderbar, lief so aber jahrelang und problemlos an einer Loxone 1-Wire Extension. Nachdem nun aber immer mehr Loxone raus fliegt, soll das nun das KNX/1Wire Gateway übernehmen.
Leider bisher mit mäßigem Erfolg.
Problem: Alle 17 IDs sind eingetragen, aber nach jedem Neustart liefern einzelne Fühler keine Werte, teils jedes Mal andere.
Auffällig: Ändere ich die eingetragene ID eines solchen Fühlers auf eine ID, die es am Bus nicht gibt, meldet das Gateway genau diesen Fühler über das KO "IDs unbekannter Geräte", mit exakt der ID, die vorher eingetragen war. Die Suche liest den Fühler also fehlerfrei, nur die normale Abfrage scheitert.
Beim Blick in den Code hat Claude zwei Fehler gefunden:
1. Die Experten-Parameter (tRSTL, tMSP, tW0L, tREC0, RWPU) werden nie an den DS2484 übertragen.
OneWireDS2482::setupTiming() existiert, wird aber nirgends aufgerufen. setup() macht nur deviceReset(), danach gelten laut Datenblatt immer die Defaults.
Issue: https://github.com/OpenKNX/OFM-OneWireModule/issues/1
2. Der Active Pullup wird vor jedem 1-Wire-Reset abgeschaltet.
Dadurch läuft jeder Reset-/Presence-Zyklus nur über RWPU. clearActivePullup() hat denselben Fehler mit "| !".
Issue: https://github.com/OpenKNX/OGM-SensorDevices/issues/6
Die Vermutung zum Unterschied Suche/Abfrage: Bei der Suche ist der Schreib-Slot immer der letzte eines Triplets, danach ist die Leitung durch die I2C-Statusabfrage über 100 µs frei. Bei der Abfrage schreibt der DS2484 ganze Bytes mit 8 Slots direkt hintereinander, nach jeder "0" bleiben nur tREC0 = 5,25 µs zur Erholung. Auf einer nicht so optimalen Bus Architektur reicht das vermutlich nicht. tREC0 lässt sich bis 25,25 µs erhöhen, aber wegen Fehler 1 kommt die Einstellung nie beim DS2484 an. Details stehen im Issue.
Beide Fehler sind in v1 und im aktuellen v1dev (26.10.2026) enthalten, die Fix-Vorschläge stehen in den Issues.
VG,
Walter
ich betreibe seit gestern (zumindest versuche ich es) ein Smart-MF 1-Wire Gateway 1TE mit OAM-RaumController [5.5.1]. Daran hängen 17x DS18B20 (3-Draht, 5 V), sternförmig ab Verteilklemmen (teils mit weiteren Verzweigungen) im Verteiler. Die Verkabelung ist baulich nicht mehr wirklich änderbar, lief so aber jahrelang und problemlos an einer Loxone 1-Wire Extension. Nachdem nun aber immer mehr Loxone raus fliegt, soll das nun das KNX/1Wire Gateway übernehmen.
Leider bisher mit mäßigem Erfolg.
Problem: Alle 17 IDs sind eingetragen, aber nach jedem Neustart liefern einzelne Fühler keine Werte, teils jedes Mal andere.
Auffällig: Ändere ich die eingetragene ID eines solchen Fühlers auf eine ID, die es am Bus nicht gibt, meldet das Gateway genau diesen Fühler über das KO "IDs unbekannter Geräte", mit exakt der ID, die vorher eingetragen war. Die Suche liest den Fühler also fehlerfrei, nur die normale Abfrage scheitert.
Beim Blick in den Code hat Claude zwei Fehler gefunden:
1. Die Experten-Parameter (tRSTL, tMSP, tW0L, tREC0, RWPU) werden nie an den DS2484 übertragen.
OneWireDS2482::setupTiming() existiert, wird aber nirgends aufgerufen. setup() macht nur deviceReset(), danach gelten laut Datenblatt immer die Defaults.
Issue: https://github.com/OpenKNX/OFM-OneWireModule/issues/1
2. Der Active Pullup wird vor jedem 1-Wire-Reset abgeschaltet.
Code:
writeConfig(readConfig() & !DS2482_CONFIG_SPU); // !0x04 == 0 -> Config = 0x00, APU auch weg
Issue: https://github.com/OpenKNX/OGM-SensorDevices/issues/6
Die Vermutung zum Unterschied Suche/Abfrage: Bei der Suche ist der Schreib-Slot immer der letzte eines Triplets, danach ist die Leitung durch die I2C-Statusabfrage über 100 µs frei. Bei der Abfrage schreibt der DS2484 ganze Bytes mit 8 Slots direkt hintereinander, nach jeder "0" bleiben nur tREC0 = 5,25 µs zur Erholung. Auf einer nicht so optimalen Bus Architektur reicht das vermutlich nicht. tREC0 lässt sich bis 25,25 µs erhöhen, aber wegen Fehler 1 kommt die Einstellung nie beim DS2484 an. Details stehen im Issue.
Beide Fehler sind in v1 und im aktuellen v1dev (26.10.2026) enthalten, die Fix-Vorschläge stehen in den Issues.
VG,
Walter


Kommentar