OWX asynchron überarbeitet

Begonnen von ntruchsess, 30 Juni 2013, 00:55:59

Vorheriges Thema - Nächstes Thema

ntruchsess

hmm irgendwie schlägt hier die 1-Wire-Search immer wieder mal fehl:
2014.01.24 23:12:36.008 3: OWX_SER::Search_2480 2nd return has wrong parameter with length = 13
2014.01.24 23:12:39.320 3: OWX_SER::Search_2480 2nd return has wrong parameter with length = 5
2014.01.24 23:12:41.889 3: OWX_SER::Search_2480 2nd return has wrong parameter with length = 15
2014.01.24 23:17:43.741 3: OWX_SER::Search_2480 2nd return has wrong parameter with length = 10
2014.01.24 23:17:50.366 3: OWX_SER::Search_2480 2nd return has wrong parameter with length = 14
2014.01.24 23:33:19.669 3: OWX_SER::Search_2480 2nd return has wrong parameter with length = 15

Wenn zu viele Fehler auftreten stellt sich das Interval der Devices auf quasi unendlich, ab da gibt's dann keine neuen Werte mehr. Scheint aber nur mit dem DS2480 Busmaster zu passieren, bei dem ist das Timing mit dem neuen OWX aber auch kritischer, weil zwischen derm Bus-Reset und der Ausführung eines Queries Rechenzeit abgegeben wird und damit die Zeitspanne zwischen Reset und Query nicht mehr vom Modul selbst, sondern davon, was sonst noch im FHEM läuft bestimmt wird. Vieleicht sollte ich die Abfolge Reset->Command doch besser synchron laufen lassen und nur zwischen vollständigen Kommandos asynchron rausgehen.

wenn Du das fhem von der Kommandozeile startest, kannst Du die Konsole einfach verbunden lassen, damit man die Ausgaben des Perl-prozesses sehen kann? (geht z.B. auch mit dem 'screen'-kommando, aber eventuell loggt das auf dem Pi auch ins syslog?)

- Norbert
while (!asleep()) {sheep++};

Joachim

Moin Norbert,

hab da mal ein Log für Dich.
Irgendwie verschluckt er sich:
2014.01.25 21:32:25.010 1: Including fhem.cfg
2014.01.25 21:32:25.059 2: Perfmon: ready to watch out for delays greater than one second
2014.01.25 21:32:25.069 3: telnetPort: port 7072 opened
2014.01.25 21:32:25.120 3: WEB: port 8083 opened
2014.01.25 21:32:25.143 2: eventTypes: loaded 41 events from ./log/eventTypes.txt
2014.01.25 21:32:26.277 3: OWTHERM: Device OWX_28_ED3788040000 defined.
2014.01.25 21:32:26.283 3: OWID: Device OWX_09_4D628A070000 defined.
2014.01.25 21:32:26.284 1: Including ./log/fhem.save
2014.01.25 21:32:26.286 0: Server started with 8 defined entities (version $Id: fhem.pl 4709 2014-01-21 18:00:07Z rudolfkoenig $, os linux, user joachim, pid 8691)
2014.01.25 21:32:27.000 3: Opening DS9097U_4D628A07 device /dev/ttyUSB0
2014.01.25 21:32:27.009 3: Setting DS9097U_4D628A07 baudrate to 9600
2014.01.25 21:32:27.010 3: DS9097U_4D628A07 device opened
2014.01.25 21:32:27.010 1: OWX_SER: Serial device /dev/ttyUSB0@9600 defined
2014.01.25 21:32:27.639 3: OWX_SER::Query_2480 Sending out        0xc1
2014.01.25 21:32:28.639 3: OWX_SER::Query_2480 Sending out        0x17 0x45 0x5b 0x0f 0x91
2014.01.25 21:32:28.647 1: Perfmon: possible freeze starting at 21:32:27, delay is 1.647
2014.01.25 21:32:36.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:32:36.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:32:36.007 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:32:36.022 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:32:37.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:32:37.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:32:37.007 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:32:37.031 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0x50 0x01 0x4b 0x46 0x7f 0xff 0x10 0x10 0x49
2014.01.25 21:32:38.648 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:32:38.699 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:32:38.750 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:32:38.801 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:32:38.851 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:32:38.902 3: OWX_SER::Query_2480 Sending out        0xe1 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:32:38.953 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:32:39.003 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:32:39.054 3: OWX_SER::Query_2480 Sending out        0xe1 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:32:39.106 3: OWX: Unknown family code '09' found
2014.01.25 21:32:39.106 2: OWX: 1-Wire devices found on bus DS9097U_4D628A07 (OWX_28_ED3788040000,OWX_09_4D628A070000)
2014.01.25 21:33:31.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:33:31.052 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:33:31.102 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:33:35.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:33:35.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:33:35.008 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:33:35.022 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:33:36.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:33:36.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:33:36.007 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:33:36.031 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0x50 0x01 0x4b 0x46 0x7f 0xff 0x10 0x10 0x49
2014.01.25 21:34:30.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:34:30.052 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:34:30.103 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:34:34.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:34:34.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:34:34.008 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:34:34.022 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:34:35.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:34:35.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:34:35.008 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:34:35.031 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0x50 0x01 0x4b 0x46 0x7f 0xff 0x10 0x10 0x49
2014.01.25 21:35:29.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:35:29.052 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:35:29.103 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:35:33.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:35:33.008 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:35:33.008 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:35:33.022 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:35:34.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:35:34.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:35:34.008 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:35:34.031 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0x50 0x01 0x4b 0x46 0x7f 0xff 0x10 0x10 0x49
2014.01.25 21:36:28.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:36:28.052 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:36:28.102 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:36:32.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:36:32.007 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:36:32.007 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:36:32.022 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0x44
2014.01.25 21:36:33.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:36:33.008 3: OWX_SER::Complex: Sending out 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:36:33.008 3: OWX_SER::Query_2480 Sending out        0xe1 0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff
2014.01.25 21:36:33.031 3: OWX_SER::Complex: Receiving   0x55 0x28 0xed 0x37 0x88 0x04 0x00 0x00 0xf3 0xbe 0x51 0x01 0x4b 0x46 0x7f 0xff 0x0f 0x10 0xfe
2014.01.25 21:37:27.001 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:37:27.052 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:37:27.103 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:28.648 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:37:28.654 3: OWX_SER::Query_2480 Sending out        0xe1 0xf0 0xe3 0xb5
2014.01.25 21:37:28.659 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.000 3: OWX_SER::Query_2480 Sending out        0xe3 0xc5
2014.01.25 21:37:29.005 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.010 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.032 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.036 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.058 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.062 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.084 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.088 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.110 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.114 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.136 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.140 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.162 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.166 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.188 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.192 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.214 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.218 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.240 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5
2014.01.25 21:37:29.244 3: OWX_SER::Query_2480 Sending out        0xe1 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xe3 0xa5
2014.01.25 21:37:29.266 3: OWX_SER::Query_2480 Sending out        0xe1 0xec 0xe3 0xb5

