OWX MAJOR UPDATE

Begonnen von Prof. Dr. Peter Henning, 29 Oktober 2017, 18:52:48

Vorheriges Thema - Nächstes Thema

phantom

Hi,

ich habe ein DS2482S-100 1-Wire Interface an einen MAX!CUBe angeschlossen. Dieser ist mit der gleichen a-culfw@arm Firmware von Telekatz wie der mapleCUN geflasht, da darin 1-Wire direkt vorgesehen ist.
Als Version gibt der CUBE dies aus:  V 1.26.02 a-culfw Build: private build (unknown) CUBEx4_C3 (F-Band: 868MHz)

Im 00_OWX.pm (Ver. 16437) habe die den CUBE so wie den mapleCUN mit eingefügt; dann wird er erkannt:
193:  }elsif( $defs{$dev} && $defs{$dev}->{VERSION}  && $defs{$dev}->{VERSION} =~ m/CSM|CUNO|CUBE|MapleCUN...(4|5|6|7|C|D|E|F)/ ){

so ist er in FHEM (Update erst heute) definiert:
define CUBEX CUL 192.168.69.145:2323 1536
define define CUBE_1W OWX CUBEX


Es wird auch per autocreate der erste 1-Wire-Sensor DS1820 angelegt und gibt auch die Temperatur aus, aber das Log gibt noch dann folgendes aus bis zum fhem-Crash:
2018.04.16 21:46:40 1: OWX_CCC::Define COC/CUNO device CUBEX defined
2018.04.16 21:47:16 1: OWX_Discover: 1-Wire devices found on bus CUBE_1W (OWX_10_C6A253020800)
2018.04.16 21:47:27 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/11_OWX_CCC.pm line 426.
2018.04.16 21:47:27 1: OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x06 0x10 0x49
2018.04.16 21:47:40 1: OWX_Init called for bus CUBE_1W with interface state opened, now going for detect
2018.04.16 21:47:42 1: OWX_CCC::Detect: 1-Wire bus CUBE_1W interface in CUBEX could not be addressed, return was V 1.26.02 a-culfw Build: private build (unknown) CUBEx4_C3 (F-Band: 868MHz)
2018.04.16 21:52:27 1: OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x06 0x10 0x49
2018.04.16 21:57:27 1: OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x06 0x10 0x49
2018.04.16 22:02:27 1: OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x07 0x10 0x8d
2018.04.16 22:05:55 0: Server shutdown
2018.04.16 22:05:55 1: Shutdown executed
2


Kurz darauf darauf startet der fhem service neu !?   (sieht ähnlich aus wie in der obigen Nachricht an PeMue)

Unklar ist mir auch wie in 11_OWX_CCC (und ggf. anderen OWX_...) der CUBE eingefügt werden kann, um die Meldung "... CUBEX could not be addressed ..." zu vermeiden.

Gruß Phantom

Prof. Dr. Peter Henning

Mir auch, denn ich kann keine Hardware testen, über die ich nicht verfüge.

LG

pah

phantom

Hi pah,

OK, ohne CUBE oder mapleCUN ist das problematisch. Ich habe noch etwas weiter getestet und folgendes herausgefunden:

a) Der FHEM-Crash/Restart nach kurzer Laufzeit passiert nur wenn ein zweiter Test-FHEM den gleichen CUBE auf der gleichen IP-Adresse anspricht.
Dies sollte man natürlich nicht so machen ...  :P

b) Dann habe ich in 11_OWX_CCC.pm mal den CUBE wie den CUNO mit eingefügt:
88c88
<     my $msg = "OWX_CCC::Define COC/CUNO/CUBE device $dev";
---
>     my $msg = "OWX_CCC::Define COC/CUNO device $dev";
101c101
<     $hash->{INTERFACE}    = "COC/CUNO/CUBE";
---
>     $hash->{INTERFACE}    = "COC/CUNO";
163,167d162
<   #-- CUBE
<   }elsif( $ob =~ m/.*CUBE.*/){
<     $interface="CUBE";
<      $ress .= "DS2482 / CUBE detected in $hwdevice->{NAME}";
<     $ret=1;
649,650c644
< =end html_DE
< =cut
---
> =end html_DE
\ Kein Zeilenumbruch am Dateiende.


Damit wäre die Fehlermeldung "... could not be addressed ..." auch erledigt.   (das  =cut  am Ende ist für die Optik beim diff  ;) )

c) Nur eine (vermeintliche?) Fehlermeldung in 11_OWX_CCC.pm wird mir nicht klar :
2018.04.17 12:41:13 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at ./FHEM/11_OWX_CCC.pm line 431.
2018.04.17 12:41:13 1: OWX_CCC::Read from CUNO with error=: 0xff 0xff 0xff
2018.04.17 12:41:15 1: OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x04 0x10 0xd8
2018.04.17 12:41:15 1: OWXTHERM_BinValues:  OWX_10_C6A253020800: no error,  24.5  0x31 0x00 0x4b 0x46 0xff 0xff 0x04 0x10 0xd8
2018.04.17 12:42:02 1: OWX_Init called for bus CUBEX_1W with interface state opened, now going for detect
2018.04.17 12:42:04 1: OWX_CCC::Detect: 1-Wire bus CUBEX_1W interface DS2482 / CUBE detected in CUBEX
2018.04.17 12:42:04 1: OWX_Discover: 1-Wire devices found on bus CUBEX_1W (OWX_10_C6A253020800)
2018.04.17 12:46:14 1: OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x04 0x10 0xd8
2018.04.17 12:46:14 1: OWXTHERM_BinValues:  OWX_10_C6A253020800: no error,  24.5  0x31 0x00 0x4b 0x46 0xff 0xff 0x04 0x10 0xd8


In Zeile 431 wird beim zweiten (um 12:41:15) und allen weiteren Read's eine Fehlermeldung für eigentlich korrekte Daten ausgegeben:
OWX_CCC::Read from CUNO with error=: 0x31 0x00 0x4b 0x46 0xff 0xff 0x05 0x10 0x1c
Dies ist eine korrekte Temperatur vom DS1820, die OWXTHERM auch verarbeitet.

Der erste Read-Error mit "0xff 0xff 0xff" kommt nur einmalig beim Start vor.

Ggf. ließe sich die PERL WARNING und die folgenden Error's bei eigentlich korrekten Daten noch "optimieren". 
Das ganze dürfte auch für den MapleCUN von Interesse sein...

Gruß Phantom

Prof. Dr. Peter Henning

OK, danke für die Zuarbeit.

Maßgeblich ist
ZitatOWXTHERM_BinValues:  OWX_10_C6A253020800: no error,  24.5  0x31 0x00 0x4b 0x46 0xff 0xff 0x04 0x10 0xd8
Die andere Meldung könnte ein Überbleibsel aus einer Testphase sein, die kann man eigentlich komplett herauswerfen.

LG

pah

phantom

Gerne !

wenn mal Zeit da sein sollte, könnten der CUBE, der =cut und die "Fehlermeldung" in die nächste Überarbeitung des Moduls mit einfließen.

Bis dahin werde ich die Meldung auf Loglevel verbose=5 setzen. Die Module laufen, ja nun mit dem MAX!CUBE und 1-Wire.

Gruß Phantom