OWDevice and attr with no value

Begonnen von fruit, 06 November 2014, 08:00:00

Vorheriges Thema - Nächstes Thema

fruit

Since the more rigorous checking in fhem.pl I have been seeing the following appear in logs at every save Config

2014.11.06 06:31:20 1: PERL WARNING: Use of uninitialized value $val in concatenation (.) or string at fhem.pl line 1384.
2014.11.06 06:31:20 1: PERL WARNING: Use of uninitialized value $val in substitution (s///) at fhem.pl line 1383.
2014.11.06 06:31:20 1: PERL WARNING: Use of uninitialized value $val in substitution (s///) at fhem.pl line 1382.


as well as the expected

2014.11.06 06:31:15 3: ds2408_LED: reading type did not return a value

verbose 5 and stacktrace

2014.11.06 06:33:49 1: PERL WARNING: Use of uninitialized value $val in substitution (s///) at fhem.pl line 1382.
2014.11.06 06:33:49 3: stacktrace:
2014.11.06 06:33:49 3:     main::__ANON__                      called by fhem.pl (1382)
2014.11.06 06:33:49 3:     main::CommandSave                   called by fhem.pl (972)
2014.11.06 06:33:49 3:     main::AnalyzeCommand                called by fhem.pl (851)
2014.11.06 06:33:49 3:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (1919)
2014.11.06 06:33:49 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (567)
2014.11.06 06:33:49 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.11.06 06:33:49 3:     main::FW_Read                       called by fhem.pl (2923)
2014.11.06 06:33:49 3:     main::CallFn                        called by fhem.pl (598)
2014.11.06 06:33:49 1: PERL WARNING: Use of uninitialized value $val in substitution (s///) at fhem.pl line 1383.
2014.11.06 06:33:49 3: stacktrace:
2014.11.06 06:33:49 3:     main::__ANON__                      called by fhem.pl (1383)
2014.11.06 06:33:49 3:     main::CommandSave                   called by fhem.pl (972)
2014.11.06 06:33:49 3:     main::AnalyzeCommand                called by fhem.pl (851)
2014.11.06 06:33:49 3:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (1919)
2014.11.06 06:33:49 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (567)
2014.11.06 06:33:49 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.11.06 06:33:49 3:     main::FW_Read                       called by fhem.pl (2923)
2014.11.06 06:33:49 3:     main::CallFn                        called by fhem.pl (598)
2014.11.06 06:33:49 1: PERL WARNING: Use of uninitialized value $val in concatenation (.) or string at fhem.pl line 1384.
2014.11.06 06:33:49 3: stacktrace:
2014.11.06 06:33:49 3:     main::__ANON__                      called by fhem.pl (1384)
2014.11.06 06:33:49 3:     main::CommandSave                   called by fhem.pl (972)
2014.11.06 06:33:49 3:     main::AnalyzeCommand                called by fhem.pl (851)
2014.11.06 06:33:49 3:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (1919)
2014.11.06 06:33:49 3:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (567)
2014.11.06 06:33:49 3:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (393)
2014.11.06 06:33:49 3:     main::FW_Read                       called by fhem.pl (2923)
2014.11.06 06:33:49 3:     main::CallFn                        called by fhem.pl (598)
2014.11.06 06:33:49 4: /fhem?XHR=1&cmd=save / RL:52 / text/plain; charset=UTF-8 / Content-Encoding: gzip


I have managed to track this down to an empty attribute value.

An LED-statusmonitor had been configured previously but is physically disconnected at the moment, however the definition remains in my fhem.cfg as

define ds2408_LED OWDevice 29.AC5413000000
attr ds2408_LED IODev myLocalOWServer
attr ds2408_LED model


Deleting the ds2408_LED obviously resolves the save issue, however defining again with no physical device also recreates the empty attribute value and the error on save Config. That may be expected behaviour - I have no idea, all too complex for me!

Discussion in http://forum.fhem.de/index.php/topic,28673.0.html would suggest this should not happen

Perhaps it doesn't make sense to include the definition for a physically removed device but I wonder if the error may also occur on network errors too.
Feel free to follow up in German if you prefer

fiedel

#1
May be you should define it with a polling interval (this is an option, but give it a try!) and do not leave the attr. "model" empty like this: define ds2408_LED OWDevice 29.AC5413000000 60
attr ds2408_LED IODev myLocalOWServer
attr ds2408_LED model ds2408
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

fruit

That certainly gets rid of the error on save Config, now I have a log full of

2014.11.06 12:26:18 3: ds2408_LED: reading sensed.7 did not return a value

I think I'll remove it until the device is reinstalled  :-\

I was assuming the module saved the attribute if the device is physically present but that may not be the case. I don't have saved cfg from that time so can't check

Thanks for the reply.

Feel free to follow up in German if you prefer

fiedel

Fine! Now you can check two things: Try just not to set the polling value or set it to 0 (zero). May be the first problem you had, was just because of the empty "model". If this works, you can leave the device defined while it is not present.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

fruit

They both remove the attribute value!

I am quite happy removing the definition until I need it again (now I know what is casuing the save error) but my understanding of Rudolf's post in the linked thread is that the module should either delete the empty attribute or deal with it internally.

Feel free to follow up in German if you prefer

Dr. Boris Neubert

Took me some time to follow-up on this issue.

Today added a change to 11_OWDevice.pm: model attribute is only set or overwritten if model can be read from the bus.

Cheers,
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!