Ds2423 mit OWCount führt zu Disconnects

Begonnen von Elektron, 25 Januar 2022, 13:37:31

Vorheriges Thema - Nächstes Thema

Elektron

Hallo zusammen,

In einem anderen Beitrag hatte ich schon beschrieben, dass ich seit einiger Zeit Probleme mit meiner 1-Wire Installation habe.
Die letzten Tage habe ich dann mal versucht die Ursache zu finden und habe das glaube ich auch geschafft.

Ursache scheint OWCount zu sein, dass ich zum Auslesen eines DS2423 nutze.
Es handelt sich um einen ,,echten" DS2423 also keinen Microcontroller mit Emulation.

Ich habe zum Test das Inervall zum Auslesen des DS2423 auf 99999 Sekunden gestellt, seitdem laufen die Temperatursensoren durch. Umgekehrt konnte ich mit dem manuellen Lesen der Counter den Disconnect reproduzieren.

Der erste Versuch die Counter zu lesen ist erfolgreich, ich bekomme einen Wert zurück, beim zweiten Versuch geht es schon nicht mehr. Da muss ich erst wieder einen reopen ausführen.

Hat jemand einen Tip? Wie kann ich bei der Fehlersuche weiterhelfen?

Zur Installation:
- ich verwende einige wenige DS1820 (4 Stück)
- ich habe einen ds2423
- ich habe bisher immer einen USB Busmaster von Fuchs verwendet und jetzt zum Testen einen USB Busmaster nach dem Bauvorschlag von PAH gebaut. Verhalten ist identisch.
- die Installation ist lange ohne Probleme gelaufen, ich hatte aber auch mein FHEM und auch das Betriebssystem auf einem Uralten Stand belassen. Nach dem Update fing das an. Leider habe ich so viel geändert, dass ich nicht sagen kann ab wann das Problem auftritt...

Wenn ich etwas verpasst habe und es eine bessere Alternative als OWCount gibt, bitte nicht böse sein. Das System lief lange stabil, da habe ich mich da nicht drum gekümmert...

Vielen Dank und Grüße Michael

Prof. Dr. Peter Henning

Ich kann das weder nachvollziehen, noch bestätigen. Ich betreibe an 5 1-Wire-Bussen etliche DS2423 ebenso wie die Emulatoren - no Problem.

Bitte mal verbose hochsetzen und den Bus Traffic ansehen.

LG

pah

Elektron

Hallo PAH,

Ich habe das mal Nachgestellt und für das OWCOUNT das Verbose auf 5 gestellt.
Die folgende Meldung stach mir dabei ins Auge...

2022.01.25 17:24:57 1: PERL WARNING: Use of uninitialized value $dval in concatenation (.) or string at ./FHEM/21_OWCOUNT.pm line 571.
2022.01.25 17:24:57 5: OWCOUNT: midnight extrapolation Zaehler1 channel A fails because of zero time delta. dval=
2022.01.25 17:24:57 1: PERL WARNING: Use of uninitialized value $dval2 in sprintf at ./FHEM/21_OWCOUNT.pm line 580.
2022.01.25 17:24:57 1: PERL WARNING: Use of uninitialized value $dval2 in concatenation (.) or string at ./FHEM/21_OWCOUNT.pm line 582.
2022.01.25 17:24:57 5: OWCOUNT: measured Zaehler1 value 4 (midnight 0) => extrapolated midnight



Ein paar Zeilen weiter unten:

2022.01.25 17:24:57 1: PERL WARNING: Use of uninitialized value $dval in sprintf at ./FHEM/21_OWCOUNT.pm line 586.
2022.01.25 17:24:57 5: OWCOUNT: midnight extrapolation Zaehler1 channel Gaszaehler fails because of zero time delta. dval=
2022.01.25 17:24:57 1: PERL WARNING: Use of uninitialized value $dval in addition (+) at ./FHEM/21_OWCOUNT.pm line 574.
2022.01.25 17:24:57 5: OWCOUNT: measured Zaehler1 value 32312.46 (midnight 0) => extrapolated midnight 0
2022.01.25 17:24:57 1: OWX_SER::Query DS9097: Sending out0xe3 0xc5
2022.01.25 17:24:57 5: DevIo_SimpleWrite DS9097: e3c5
2022.01.25 17:24:57 4: OWX_SER::Query DS9097: 1 of 1 bytes in first attempt and state opened
2022.01.25 17:24:57 1: OWX_SER::Complex sending 0x55 0x1d 0x2f 0x4a 0x0f 0x00 0x00 0x00 0x9f 0x0f 0xe0 0x01 0x32 0x30 0x32 0x32 0x2d 0x30 0x31 0x2d 0x32 0x35 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x20 0x20 0x20 0x30 0x2e 0x30 0x30 0x20 0x20 0x20 0x20 0x20
2022.01.25 17:24:57 1: OWX_SER::Query DS9097: Sending out0xe1 0x55 0x1d 0x2f 0x4a 0x0f 0x00 0x00 0x00 0x9f 0x0f 0xe0 0x01 0x32 0x30 0x32 0x32 0x2d 0x30 0x31 0x2d 0x32 0x35 0x20 0x6d 0x69 0x64 0x6e 0x69 0x67 0x68 0x74 0x20 0x20 0x20 0x20 0x30 0x2e 0x30 0x30 0x20 0x20 0x20 0x20 0x20 2022.01.25 17:24:57 5: DevIo_SimpleWrite DS9097: e1551d2f4a0f0000009f0fe001323032322d30312d3235206d69646e6967687420202020302e30302020202020
2022.01.25 17:24:57 1: /dev/ttyUSB2 disconnected, waiting to reappear (DS9097)
2022.01.25 17:24:57 5: OWX_SER::Query DS9097: 30 of 44 bytes in attempt 3 and state opened
2022.01.25 17:24:57 1: OWX_SER::Query DS9097:  30 of 44 bytes in last attempt and state opened, this is an unrecoverable error
2022.01.25 17:24:57 1: OWX_SER::Complex receiving
2022.01.25 17:24:57 1: OWX_Complex called while interface DS9097 disconnected
2022.01.25 17:24:57 5: OWCOUNT: No monthly summary possible, attribute LogM is missing for device Zaehler1
2022.01.25 17:24:57 5: OWCOUNT: No yearly summary possible, attribute LogY is missing for device Zaehler1
2022.01.25 17:25:19 1: OWX_Complex called while interface DS9097 disconnected
2022.01.25 17:25:23 1: OWX_Complex called while interface DS9097 disconnected
2022.01.25 17:25:32 1: OWX_Complex called while interface DS9097 disconnected

Das Interface heißt bei mir (traditionell) DS9097. Aktuell verwende ich aber wie in Deiner Anleitung einen ds2480b.

Vielen Dank und Grüße Michael

Prof. Dr. Peter Henning

Das obige sind nur Warnungen, irrelevant.

Der Fehler liegt hier

Zitat2022.01.25 17:24:57 5: OWX_SER::Query DS9097: 30 of 44 bytes in attempt 3 and state opened
2022.01.25 17:24:57 1: OWX_SER::Query DS9097:  30 of 44 bytes in last attempt and state opened, this is an unrecoverable error

Es werden nur 30 statt 44 Bytes empfangen. Wie ist der Wert des Attributs "asychronous" ?

LG

pah

Elektron

Hallo PAH,

Asynchronous steht auf 0

Vielen Dank und Grüße Michael

Elektron

Hallo pah,

Nach Deinem ,,Schubser" in die richtige Richtung habe ich Asynchronous mal auf 1 gestellt und seit dem scheint es zu funktionieren.
Wenn ich mit meiner Annahme falsch liege, bitte korrigieren.

Vielen Dank und Grüße Michael

Prof. Dr. Peter Henning

Es sieht so aus, als ob auf dem Bus irgendetwas dazwischenfunkt. Kann es sein, dass die Bustopologie nicht ganz korrekt ist?

LG

pah