Das Onewire-Binding liest momentan page.3 aus, um dann nur "sinnvolle" Felder zur Abfrage (ow_sensor = xxx) anzubieten. Gut gemeint, allerdings gibt es auch genug DS2438 Produkte, die dieses Schema nicht unterstützen (wollen). Diese werden in der momentanen Version mit einer Fehlermeldung komplett ignoriert!
Da man vom mündigen Benutzer ausgehen sollte, würde ich vorschlagen prinzipiell alle Felder frei zu schalten (also zumindest die beiden Spannungen, Temperatur und "berechnete" Feuchtigkeit immer) und vor allem diese auch bei unbekannten Sensoren zurückzuliefern. Sonst stehen nämlich alle Selber-Bauer auf dem Schlauch.
Grüße
Robert
Da man vom mündigen Benutzer ausgehen sollte, würde ich vorschlagen prinzipiell alle Felder frei zu schalten (also zumindest die beiden Spannungen, Temperatur und "berechnete" Feuchtigkeit immer) und vor allem diese auch bei unbekannten Sensoren zurückzuliefern. Sonst stehen nämlich alle Selber-Bauer auf dem Schlauch.
Code:
diff --git a/plugins/onewire/__init__.py b/plugins/onewire/__init__.py index b50f14f..60d4b27 100755 --- a/plugins/onewire/__init__.py +++ b/plugins/onewire/__init__.py @@ -181,9 +181,9 @@ class OwBase(): except Exception: vis = 0 if vis > 0: - keys = {'T': 'temperature', 'H': 'HIH4000/humidity', 'L': 'vis'} + keys = {'T': 'temperature', 'H': 'HIH4000/humidity', 'V': 'VAD', 'VDD': 'VDD', 'L': 'vis'} else: - keys = {'T': 'temperature', 'H': 'HIH4000/humidity'} + keys = {'T': 'temperature', 'H': 'HIH4000/humidity', 'V': 'VAD', 'VDD': 'VDD'} try: vdd = float(self.read(path + 'VDD')) except Exception: @@ -204,6 +204,7 @@ class OwBase(): return keys else: logger.info("1-Wire: unknown sensor {0} {1} page3: {2}".format(addr, typ, page3)) + return keys elif typ == 'DS2401': # iButton return {'B': 'iButton'} elif typ in ['DS2413', 'DS2406']: # I/O
Robert
Kommentar