1-Wire, OWX/OWTHERM persistierende Timingprobleme

Begonnen von fhem-challenge, 24 März 2014, 11:35:31

Vorheriges Thema - Nächstes Thema

ntruchsess

die Einträge mit f0,f3...f7 sind die 1-Wire-commandos (mit > das was FRM an den Arduino schickt, mit < das was zurückkommt). Das Format ist hier beschrieben.

Aber lass das doch mal länger laufen. Du hast doch bemängelt, dass bei größerem sampling-interval die OWTHERM-werte nicht mehr regelmäßig geupdatet werden. Das kann man (bei einem OWTHERM-Interval von 300 Sekunden) natürlich nicht sehen, wenn das Log grade mal kappe 3 Minuten insgesammt lang ist.

Gruß,

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

fhem-challenge

... anbei ein längeres Logfile incl. Start von FHEM und Initialisierung.

Ab 2014.03.25 15:27:51 ... gehts dann mit "Firmata" los.

Warum aber das Logging direkt via verbose am FRM nicht geht ... ist mir ein Rätsel.


Gruss

Andreas


ntruchsess

#17

2014.03.25 15:27:58 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,06,00,00,00,40,53,25,46,7e,01,f7
2014.03.25 15:27:59 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,08,00,40,2f,f7
2014.03.25 15:28:00 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,10,00,40,2f,f7
2014.03.25 15:28:01 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,18,00,40,2f,f7
2014.03.25 15:32:58 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,20,01,40,2f,f7
2014.03.25 15:32:59 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,28,01,40,2f,f7
2014.03.25 15:33:00 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,30,01,40,2f,f7
2014.03.25 15:37:58 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,18,02,40,2f,f7
2014.03.25 15:37:59 5: 13>f0,73,2c,2d,28,2c,57,67,49,00,00,00,71,12,00,20,02,40,2f,f7


hier sind die Kommandos von 3 Temperaturmessungen im 5-Minuten-abstand drin, die dazugehörigen Antworten der Firmata sind auch alle im Log. Nur 2 der Messungen führen auch zu einem Event:

2014.03.25 15:27:58 5: Triggering temp_D6F59C040000 (1 changes)
2014.03.25 15:38:00 5: Triggering temp_D6F59C040000 (2 changes)

Der Event dazwischen ist ausgelassen (daher auch '2 changes' beim zweiten, da steckt der ausgelassene mit drin).

hast Du event-min-interval gesetzt?

Aus der Ecke kommt das Verhalten jedenfalls her.
Das erklärt vieleicht auch einen indirekten Zusammenhang mit dem sampling-interval (auch wenn es nicht logisch ist) - kleines Sampling-interval -> viele Events, großes sampling-interval -> wenige Events.
Bin grad am schauen, ob da in der letzten Zeit irgendeine Änderung in die fhem.pl reingekommen ist
while (!asleep()) {sheep++};

Prof. Dr. Peter Henning

Das ist auch mein Verdacht - irgendetwas wurde da gemacht. Das sollte aber immer noch nicht für die Abbrüche verantwortlich sein.

LG

pah

ntruchsess

