Hallo zusammen,
ich habe ein Problem mit OWDevices. Es handelt sich um Temperatur- / Feuchtesensoren MS-TH http://www.fuchs-shop.com/de/shop/6/1/13372059/ (http://www.fuchs-shop.com/de/shop/6/1/13372059/). Die Sensoren werden korrekt angelegt, und auch die Temperaturwerte werden im eingestellten Intervall (600s) ausgelesen und in Logfiles übertragen.
Um die Feuchtewerte zu erhalten, habe ich die folgenden Attribute gesetzt:
attr <Sensor> polls HIH4000/humidity,VAD,VDD,temperature
attr <Sensor> userReadings humidity { ReadingsVal("Sensor_Dachboden_aussen","HIH4000/humidity",0) }
Für die Temperatur, VAD und VDD funktioniert das auch, alle 600s wird ein neuer Wert gelesen und dann auch mitgeloggt. Für die Luftfeuchtigkeit (humidity und HIH4000/humidity) wird einmal direkt nach der Definition des Attributs ein Wert eingelesen und dann nicht wieder. D.h. im Logfile erscheint dann alle 600s immer derselbe Wert.
Edit: ich muss das Problem hier genauer beschreiben: das Reading humidity wird alle 600s neu gesetzt (das sehe ich ja unter den Readings an der Zeit. und Datumsangabe). Das Reading HIH4000/humidity wird nicht alle 600s neu gelesen, sondern nur einmal, und zwar zum Zeitpunkt der Definition und dann jeweils, wenn ich über
get <Sensor> HIH4000/humidity
den Wert manuell auslese. Es ist, als ob fhem alle Readings im Intervall ausliest und nur den HIH4000/humidity überspringt.
Wenn ich HIH4000/humidity oder humidity über get manuell erfrage, werden auch Werte ausgelesen (der Sensor funktioniert also).
Ich würde mich sehr freuen, wenn mich jemand freundlich in die richtige Richtung stupsen könnte. Momentan behelfe ich mir über ein doif, was alle 600s ein get für die Luftfeutigkeiten durchführt, aber das kann ja nicht Ziel der Übung sein. Vielen lieben Dank im Voraus für die Hilfe.
Wenn ich weitere Informationen zur Problemfindung beisteuern kann, bitte bescheid sagen, ich poste dan möglichst zeitnah meine Antworten.
Viele Grüße,
Daniel
Hi Daniel,
sieht so aus, als ob er das Reading nicht pollt. Versuche mal mit der regex zu experimentieren, also "HIH4000/humidity" irgendwie einzukürzen. Z.B. "HIH.*" oder sowas. Am Besten dazu die anderen Werte vorübergehend rausnehmen.
Viel Erfolg!
Frank
list <sensor>
bitte.
Viele Grüße
Boris
Vielen Dank für die beiden Antworten.
list <sensor>
ergibt das folgende Ergebnis (komplett, deswegen etwas länger):
Internals:
CFGFN
DEF 26.D94923010000 600
IODev myOWServer
LAST_READ_FAILED 0
NAME Sensor_Dachboden_aussen
NOTIFYDEV global
NR 680
NTFY_ORDER 50b-Sensor_Dachboden_aussen
STATE VAD: 2 VDD: 3.96 temperature: 24.4375
TYPE OWDevice
Readings:
2016-05-01 18:22:00 HIH4000/humidity 55.7696
2016-05-01 18:20:28 VAD 2
2016-05-01 18:20:28 VDD 3.96
2016-05-01 18:22:00 humidity 55.7696
2016-05-01 18:20:28 state VAD: 2 VDD: 3.96 temperature: 24.4375
2016-05-01 18:20:28 temperature 24.4375
Fhem:
address 26.D94923010000
alerting 0
bus bus.0
interfaces multisensor
interval 600
getters:
B1-R1-A/gain
B1-R1-A/offset
B1-R1-A/pressure
CA
DATANAB/humidity
EE
HIH4000/humidity
HTM1735/humidity
IAD
MultiSensor/type
S3-R1-A/current
S3-R1-A/gain
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
VDD
temperature
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 HIH4000/humidity,VAD,VDD,temperature
room OWDevice
userReadings humidity { ReadingsVal("Sensor_Dachboden_aussen","HIH4000/humidity",0) }
Für mich sieht es in der Tat so aus, dass der poll nicht funktioniert, da HIH4000/humidity nicht in der Liste der polls auftaucht.
Ich werde mal probieren, ob es mit Regex besser funktioniert. Kann der slash / Probleme machen? Muss da was escaped werden?
Grüße und Dank,
Daniel
Das ist merkwürdig.
Bitte drehe den Loglevel auf 5 und setze nochmal den Befehl
attr Sensor_Dachboden_aussen polls HIH4000/humidity,VAD,VDD,temperature
ab. Im Log sollte so etwas erscheinen wie:
... 5 Sensor_Dachboden_aussen: polls: HIH4000/humidity VAD VDD temperature
Dann mit list nachsehen, ob unter fhem/polls HIH4000/humidity immer noch fehlt.
Und dann bitte hier berichten. Danke.
Viele Grüße
Boris
Habe ich gemacht. Im Logfile erscheint nach dem attr polls:
2016.05.01 19:54:24 5: Cmd: >attr Sensor_Dachboden_aussen polls HIH4000/humidity,VAD,VDD,temperature<
2016.05.01 19:54:24 5: Sensor_Dachboden_aussen: polls: HIH4000/humidity VAD VDD temperature
2016.05.01 19:54:24 5: Triggering global (1 changes)
2016.05.01 19:54:24 5: Starting notify loop for global, first event ATTR Sensor_Dachboden_aussen polls HIH4000/humidity,VAD,VDD,temperature
Unmittelbar danach gibt der Befehl list Sensor_Dachboden_aussen die folgenden polls:
polls:
HIH4000/humidity
VAD
VDD
temperature
So weit so gut - dachte ich. Das Reading HIH4000/humidity wird jedoch immer noch nicht gepollt. Sobald zum ersten Mal Werte gepollt werden (ich habe das Intervall des Sensors auf 10s heruntergesetzt), ergibt list Sensor_Dachboden_aussen die folgenden polls:
polls:
VAD
VDD
temperature
Das bestätigt meinen Verdacht.
Kannst Du bitte dasselbe mal mit einer anderen Liste von polls probieren, z.B.:
attr Sensor_Dachboden_aussen polls VDD,temperature,date,humidity
Ich möchte sehen, ob sich die polls danach auch auf die Default-Werte zurücksetzen.
Ich vermute, dass es mit den Array-Referenzen zu tun hat, die wir verwenden.
Wenn es das ist, werde ich die nächsten zwei Wochen nicht dazu kommen, es zu fixen. Du musst b.a.w. ein periodisches at einsetzen, um den Wert mit get zu holen. Und dann kann das übrigens eigentlich noch nie funktioniert haben.
Hast Du mehrere DS2438 im Betrieb?
Viele Grüße
Boris
Ich habe die Polls mal mit ein paar Sachen aufgebohrt:
attr Sensor_Dachboden_aussen polls VDD,temperature,date,humidity,date,family
Die Readings, die nicht standardmäßig gepollt werden (date, family,humidity), werden nicht regelmäßig eingelesen. Also genau wie beim HIH4000/humidity.
Ich habe insgesamt 4 DS2438 im Einsatz, bei allen tritt das gleiche Verhalten auf. Es ist richtig, dass das Polling der humidity bei den DS2438 noch nie funktioniert hat, seit gestern habe ich mich in die Struktur der OWDevices so weit eingearbeitet, dass ich z.B. Verkabelungsfehler ausschließen kann.
Momentan setze ich einen doif ein, um alle 600s die Ergbnisabfrage zu erzwingen (es besteht also keine Eile).
Danke bis hierhin für die Hilfe!
Daniel
Hallo zusammen,
zu dieser Baustelle gibt es Neueigkeiten. Seit etwa dem 11. Mai um 20:00 Uhr funktionieren die polls einweindfrei (Schätzung anhand der FileLogs). Zu diesem Zeitpunkt habe ich ein Update durchgeführt:
2016.05.11 19:40:30 1: UPD ./CHANGED
2016.05.11 19:40:30 1: UPD ./fhem.pl
2016.05.11 19:40:30 1: UPD FHEM/00_FBAHAHTTP.pm
2016.05.11 19:40:30 1: UPD FHEM/00_ZWDongle.pm
2016.05.11 19:40:30 1: UPD FHEM/10_CUL_HM.pm
2016.05.11 19:40:31 1: UPD FHEM/10_FBDECT.pm
2016.05.11 19:40:31 1: UPD FHEM/10_ZWave.pm
2016.05.11 19:40:31 1: UPD FHEM/31_HUEDevice.pm
2016.05.11 19:40:31 1: UPD FHEM/37_plex.pm
2016.05.11 19:40:31 1: UPD FHEM/47_OBIS.pm
2016.05.11 19:40:31 1: UPD FHEM/72_FB_CALLLIST.pm
2016.05.11 19:40:31 1: UPD FHEM/93_DbLog.pm
2016.05.11 19:40:31 1: UPD FHEM/98_HMinfo.pm
2016.05.11 19:40:31 1: UPD FHEM/98_cmdalias.pm
2016.05.11 19:40:31 1: UPD FHEM/HMConfig.pm
2016.05.11 19:40:31 1: UPD FHEM/RESIDENTStk.pm
2016.05.11 19:40:31 1: UPD FHEM/SetExtensions.pm
2016.05.11 19:40:32 1: UPD www/images/fhemSVG/gasoline.svg
Und ab diesem Zeitpunkt wird auch korrekt gepollt (Änderung in der fhem.pl ?).
Was auch immer von wem geändert wurde: vielen Dank!!
Grüße,
Daniel