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
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 (https://forum.fhem.de/index.php/topic,78095.0.html)
Greetz
Eldrik
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
Hi,
lässt sich vis über das Webfrontend owhttpd vom owserver überhaupt ändern? Finde zu vis nichts im Datenblatt.
Grüße
Boris
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