der untere Teil geht dann ewig so weiter.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

ntruchsess

Danke Dir Joachim, da habe ich jetzt erst mal was zu lesen :-) Mit verbose 5 sieht man ja einiges...
Ich komm aber erst morgen abend dazu wieder am code zu arbeiten.

- Gruß,

Norbert
while (!asleep()) {sheep++};

Joachim

FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

ntruchsess

#79
So ich bin einen Riesenschritt weiter. Ich habe alles asynchrone in ein neues Modul OWX_ASYNC gepackt, dieses hat keine Konflikte mit dem synchronen OWX mehr. Man kann zwischen synchronem und asynchronem OWX einfach wählen, indem man das passende Modul im define auswählt. Bisher wird ausschließlich Arduino mit Firmata (FRM) unterstützt.

Pah war ja so nett und hat die Clientmodule nach bestem Wissen und Gewissen so refactored, dass sie sowohl mit synchronem, als auch asynchronem OWX laufen. Ich hab heute abend einige kleinere Fehler im Zusammenspiel mit der asynchronen Schnittstelle ausgebessert. Unter anderem erkennen die Module selber, mit welchem OWX-modus sie laufen sollen:

folgende Clientmodule laufen bei mir (asynchron mit FRM) so wie sie aktuell im SVN-trunk liegen:
21_OWAD.pm
21_OWMULTI.pm
21_OWSWITCH.pm
21_OWTHERM.pm
21_OWID.pm

soweit gefixed, aber noch nicht in den SVN-trunk committed, weil ich nur einen emulierten DS2423 (Dougie-counter) habe und damit die midnight-werte nicht testen kann:
21_OWCOUNT.pm
Da wäre ich froh, wenn das mal jemand der einen echten DS2423 hat, testen könnte. Wer kein FRM benutzt kann das auch einfach mit dem synchronen OWX tun, geht bei der Verarbeitung der 1-Wire-Daten intern auf die gleiche Methode. Mit FRM sollte es auch asynchron gehen.

Edit 01.04,15:30 Uhr:
Vorabversion von 21_OWLCD.pm liegt auch schon dort. Testen wie immer auf eigene Gefahr ;-)