also die fhem.pl-änderungen der letzen 4 Wochen bin ich mal im Detail durchgegangen. Da kanns eigentlich nicht dran liegen, das ist bis auf die IODev-geschichte alles eher harmlos (und wenn das IODev nicht stimmt, dann gibt's definitiv andere Fehlermeldungen). Was läuft denn alles an eigenenm perl-code (99_Utils.pm, notifies etc...)?

Gruß,

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

fhem-challenge

#20
Danke schon einmal!

event-min-interval habe ich am FRM nicht gesetzt. In der "99_Utils.pm" habe ich nur eine eigene Funktion (spezielles eMail-versenden, SMS send) drin. Aber auch in einer reinen Testumgebung (ohne eigene Erweiterungen in 99_Utils.pm), und nur bei Nutzung von FRM,OWX,OWTHERM tritt diese Effekt auf. Ich habe die o.g. Log's auch mit einer Minimalconfig erzeugt. Sämtliche anderen Module waren nicht geladen. Natürlich war auch das IODev gesetzt.

Anbei die momentane Test-Config.


define FIRMATA FRM 3030 global
attr FIRMATA room OWX
attr FIRMATA sampling-interval 2000
attr FIRMATA verbose 5
#
define OW OWX 45
attr OW DbLogExclude .*
attr OW IODev FIRMATA
attr OW buspower real
attr OW loglevel 6
attr OW room OWX
attr OW verbose 5

# test IO Port
define Firmata_OUT FRM_OUT 40
attr Firmata_OUT DbLogExclude .*
attr Firmata_OUT IODev FIRMATA
attr Firmata_OUT room OWX
attr Firmata_OUT stateFormat value

# test IO Port
# Port 41 als Eingang schalten
define Firmata_IN FRM_IN 41
attr Firmata_IN DbLogExclude .*
attr Firmata_IN IODev FIRMATA
attr Firmata_IN room OWX
attr Firmata_IN stateFormat reading

# Analogeingang
define Firmata_ANALOG FRM_AD 54
attr Firmata_ANALOG DbLogExclude .*
attr Firmata_ANALOG IODev FIRMATA
attr Firmata_ANALOG event-min-interval .*:180
attr Firmata_ANALOG room OWX
attr Firmata_ANALOG stateFormat reading

###########################
### Temperatur-Sensoren DS18B20 ###
###########################
define temp_12E29D040000 OWTHERM DS18B20 12E29D040000
attr temp_12E29D040000 DbLogExclude .*
attr temp_12E29D040000 IODev OW
attr temp_12E29D040000 model DS18B20
attr temp_12E29D040000 room OWX
attr temp_12E29D040000 tempHigh 75
attr temp_12E29D040000 tempLow 70
attr temp_12E29D040000 verbose 5
#
define temp_1ACC57040000 OWTHERM DS18B20 1ACC57040000
attr temp_1ACC57040000 DbLogExclude .*
attr temp_1ACC57040000 IODev OW
attr temp_1ACC57040000 model DS18B20
attr temp_1ACC57040000 room OWX
attr temp_1ACC57040000 tempHigh 75
attr temp_1ACC57040000 tempLow 70
#
define temp_D6F59C040000 OWTHERM DS18B20 D6F59C040000
attr temp_D6F59C040000 DbLogExclude .*
attr temp_D6F59C040000 IODev OW
attr temp_D6F59C040000 model DS18B20
attr temp_D6F59C040000 room OWX
attr temp_D6F59C040000 tempConv onread
attr temp_D6F59C040000 tempHigh 75
attr temp_D6F59C040000 tempLow 70
#
define temp_EF1E58040000 OWTHERM DS18B20 EF1E58040000
attr temp_EF1E58040000 DbLogExclude .*
attr temp_EF1E58040000 IODev OW
attr temp_EF1E58040000 model DS18B20
attr temp_EF1E58040000 room OWX
attr temp_EF1E58040000 tempHigh 75
attr temp_EF1E58040000 tempLow 70
#
define temp_2A6757040000 OWTHERM DS18B20 2A6757040000
attr temp_2A6757040000 DbLogExclude .*
attr temp_2A6757040000 IODev OW
attr temp_2A6757040000 model DS18B20
attr temp_2A6757040000 room OWX
attr temp_2A6757040000 tempHigh 75
attr temp_2A6757040000 tempLow 70

###
define FileLog_EF1E58040000 FileLog /var/log/fhem/ow_EF1E58040000.%Y.log temp_EF1E58040000:T:.*
attr FileLog_EF1E58040000 logtype temp4:Temp,text
attr FileLog_EF1E58040000 room OWX
###
define FileLog_2A6757040000 FileLog /var/log/fhem/ow_2A6757040000.%Y.log temp_2A6757040000:T:.*
attr FileLog_2A6757040000 logtype temp4:Temp,text
attr FileLog_2A6757040000 room OWX
###
define FileLog_1ACC57040000 FileLog /var/log/fhem/ow_1ACC57040000.%Y.log temp_1ACC57040000:T:.*
attr FileLog_1ACC57040000 logtype temp4:Temp,text
attr FileLog_1ACC57040000 room OWX
###
define FileLog_12E29D040000 FileLog /var/log/fhem/ow_12E29D040000.%Y.log temp_12E29D040000:T:.*
attr FileLog_12E29D040000 logtype temp4:Temp,text
attr FileLog_12E29D040000 room OWX
###
define FileLog_D6F59C040000 FileLog /var/log/fhem/ow_D6F59C040000.%Y.log temp_D6F59C040000:T:.*
attr FileLog_D6F59C040000 logtype temp4:Temp,text
attr FileLog_D6F59C040000 room OWX
###

### Plots
define SVG_0 SVG FileLog_D6F59C040000:temp4:CURRENT
attr SVG_0 room OWX
define SVG_1 SVG FileLog_12E29D040000:temp4:CURRENT
attr SVG_1 room OWX
define SVG_2 SVG FileLog_2A6757040000:temp4:CURRENT
attr SVG_2 room OWX
define SVG_3 SVG FileLog_D6F59C040000:temp4:CURRENT
attr SVG_3 room OWX
define SVG_4 SVG FileLog_EF1E58040000:temp4:CURRENT
attr SVG_4 room OWX


Ansonsten kam heute (nur einmal) ein Fehler:

Can't call method "packet_onewire_request" on an undefined value at /usr/share/fhem/FHEM/lib/Device/Firmata/Platform.pm line 781.

... aber das auf meinen Rpi und nicht auf meinem laptop. Auf dem Rpi läuft ja die 1-wire Umgebung korrekt.


Gruss

Andreas