Notdürftig gelöst : Problem mit OWCount nach FHEM Update

Begonnen von rasti, 24 Januar 2024, 23:44:45

Vorheriges Thema - Nächstes Thema

rasti

Hallo,

ich update gerade mein FHEM und meine Hardware.
Pi1 mit FHEM aus 2016 auf Pi5 mit aktuellem FHEM

Da sind u.a. jede Menge Onewiretemp.Sensoren verbaut die funktionieren auch alle nach dem Upgrade.
Leider lässt sich ein Onewire-.Counter (habe nur einen, ist ein Attiny-Emulator) nicht mehr mit dem neuen FHEM auslesen.
Bislang auf dem alten Pi1 mit FHEM aus 2016 geht das.

Untenstehend habe ich die Fehlermeldungen in FHEM, die Definition aus der fhem.cfg und einen log-Auszug mal reinkopiert.

Kann ja jemand helfen ?

Viele grüße

Ralf


define Warm_Wasseruhr_Gesamt OWCOUNT DS2423 A2D9840000A0
attr Warm_Wasseruhr_Gesamt AMode daily
attr Warm_Wasseruhr_Gesamt ARate 1
attr Warm_Wasseruhr_Gesamt BMode daily
attr Warm_Wasseruhr_Gesamt BRate 1
attr Warm_Wasseruhr_Gesamt IODev OneWireAdapter
attr Warm_Wasseruhr_Gesamt alias Warm_Wasser_Zähler
attr Warm_Wasseruhr_Gesamt event-min-interval .*:180
attr Warm_Wasseruhr_Gesamt event-on-change-reading A:1,Tageszaehler_Warm_Wasseruhr_Gesamt:1
attr Warm_Wasseruhr_Gesamt interval 60
attr Warm_Wasseruhr_Gesamt model DS2423
attr Warm_Wasseruhr_Gesamt room 6_Warmwasser
attr Warm_Wasseruhr_Gesamt stateFormat {sprintf("Day: %.0f Liter", (ReadingsNum($name,"Tageszaehler_Warm_Wasseruhr_Gesamt",0) )).sprintf(" / Total: %.0f Liter", (ReadingsNum($name,"A",0) ))}
attr Warm_Wasseruhr_Gesamt userReadings Tageszaehler_Warm_Wasseruhr_Gesamt { ReadingsNum("Warm_Wasseruhr_Gesamt","A",0)-ReadingsNum("TagesNull_Warm_Wasseruhr_Gesamt","state",0);;}
#attr Warm_Wasseruhr_Gesamt stateFormat {sprintf("%.0f",ReadingsVal("Warm_Wasseruhr_Gesamt","A",0))." Liter"}

OWCOUNT: get Warm_Wasseruhr_Gesamt counters failed, reason: OWCOUNT: Could not get values from device Warm_Wasseruhr_Gesamt, reason: 1D.A2D9840000A0.24 not accessible in reading page 14OWCOUNT: Could not get values from device Warm_Wasseruhr_Gesamt, reason: 1D.A2D9840000A0.24 not accessible in reading page 1544

Warm_Wasseruhr_Gesamt.id => 1D.A2D9840000A0.24
Warm_Wasseruhr_Gesamt.version => 7.23