Zur Installation:

Einfach statt 'define owx OWX' ein 'define owx OWX_ASYNC' in die fhem.cfg eintragen, der Rest sollte sich selber finden. Wer OWCOUNT drin hat, bitte noch unbedingt die o.g. 21_OWCOUNT.pm von Github herunterladen (die im SVN bleibt mit dem OWX_ASYNC gnadenlos hängen).

Gruß,

Norbert
while (!asleep()) {sheep++};

larsberghahn

Hallo,
bei FRM über Ethernet steht nach einem reradcfg immer:
Init Failed: Arduino_OW_Temp2, Arduino2 is not connected

Das ist auch so wenn ich allein OWX an dem Arduino definiere.
Wenn ich zusätzlich FRM_OUTs definiere und dort den Status verändere gehen sie auch auf "not connected"
Der Status des FRM Device ist aber stehts Initialized

wenn ich FHEM neu starte verbindet sich der Arduino.
Beim OWX_ASYNC DS18B20 steht die Temperatur zuerst bei 85Grad, wird danach aber richtig eingelesen.

Ich lasse das erstmal über Nacht so laufen, mal gucken was passiert...

MFG Lars

ntruchsess

Zitat von: lars am 01 April 2014, 22:19:49
bei FRM über Ethernet steht nach einem reradcfg immer:
Init Failed: Arduino_OW_Temp2, Arduino2 is not connected

danke für die Rückmeldung, Rereadcfg für NetworkFirmata ist gefixed. Hatte ich wohl nur mit Firmata über USB getestet.

Gruß,

Norbert
while (!asleep()) {sheep++};

ntruchsess

Zitat von: lars am 01 April 2014, 22:19:49
Beim OWX_ASYNC DS18B20 steht die Temperatur zuerst bei 85Grad, wird danach aber richtig eingelesen.

Danke auch für diesen Hinweis, ich bin dem mal nachgegangen und hab einen subtilen Bug im asynchronen Delay zwischen Temperaturwandlung und Auslesen gefunden und behoben (und ins SVN committet). Mit dem Fehler wurde immer der Temperaturwert von einer Wandlung voher ausgelesen (das fällt nur beim allerersten Auslesen oder bei einer schnellen Temperaturänderung auf...)

Gruß,

Norbert
while (!asleep()) {sheep++};

fhem-challenge

#83
OW TempSensoren laufen bei mir nun gut.

Siehe dazu meine Probleme vorher (Timing): http://forum.fhem.de/index.php/topic,21770.0.html

Ich habe gestern , neben meinen Haupt-Fhem Server, der auf einem Laptop läuft, nun einen weiteren FHEM Server vollkommen neu aufgesetzt (auf einem cubietruck). Hier lief zunächst (ohne Deine Modifikationen an den Modulen), alles auch nicht erfolgreich. Erst wieder bei "sampling-interval << 300".

Ich bin daher meiner damaligen Vermutung nachgegangen (Timingproblem, abhängig von CPU Speed). Bei mir liefen OWX/OWTHERM in Verbindung mit Arduino <-> FHEM (Laptop) auch auf zwei unterschiedlichen FHEM-Servern nicht. Lediglich auf meinem Raspi lief OWX/OWTHERM erfolgreich (auch bei geringen sampling-interval). Ich vermutete schlicht, das mein Haupt-FHEM Server sowie der "Cubitruck" schlicht zu "schnell" sind. Der Raspi ist dagegen "langsam" genug.

Ich habe dann den Cubitruck von 1080 MHz auf sehr geringe Werte (< 200 Mhz) heruntergetaktet. Un exakt dann funktionierte auch OWX/OWTHEM <-> Arduino wieder korrekt.

Erfolg:

Mit den "modifizierten" Modulen läuft nun auch alles auf dem Cubiboard bei normaler CPU Speed. Sowie auch auf meinem Laptop. Damit scheint das Problem behoben zu sein.

Viele Grüße!

Andreas





ntruchsess

den asynchronen Support für DS2480-Busmaster ohne Hintergrundtread hab ich jetzt so refactored, dass das Timing passt. Findet sich ab jetzt im SVN. Einfach OWX_ASYNC anstelle von OWX benutzen.

Läuft mit allen OWX-Clients, die auch schon mit FRM laufen (OWTHERM, OWSWITCH, OWMULTI, OWAD und OWID)

wer OWCOUNT und OWLCD testen will muss diese beiden Module aktuell noch aus meinem Github-repository runterladen, der Stand im SVN-trunk läuft nicht(!) damit.
21OWCOUNT.pm
21OWLCD.pm

