DS2438: Kann IAD nicht setzen, keine vis-Readings

Begonnen von MichaelO, 02 November 2017, 13:26:03

Vorheriges Thema - Nächstes Thema

MichaelO

Moin,
ich benutze seit langem einen esera Solar-, Helligkeits- und Temperatursensor (1-wire DS2438), der einwandfrei funktioniert. Er liefert alle Werte (einschl. vis). Nun habe ich für den Keller ein eigenes Modul gebaut, das auf Basis eines DS2438 die Luftfeuchte (HIH-5031) und eine weitere Spannung 0-5V (am Eingang VSense+, VSense- liegt auf GND) messen soll.

Es wurde sofort in fhem erkannt, liefert problemlos VDD, VAD und temperature, aber keinen Wert für vis. Ich habe nun gesehen, dass das für die vis-Messung wohl zuständige IAD-Bit (gelesen per get...) beim esera-Gerät 1 ist, wohingegen es bei meinem auf 0 steht. Nun ist es egal, ob ich über die set-Schaltfläche oder den direkten Befehl das Bit bei meinem DS2438 auf 1 setzen will, es passiert nichts, bleibt immer 0.

Kann mir wer helfen und sagen, wie ich das IC dazu bringen kann, mir auch den vis-Wert zu liefern?

Internals:
   DEF        26.3761E4000000 60
   IODev      myOWServer
   LAST_READ_FAILED 0
   NAME       KE_Raumsensor
   NOTIFYDEV  global
   NR         383
   NTFY_ORDER 50b-KE_Raumsensor
   STATE      VAD: 3.37  VDD: 5.02  temperature: 17.4688
   TYPE       OWDevice
   READINGS:
     2017-11-02 13:00:16   IAD             0
     2017-11-02 13:22:59   VAD             3.37
     2017-11-02 12:46:11   VDD             5.02
     2017-11-02 13:22:59   state           VAD: 3.37  VDD: 5.02  temperature: 17.4688
     2017-11-02 12:46:11   temperature     17.4688
     2017-11-02 13:22:59   vis             0
   fhem:
     address    26.3761E4000000
     alerting   0
     bus        bus.0
     interfaces multisensor
     interval   60
     getters:
       B1-R1-A/gain
       B1-R1-A/offset
       B1-R1-A/pressure
       CA
       DATANAB/humidity
       EE
       HIH3600/humidity
       HIH4000/humidity
       HTM1735/humidity
       IAD
       MultiSensor/type
       S3-R1-A/current
       S3-R1-A/gain
       S3-R1-A/illuminance
       S3-R1-A/illumination
       VAD
       VDD
       address
       crc8
       date
       disconnect/date
       disconnect/udate
       endcharge/date
       endcharge/udate
       family
       humidity
       id
       locator
       offset
       pages/page.0
       pages/page.1
       pages/page.2
       pages/page.3
       pages/page.4
       pages/page.5
       pages/page.6
       pages/page.7
       pages/page.ALL
       r_address
       r_id
       r_locator
       temperature
       type
       udate
       vis
     polls:
       VAD
       vis
     setters:
       B1-R1-A/gain
       B1-R1-A/offset
       CA
       DATANAB/reset
       EE
       IAD
       S3-R1-A/gain
       date
       disconnect/date
       disconnect/udate
       endcharge/date
       endcharge/udate
       offset
       pages/page.0
       pages/page.1
       pages/page.2
       pages/page.3
       pages/page.4
       pages/page.5
       pages/page.6
       pages/page.7
       pages/page.ALL
       udate
     state:
       VAD
       VDD
       temperature
Attributes:
   IODev      myOWServer
   model      DS2438
   polls      VAD,vis
   room       OWDevice


Danke
Michael

eldrik

Hi,

schau dir einmal den Attribut polls näher an, der wird dir wahrscheinlich weiterhelfen.

Beim nicht funktionierenden set vermute ich den hier des öfteren diskutierten Fehler mit der ownet.pm und der owfs excecutables siehe jüngstes Beispiel https://forum.fhem.de/index.php/topic,78095.0.html