024.01.24 23:30:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/11_OWX_SER.pm line 501.
2024.01.24 23:30:34 1: OWX_SER::Query OneWireAdapter:  32 of 54 bytes in last attempt and state opened, this is an unrecoverable error
2024.01.24 23:30:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:30:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:30:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:30:36 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:30:36 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:20 3: CUL_HM start Queues
2024.01.24 23:31:24 1: PERL WARNING: Use of uninitialized value $a[2] in int at ./FHEM/21_OWCOUNT.pm line 760.
2024.01.24 23:31:29 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:34 1: OWX_Init called for bus OneWireAdapter with interface state opened, now going for detect
2024.01.24 23:31:34 1: OWX_SER::Detect 1-Wire bus OneWireAdapter: interface master DS2480 re-detected
2024.01.24 23:31:36 1: OWX_Discover: 1-Wire devices found on bus OneWireAdapter (Temperatur_Solar_Kollektor_Ruecklauf,Temperatur_Puffer_unten,Temperatur_Warmwasser_Mitte,Temperatur_Warmwasser_unten,Temperatur_Keller,Temperatur_Warmwasser_oben,Temperatur_Puffer_Mitte,Temperatur_Puffer_oben,Temperatur_Solar_Kollektor_Vorlauf,Warm_Wasseruhr_Gesamt)
2024.01.24 23:31:36 1: /dev/ttyUSB0 reappeared (OneWireAdapter)
2024.01.24 23:31:36 3: Fronius_WR: Read callback: Error: read from http://192.168.178.18:80 timed out
2024.01.24 23:31:37 1: PERL WARNING: Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^Mess_Steckdose_3.*:.*:.{ <-- HERE .*}$/ at ./FHEM/98_expandJSON.pm line 143.
2024.01.24 23:31:39 1: /dev/ttyUSB0 disconnected, waiting to reappear (OneWireAdapter)
2024.01.24 23:31:39 1: OWX_SER::Query OneWireAdapter:  32 of 54 bytes in last attempt and state opened, this is an unrecoverable error
2024.01.24 23:31:39 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:39 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:48 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:31:54 3: HMLAN1: Unknown code A0C55865A61879700000048DD2E::-74:HMLAN1, help me!
2024.01.24 23:32:04 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:32:14 3: HMLAN1: Unknown code A0C55847061879700000000DD2E::-74:HMLAN1, help me!
2024.01.24 23:32:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:32:34 1: OWX_Complex called while interface OneWireAdapter disconnected
2024.01.24 23:32:39 1: OWX_Init called for bus OneWireAdapter with interface state opened, now going for detect
2024.01.24 23:32:39 1: OWX_SER::Detect 1-Wire bus OneWireAdapter: interface master DS2480 re-detected
2024.01.24 23:32:41 1: OWX_Discover: 1-Wire devices found on bus OneWireAdapter (Temperatur_Solar_Kollektor_Ruecklauf,Temperatur_Puffer_unten,Temperatur_Warmwasser_Mitte,Temperatur_Warmwasser_unten,Temperatur_Keller,Temperatur_Warmwasser_oben,Temperatur_Puffer_Mitte,Temperatur_Puffer_oben,Temperatur_Solar_Kollektor_Vorlauf,Warm_Wasseruhr_Gesamt)
2024.01.24 23:32:41 1: /dev/ttyUSB0 reappeared (OneWireAdapter)

rasti

#1
ich habe nun mal probeweise meinen Selbstbau-COunter durch einen 1-Wire.Counter von Esera ersetzt. Selbes Ergebnis, ich kann nichts auslesen.
Habe auch mal versucht, noch einen 3.9k Widerstand zwischen Data und 5V zu hängen und den Counter nah beim Master/USB/Pi anzuklemmen.....ohne Erfolg
Auch ein Ändern des attibutes Model DS2423enew DS2423eold DS2423 bringt nix

getcounters liefert mir :
OWCOUNT: get Warm_Wasseruhr_Gesamt counters failed, reason: OWCOUNT: Could not get values from device Warm_Wasseruhr_Gesamt, reason: 1D.161810000000.50 has returned invalid data of length 2OWCOUNT: Could not get values from device Warm_Wasseruhr_Gesamt, reason: 1D.161810000000.50 has returned invalid data of length 2

OK
Kann hier keiner was zu sagen ?

rasti

ich habs aufgegeben und im neuen FHEM meine OWX Module aus 2016 eingespielt.
Damit geht alles, auch der Wasserzähler zählt auch wieder.

Prof. Dr. Peter Henning

Hm, "sagen" könnte ich dazu viel - aber nicht helfen. Ich habe keinen Esera-Counter, an dem ich das testen könnte.
Vlt. einfach mal den Loglevel hochsetzen.

LG

pah

rasti

Zitat von: Prof. Dr. Peter Henning am 28 Januar 2024, 12:37:11Hm, "sagen" könnte ich dazu viel - aber nicht helfen. Ich habe keinen Esera-Counter, an dem ich das testen könnte.
Vlt. einfach mal den Loglevel hochsetzen.

