gelöst: OWDevice: Werte werden nicht regelmäßig gelesen

Begonnen von synaps-o-dan, 30 April 2016, 20:51:22

Vorheriges Thema - Nächstes Thema

synaps-o-dan

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/. 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
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter

fiedel

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
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Dr. Boris Neubert

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

synaps-o-dan

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
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter

Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

synaps-o-dan

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


fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter

Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

synaps-o-dan

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
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter

synaps-o-dan

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
fhem auf Raspberry Pi 3
5 x Set aus jew. 1x FHT80B + 1xFHT8V + 1x FHT80TF-2
HM: 1 x HM-ES-PMSw1-Pl, 2 x HM-LC-Sw1-FM, 2 x HM-LC-Sw1PBU-FM, 3 x HM-Sec-SD, 2 x HM-PB-2-WM55, 2 x HM-Sec-MDIR-2
3 x EM-1000 EM
Onewire: insgesamt 11 Onewire-Sensoren an einem LinkUSB Adapter