Hab hier 2*OWTHERM, 1*OWAD, 3*OWSWITCH, 1*OWMULTI, 1*OWCOUNT und 1*OWID mit jeweils 5 Sekunden poll-interval am DS2480 laufen und die Weboberfläche läßt sich noch flüssig bedienen  :)

Gruß,

Norbert

@Andreas: prima, das freut mich :-)
while (!asleep()) {sheep++};

ntruchsess

Heute ist der DS2423 von Tobias gekommen, gleich mal angeschlossen und getestet. Läuft prima mit OWX_ASYNC (und meiner gefixten OWCOUNT-version auf Github). Midnight-werte und memmory-schreiben/lesen scheint auch zu tun.
Leider erst mal nur mit FRM, mein DS2480-Busmaster ist mir gestern abend beim umstecken abgeraucht, muss mich da erst mal um Ersatz kümmern :-(

Gruß,

Norbert
while (!asleep()) {sheep++};

ntruchsess

Es gab mit dem echtem DS2423 doch noch eine Racecondition beim Schreiben über die asynchrone API.
Neuer Stand von 21_OWCOUNT.pm (Version 5.13) weiterhin erst mal noch im Github, wird aber langsam 'releasefertig', bräuchte dazu noch Feedback von Installationen mit anderen Busmastern als FRM (Kann aktuell nix anderes Testen, Ersatz für den defekten DS2480 ist aber schon auf dem Weg).

Gruß,

Norbert
while (!asleep()) {sheep++};

det.

#87
Hallo Norbert,
habe heute versucht auf meinem Produktiv FHEM einen der zwei Busmaster (DS2480 seriell über USB, Eigenbau, am Cubie2) auf OWX_ASYNC umzustellen. Das geht paar Minuten gut, dann kommt auf der Konsole Folgendes:
ZitatUse of uninitialized value $data in concatenation (.) or string at ./FHEM/21_OWCOUNT.pm line 1738.
Use of uninitialized value in left bitshift (<<) at ./FHEM/21_OWSWITCH.pm line 717.
Can't call method "baudrate" on an undefined value at ./FHEM/00_OWX.pm line 1457.
und direkt danach stirbt FHEM - (mehrmals nachvollziehbar probiert). IM LOG steht nichts.
An dem Busmaster hängen folgende Devices:
ZitatOWX: 1-Wire devices found on bus 1wire_1
10.1CA40B020800      DS18S20/DS1920 OWX_BS_A_005
10.1A700B020800      DS18S20/DS1920 BueroTemp_KG
10.897D0B020800      DS18S20/DS1920 OWX_BS_A_050
10.99B60B020800      DS18S20/DS1920 OWX_BS_A_000
10.39B80B020800      DS18S20/DS1920 OWX_BS_A_100
10.B5AF0B020800      DS18S20/DS1920 OWX_BS_A_010
10.23790B020800      DS18S20/DS1920 OWX_BS_A_020
10.93920B020800      DS18S20/DS1920 Keller_KG
28.0720DD030000      DS18B20        TKS_KG
28.271DDD030000      DS18B20        Flur_UG
12.96AE7B000000      DS2406/DS2507  OWSWITCHB
26.934D27010000      DS2438         OWX_26_934D27010000
01.56EA4E0E0000      DS2401/DS1990A Tuer_Buero
1D.6DD80F000000      DS2423         OWCOUNT_KG
FF.8E0700000100      LCD            OWX_LCD

Was brauchst Du noch für Infos, um damit was anfangen zu können?
LG
det.

ntruchsess

#88
Zitat von: det. am 13 April 2014, 15:02:43
Was brauchst Du noch für Infos, um damit was anfangen zu können?

Hast Du das 21_OWLCD.pm aus meinem 'owx_async_nothread'-Github-branch hergenommen? das ist im FHEM-svn nämlich noch auf dem alten (nicht an Async angepassten) Stand und würde den 'Can't call method "baudrate" on an undefined value at ./FHEM/00_OWX.pm line 1457.'-Fehler (und damit auch dem Abbruch) erklären.

Die OWCOUNT und OWSWITCH-errors schau im mir gleich näher an und melde mich, wenn ich noch mehr Info bräuchte. OWCOUNT ist seit Freitag mit den asynchronen Anpassungen im SVN.

Gruß,

Norbert
while (!asleep()) {sheep++};

ntruchsess

Für den 'Use of uninitialized value in left bitshift (<<) at ./FHEM/21_OWSWITCH.pm line 717.' habe ich gerade einen Fix ins SVN committed.

Gruß,

Norbert
while (!asleep()) {sheep++};