ich habe zwei Counter hier, einmal einen Selbstbau den ich mal bei Kleinanzeigen oder hier übers Forum gekauft hab und eben diesen Esera.
Beide machen dasselbe (gehen mit den alten Modulen und nicht mit den neuen).

Ich lass es jetzt einfach so, hat mich einen guten halben Tag gekostet nur um rauszufinden, dass (hardware- und verkabelungstechnisch) gar nix defekt ist. Ich muss halt bei Updates nun aufpassen, dass ich die OWX Module nicht update.  Ähnliches Problem beim Update habe ich übrigens bei Modbus, auch da habe ich die alten Module eingespielt.

Danke dir trotzdem
Viele Grüße
Ralf

Prof. Dr. Peter Henning

Wundert mich, weil ich OWCOUNT seit Jahren mit selbst gebauten Modulen verwende. Ibs. auch mit ATTiny-Emulatoren.

Thema Update: Einfach excludeFromUpdate im global-Device setzen.

LG

pah

dieter114

#6
Hallo Zusammen,

ich habe das gleiche Problem wie Ralf.
Versuche schon seit einiger Zeit auf OWX von OWFS/OWServer umzustellen.
Habe dazu zum testen einen eigenen PI eingesetzt.
Alle DS2401 und DS18B20 haben sich automatisch angemeldet und funtionieren einwandfrei.
Eigentlich eine problemlose Integration und verm. auch stabiler Betrieb.
Allerdings der DS2423 von Esera will partout nicht!
Ich habe ähnliche OWX-Complex Fehlermeldungen und CRC Fehler von dem Gerät.
Zur Hardware: Das Teil ist über 20cm Kabel direkt nebem dem PI montiert.
Eigentlich sollten dabei keine Störungen auftreten.

Grüße Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Prof. Dr. Peter Henning

1. Frage: läuft OWX hier im asynchronen Modus, d.h., was ist der Wert des entsprechenden Attributes?
2. Kann ich bitte einen Log-Auszug bekommen, idealerweise mit verbose=5

LG

pah

dieter114

#8
Hallo pah,

entschuldigung für die späte Antwort - war im Urlaub.

Der OWX läuft nicht im asynchronen Modus, "Default" Einstellung.
2024.02.07 15:02:13 1: OWX_SER::Search reset failed on bus OW_USB
2024.02.07 15:02:47 1: OWX_SER::Query OW_USB:  0 of 1 bytes in last attempt and state opened, this is an unrecoverable error
2024.02.07 15:02:47 1: OWX_SER::Search reset failed on bus OW_USB
2024.02.07 15:02:47 1: OWX_Discover: Device OWX_1D_881710000000 of type OWCOUNT is unused, consider deletion !
2024.02.07 15:02:47 1: OWX_Discover: 1-Wire devices found on bus OW_USB ()
2024.02.07 15:03:01 1: OWX_SER::Query OW_USB:  0 of 1 bytes in last attempt and state opened, this is an unrecoverable error
2024.02.07 15:03:01 1: OWX_SER::Query OW_USB:  0 of 54 bytes in last attempt and state opened, this is an unrecoverable error

Auszug aus Log, diese Meldung erscheint regelmäßig.

Definition OWX:
defmod OW_USB OWX /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AI029LGK-if00-port0@38400 0001
attr OW_USB dokick 1
attr OW_USB interval 60
attr OW_USB room OWX

setstate OW_USB opened
setstate OW_USB 2024-02-07 15:13:59 state opened

Definition automatisch erkannter Zähler:
defmod OWX_1D_881710000000 OWCOUNT DS2423 881710000000
attr OWX_1D_881710000000 IODev OW_USB
attr OWX_1D_881710000000 interval 30
attr OWX_1D_881710000000 model DS2423eold
attr OWX_1D_881710000000 room OWX

