Hallo zusammen,

der Fehler steckt da drin, aber ich kann ihn nicht finden. Das muss sich jemand 
mit mehr Erfahrung ansehen.
Hier einmal kurz was ich so versucht habe...

Nach dem Einschalten des Debug Mode erstmal eine Fehlermeldung:
        hardware/onewire/onewire_ecmd.c: In function 'parse_cmd_onewire_get':
        hardware/onewire/onewire_ecmd.c:442: error: invalid operands to binary 
>> (have 'ow_temp_t' and 'int')
        hardware/onewire/onewire_ecmd.c:442: error: aggregate value used where 
an integer was expected
        make: *** [hardware/onewire/onewire_ecmd.o] Fehler 1

Also mal die Zeile angesehen...
        debug_printf("temperature: %d.%d\n", HI8(temp), LO8(temp) > 0 ? 5 : 0);

Das ist nicht so schön, daraus habe ich dann mal eine reine Ausgabe gemacht:
        debug_printf("temperature: %d %d\n", temp.val, temp.twodigits);

Nun lässt sich auch alles bauen und der Debug liefert fleissig Werte... Das 
sieht bei eisiger Kälte dann so aus:
        D: called onewire_convert with: ""
        D: OW-ROM: called parse_ow_rom with string ''
        D: OW-ROM: scanf returned -1
        D: converting temperature...
        D: called onewire_get with: "289dfb0402000072"
        D: OW-ROM: called parse_ow_rom with string '289dfb0402000072'
        D: OW-ROM: scanf returned 8
        D: OW-ROM: read rom 28 9d fb 04 02 00 00 72
        D: reading temperature
        D: successfully read scratchpad
        D: temperature: 31806 1

Ich habe dann nochmal einen checkout auf die funktionierende Version 537a902 
gemacht:
        D: converting temperature...
        D: called onewire_get with: "289dfb0402000072"
        D: OW-ROM: called parse_ow_rom with string '289dfb0402000072'
        D: OW-ROM: scanf returned 8
        D: OW-ROM: read rom 28 9d fb 04 02 00 00 72
        D: reading temperature
        D: successfully read scratchpad
        D: temperature: 254.5
        D: temperature1: -384

Temperature1 liefert hier das, was oben der erste wert bei temperature ist. 
Hier negativ, oben völlig falsch. 
Aber hier weiß ich dann nicht mehr weiter... 

Gruß Flo

-----Ursprüngliche Nachricht-----
Von: Ethersex-devel [mailto:ethersex-devel-boun...@list.zerties.org] Im Auftrag 
von Florian Asche
Gesendet: Donnerstag, 4. Dezember 2014 20:41
An: e...@users.sourceforge.net; uhrheber; Ethersex Mailinglist
Betreff: Re: [ethersex-devel] problem mit negativen 1wire temperaturen

Hallo,

ich habe mit git bisect gesucht, und herausgefunden, dass nach dem Commit 
ce9a803 die negativen Temperaturen weder über den HTTP Webserver noch per ECMD 
auslesbar sind.
Stattdessen bekommt man halt sehr hohe Werte.
Ich habe kein Onewire Polling verwendet.

Hinter dem Commit steckt der Pull Request 
https://github.com/ethersex/ethersex/pull/332

Gruß Florian

-----Ursprüngliche Nachricht-----
Von: e...@users.sourceforge.net [mailto:e...@users.sourceforge.net] 
Gesendet: Mittwoch, 3. Dezember 2014 18:03
An: Florian Asche
Cc: uhrheber; Ethersex Mailinglist
Betreff: Re: [ethersex-devel] problem mit negativen 1wire temperaturen

Hallo,


> Habe hier mal die aenderungen vom letzten Winter und vermutlich den pull 
> request, der es kaputt gemacht hat...
> 
> https://github.com/ethersex/ethersex/pull/259
> 
> https://github.com/ethersex/ethersex/pull/332

Vermutungen helfen uns nicht weiter.
Bitte git bisect zur Identifizierung des schädlichen Commits benutzen.

Außerdem wäre die Konfiguration des Originalposters hilfreich.
1W Polling? Was liefert falsche Werte? ECMD, C6 oder Webserver?



_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel



_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an