Greetz
Eldrik

MichaelO

#2
Nein, "polls" hat irgendwie keine Auswirkungen. Hab es gelöscht, neu gestartet, danach gleiches Verhalten. Hatte es auch nur eingefügt, da das Reading vis nach autocreate nicht da war. Ich dachte, man kann es so dem Gerät "entlocken".

Wie finde ich heraus, welche OW Version ich habe? Ich kann mich dunkel erinnern, da schonmal was manuell gemacht zu haben. Das ist aber gefühlt ewig her, seither lief der 1-wire Bus mit dem Hostadapter von sheepwalkelectronics völlig problemlos.

Meine OWNet.pm hab ich wohl schonmal manuell "bearbeitet", da es im Verzeichnis eine .old gibt. Die aktuell laufende hat folgende Versionsinfo

# OWNet module for perl
# $Id: OWNet.pm,v 1.24 2013/02/02 11:41:28 alfille Exp $


Leider hat die angeblich korrigierte keine Versionsinfo, so dass ich unsicher bin, ob ich nicht eine doch funktionierende aber neuere habe.

Gruß
Michael

Dr. Boris Neubert

Hi,

lässt sich vis über das Webfrontend owhttpd vom owserver überhaupt ändern? Finde zu vis nichts im Datenblatt.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

MichaelO

Moin,

wenn ich das richtig sehe, ist vis das Ergebnis der vsense+ und vsense- Abfrage im DS2438, also der Eintrag im Current Register. Damit der Chip dieses Register aber beschreibt (also in der Funktion als Batterieüberwachung den Strom misst), muss laut Datenblatt das IAD-Bit in Page 0 gesetzt sein.

ZitatIAD = Current A/D Control Bit. "1" = the current A/D and the ICA are enabled, and current measurements will be taken at the rate of 36.41 Hz; "0" = the current A/D and the ICA have been disabled. The default value of this bit is a "1" (current A/D and ICA are enabled).

Selbst wenn es das ist, fragt fhem diesen Wert nicht von selbst ab. Das hat mich beim esera-Sensor anfangs zur Verzweiflung gebracht. Ich habe das Attribut "polls VAD,VDD,vis,temperature" gesetzt, danach erfolgt die Abfrage gem. eingestelltem Intervall.

Im Webfrontend owhttpd wird für den esera Solar-, Helligkeits- und Temperatursensor in der untersten Zeile unter "vis" ein Wert angezeigt, aus dem sich dann die Einstrahlung berechnen lässt, das funktioniert seit langem 100%. In fhem kann ich mit get <device> IAD (oder über Dropdown auf IAD und Get-Button im entsprechenden Device) den Zustand des IAD-Bit abfragen. Es ist = 1. Bei meinem Eigenbau ist das IAD-Bit gem. Abfrage über fhem = 0. Es kann auch nicht per set-befehl gesetzt werden, da schlichtweg nichts passiert. Im Webfrontend owhttpd ist vis = 0, es scheint also in der Tat nichts gemessen zu werden.

Der Ansatz mit dem Webfrontend owhttpd war schonmal gut, daran hatte ich nicht gedacht. Dort kann das IAD-Bit einzeln gesetzt werden. Leider funktioniert auch das bei meinem Eigenbau nicht. Ich setze den Haken, drücke "change" und nach einem Refresh der Seite ist der Haken dort wieder weg. Ich werde als nächstes einen Testaufbau machen, und einen weiteren DS2438 an den Bus hängen. Möglicherweise ist ja der Chip defekt. Da es der am weitest entfernte Baustein an meinem Bus ist (etwa 30-40m), kann es ggf. auch mit Problemen auf dem Bus zusammenhängen. Da weiß ich aber nicht, wie man sowas rausfinden kann, zumal die Abfrage der Werte VDD,VAD und temperature ja korrekt funktioniert.

Auf jeden Fall schonmal danke für den Hinweis mit dem Webfrontend, das hat ja schonmal etwas mehr Licht in die Sache gebracht.

Gruß
Michael