setstate OWX_1D_881710000000 initialized
setstate OWX_1D_881710000000 2024-02-07 16:27:28 A 0
setstate OWX_1D_881710000000 2024-02-07 16:27:28 A_rate 0
setstate OWX_1D_881710000000 2024-02-07 16:27:28 B 0
setstate OWX_1D_881710000000 2024-02-07 16:27:28 B_rate 0
setstate OWX_1D_881710000000 2024-02-07 15:12:45 IODev OW_USB
setstate OWX_1D_881710000000 2024-02-07 15:12:55 state initialized

Das model DS2423eold ist von mir zu Testzwecken gesetzt.
Edit:
Alle Devices gelöscht, Neustart.
OWX eingerichtet nun kommen ersmal keine Devices (wie lange dauert das eigentlich?)
Log:
2024.02.07 18:18:28 1: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AI029LGK-if00-port0 reappeared (OW_USB)
2024.02.07 18:21:47 1: OWX_SER::Search CRC failed on bus OW_USB
2024.02.07 18:21:47 1: OWX_Discover: 1-Wire devices found on bus OW_USB ()
2024.02.07 18:28:53 1: OWX_SER::Query OW_USB: Sending out0xe3 0xc5
2024.02.07 18:28:53 5: DevIo_SimpleWrite OW_USB: e3c5
2024.02.07 18:28:53 4: OWX_SER::Query OW_USB: 1 of 1 bytes in first attempt and state opened
2024.02.07 18:28:53 1: OWX_SER::Query OW_USB: Sending out0xe1 0xf0 0xe3 0xb5
2024.02.07 18:28:53 5: DevIo_SimpleWrite OW_USB: e1f0e3b5
2024.02.07 18:28:53 4: OWX_SER::Query OW_USB: 1 of 1 bytes in first attempt and state opened
2024.02.07 18:28:53 1: OWX_SER::Query OW_USB: Sending out0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2024.02.07 18:28:53 5: DevIo_SimpleWrite OW_USB: e100000000000000000000000000000000e3a5
2024.02.07 18:28:54 4: OWX_SER::Query OW_USB: 16 of 16 bytes in first attempt and state opened
2024.02.07 18:28:54 1: OWX_SER::Search CRC failed on bus OW_USB
2024.02.07 18:28:54 1: OWX_Discover: 1-Wire devices found on bus OW_USB ()

Grüße Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

dieter114

#9
So, hier die Ergänzung.
Das Teil scheint doch zu laufen, habe folgende Änderungen gemacht:
attr OW_USB expert 1_detail
attr OW_USB interval 60

und dann kam automatisch:
defmod OWX_1D_881710000000 OWCOUNT DS2423 881710000000
attr OWX_1D_881710000000 IODev OW_USB
attr OWX_1D_881710000000 model DS2423
attr OWX_1D_881710000000 room OWX

setstate OWX_1D_881710000000 A: 40911460.00  cts A_r: 4296.00  cts/h B: 11681081.00  cts B_r:  0.00  cts/h
setstate OWX_1D_881710000000 2024-02-07 18:54:33 A 40911460
setstate OWX_1D_881710000000 2024-02-07 18:54:33 A_rate 4296
setstate OWX_1D_881710000000 2024-02-07 18:54:33 B 11681081
setstate OWX_1D_881710000000 2024-02-07 18:54:33 B_rate 0
setstate OWX_1D_881710000000 2024-02-07 18:34:00 IODev OW_USB
setstate OWX_1D_881710000000 2024-02-07 18:54:33 memory $��␁B{�

Readings:
OWX_1D_881710000000
   
A: 40911460.00 cts A_r: 4296.00 cts/h B: 11681081.00 cts B_r: 0.00 cts/h
und das ist richtig.
Allerdings antwortet das Teil nun nicht mehr.
Wenn ich Get Counters mache kommt:
OWCOUNT: get OWX_1D_881710000000 counters failed, reason: OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9d has returned invalid data of length 2OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9d has returned invalid data of length 2
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Prof. Dr. Peter Henning

Ich habe jetzt mal so einen ersten Verdacht. So wie es aussieht, geht der Counter in einen undefinierten Zustand, sobald man den Speicher abfragt. Vlt. mal testweise das Attribut "nomemory" auf 1 setzen.

LG

pah

dieter114

#11
Hallo pah,

war noch ne Woche unterwegs...
Also: Attribut nomemory=1 gesetzt,Restart, DS 2423 einmal ausgelesen, Werte richtig aber das war es.
Kein erneutes Auslesen. Bei Get OWX___Conters kommt
OWCOUNT: get OWX_1D_881710000000 counters failed, reason: OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9D not accessible in reading page 14OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9D not accessible in reading page 15
Attr. nomemory=0 gesetzt, Antwort bei Get OWX___Conters
OWCOUNT: get OWX_1D_881710000000 counters failed, reason: OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9D has returned invalid data of length 2OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9D has returned invalid data of length 2
Schöne Grüße aus Niedersachen
Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Prof. Dr. Peter Henning

Kann ich nicht glauben. Bei nomemory=1 wird die page 15 gar nicht aufgerufen.

LG

pah

dieter114

#13
Ist aber so.
Hier das Ergebnis. Auslesen der Werte ist nur einmalig erfolgt.
Danach nix mehr....
Internals:
   DEF        DS2423 881710000000
   ERRCOUNT   0
   FUUID      65c3bf08-f33f-b48a-de3b-e556f23ad3fc3193
   INTERVAL   60
   IODev      OW_USB
   NAME       OWX_1D_881710000000
   NOTIFYDEV  global
   NR         90
   NTFY_ORDER 50-OWX_1D_881710000000
   OW_FAMILY  1D
   OW_ID      881710000000
   PRESENT    0
   ROM_ID     1D.881710000000.9D
   STATE      A: 41028865.00  cts A_r:  0.00  cts/h B: 11725680.00  cts B_r:  0.00  cts/h
   TYPE       OWCOUNT
   eventCount 2
   DATA:
     memory     0
   READINGS:
     2024-02-18 17:12:50   A               41028865
     2024-02-18 17:12:50   A_rate          0
     2024-02-18 17:12:50   B               11725680
     2024-02-18 17:12:50   B_rate          0
     2024-02-18 17:12:39   IODev           OW_USB
     2024-02-18 17:12:50   memory          0
     2024-02-18 17:12:50   state           A: 41028865.00  cts A_r:  0.00  cts/h B: 11725680.00  cts B_r:  0.00  cts/h
   owg_midnight:
     0
     0
   owg_str:
    
    
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     undef
     0
     0
   owg_val:
     41028931
     11725680
Attributes:
   IODev      OW_USB
   interval   60
   model      DS2423
   room       OWX
OWCOUNT: get OWX_1D_881710000000 counters failed, reason: OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9D has returned invalid data of length 2OWCOUNT: Could not get values from device OWX_1D_881710000000, reason: 1D.881710000000.9D has returned invalid data of length 2
Grüße Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Prof. Dr. Peter Henning

Bitte auf asynchronen Modus umsztellen, und model auf eold umstellen und nomemory=1

LG

pah

dieter114

#15
Hallo pah,

alles so gemacht - nun läuft das Teil!  :)
Aber warum verstehe ich nicht so ganz.

Was passiert eigentlich im asynchronen Modus auf dem Bus entgegen dem synchronen Modus?
Ich habe das Intervall auf 60 sek eingestellt, und es wird auch im asynchronen Modus immer exakt nach 60 Sek aktualisiert.
Ist sogar zeitlich genauer als mit Owfs/Owserver.
Ich berechne mit einem Differential die augenblickliche Stromleistung (Zähler) oder Gasleistung der Therme.
Wenn das so weiterläuft stelle ich meine ganze Anlage auf das OWX um.

Herzlichen Dank für die schnelle Hilfe.

Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

Prof. Dr. Peter Henning

Im synchronen Modus wartet FHEM auf die Antwort. Offenbar ist das Timing von dem Teil ganz anders als beim Original.
Im asynchronen Modus hingegen arbeitet FHEM brav weiter, und wird sich erst beim Eintreffen einer Antwort wieder mit den Daten befassen. Das erfordert natürlich eine ausgefeilte Verwaltung der Warteschlange für den Bus.

LG

pah

dieter114

Herzlichen Dank,

hab`s jetzt verstanden.

LG
Wolfdieter
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem