openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.86k stars 3.58k forks source link

[avmfritz] java.lang.NullPointerException: null at org.openhab.binding.avmfritz.handler.BoxHandler.updateThingFromDevice #2902

Closed gowi closed 6 years ago

gowi commented 6 years ago

Hi, I'm using the avmfritz addon with openHAB 2.2.0 Build #1099, Fritz Box 7490 (firmware 6.60), FRITZ!Powerline 546E and FRITZ!DECT 200. I've added the things via Paper UI. In the log, I get the following error:

2017-12-01 17:30:12.122 [DEBUG] [.binding.avmfritz.handler.BoxHandler] - polling FRITZ!Box avmfritz:fritzbox:192_168_178_1 2017-12-01 17:30:12.148 [DEBUG] [ternal.hardware.FritzahaWebInterface] - GETting URL http://192.168.178.1/webservices/homeautoswitch.lua?switchcmd=getdevicelistinfos&sid=fb9be0e7973d1f91 2017-12-01 17:30:14.120 [DEBUG] [nal.hardware.FritzahaContentExchange] - HTTP response 200 2017-12-01 17:30:14.146 [DEBUG] [nal.hardware.FritzahaContentExchange] - HTTP response 200 2017-12-01 17:30:14.165 [DEBUG] [nal.hardware.FritzahaContentExchange] - response complete: 1FRITZ!Powerline 546E1manuell07231032641FRITZ!DECT Keller1auto030750427231500

2017-12-01 17:30:14.284 [DEBUG] [.binding.avmfritz.handler.BoxHandler] - set device model: org.openhab.binding.avmfritz.internal.ahamodel.DeviceModel@196275e[ain=5C:49:79:ED:20:CF,bitmask=640,isDectRepeater=false,isPowermeter=true,isTempSensor=false,isSwitchableOutlet=true,isHeatingThermostat=false,id=20000,manufacturer=AVM,productname=FRITZ!Powerline 546E,fwversion=06.50,present=1,name=FRITZ!Powerline 546E,org.openhab.binding.avmfritz.internal.ahamodel.SwitchModel@93a881[state=1,mode=MANUAL,lock=0,devicelock=null>],org.openhab.binding.avmfritz.internal.ahamodel.PowerMeterModel@1afae33[power=72.310,energy=3.264],<null,] 2017-12-01 17:30:14.319 [DEBUG] [.binding.avmfritz.handler.BoxHandler] - set device model: org.openhab.binding.avmfritz.internal.ahamodel.DeviceModel@4eaf98[ain=087610300664,bitmask=896,isDectRepeater=false,isPowermeter=true,isTempSensor=true,isSwitchableOutlet=true,isHeatingThermostat=false,id=16,manufacturer=AVM,productname=FRITZ!DECT 200,fwversion=03.59,present=1,name=FRITZ!DECT Keller,org.openhab.binding.avmfritz.internal.ahamodel.SwitchModel@3cdf58[state=1,mode=AUTOMATIC,lock=0,devicelock=null>],org.openhab.binding.avmfritz.internal.ahamodel.PowerMeterModel@146b8fe[power=30.750,energy=42.723],org.openhab.binding.avmfritz.internal.ahamodel.TemperatureModel@1ba55d3[celsius=15.0,offset=0.0],<null] 2017-12-01 17:30:14.345 [DEBUG] [.binding.avmfritz.handler.BoxHandler] - update thing avmfritz:FRITZ_DECT_200:192_168_178_1:087610300664 with device model: org.openhab.binding.avmfritz.internal.ahamodel.DeviceModel@4eaf98[ain=087610300664,bitmask=896,isDectRepeater=false,isPowermeter=true,isTempSensor=true,isSwitchableOutlet=true,isHeatingThermostat=false,id=16,manufacturer=AVM,productname=FRITZ!DECT 200,fwversion=03.59,present=1,name=FRITZ!DECT Keller,org.openhab.binding.avmfritz.internal.ahamodel.SwitchModel@3cdf58[state=1,mode=AUTOMATIC,lock=0,devicelock=null>],org.openhab.binding.avmfritz.internal.ahamodel.PowerMeterModel@146b8fe[power=30.750,energy=42.723],org.openhab.binding.avmfritz.internal.ahamodel.TemperatureModel@1ba55d3[celsius=15.0,offset=0.0],<null] 2017-12-01 17:30:14.387 [ERROR] [.binding.avmfritz.handler.BoxHandler] - null java.lang.NullPointerException: null at org.openhab.binding.avmfritz.handler.BoxHandler.updateThingFromDevice(BoxHandler.java:176) [230:org.openhab.binding.avmfritz:2.2.0.201711260007] at org.openhab.binding.avmfritz.handler.BoxHandler.addDeviceList(BoxHandler.java:144) [230:org.openhab.binding.avmfritz:2.2.0.201711260007] at org.openhab.binding.avmfritz.internal.hardware.callbacks.FritzAhaUpdateXmlCallback.execute(FritzAhaUpdateXmlCallback.java:64) [230:org.openhab.binding.avmfritz:2.2.0.201711260007] at org.openhab.binding.avmfritz.internal.hardware.FritzahaContentExchange.onComplete(FritzahaContentExchange.java:71) [230:org.openhab.binding.avmfritz:2.2.0.201711260007] at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:458) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:405) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:277) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1617) [78:org.eclipse.jetty.http:9.3.22.v20171030] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1350) [78:org.eclipse.jetty.http:9.3.22.v20171030] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:159) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:120) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:70) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:90) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:115) [75:org.eclipse.jetty.client:9.3.22.v20171030] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [79:org.eclipse.jetty.io:9.3.22.v20171030] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [79:org.eclipse.jetty.io:9.3.22.v20171030] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [79:org.eclipse.jetty.io:9.3.22.v20171030] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [90:org.eclipse.jetty.util:9.3.22.v20171030] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [90:org.eclipse.jetty.util:9.3.22.v20171030] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [90:org.eclipse.jetty.util:9.3.22.v20171030] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [90:org.eclipse.jetty.util:9.3.22.v20171030] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [90:org.eclipse.jetty.util:9.3.22.v20171030] at java.lang.Thread.run(Thread.java:748) [?:?]

Any ideas?

cweitkamp commented 6 years ago

Yes, indeed. FRITZ!OS Version 6.60 doesn't return a value for the recently introduced device_locked channel. This feature is only available with newer firmware. I guess we have to implement a fix to be backward compatible in such case.

cweitkamp commented 6 years ago

PR #2907

FrBusch commented 6 years ago

I'm having the same error with a FRITZ!Box 6360 Cable - Firmware 6.54 with firmware updates controlled and performed by the network operator. So backward compatibility would be highly appreciated.

2017-12-03 16:17:52.767 [ERROR] [.binding.avmfritz.handler.BoxHandler] - null java.lang.NullPointerException: null at org.openhab.binding.avmfritz.handler.BoxHandler.updateThingFromDevice(BoxHandler.java:176) [187:org.openhab.binding.avmfritz:2.2.0.201711040020] at org.openhab.binding.avmfritz.handler.BoxHandler.addDeviceList(BoxHandler.java:144) [187:org.openhab.binding.avmfritz:2.2.0.201711040020] at org.openhab.binding.avmfritz.internal.hardware.callbacks.FritzAhaUpdateXmlCallback.execute(FritzAhaUpdateXmlCallback.java:64) [187:org.openhab.binding.avmfritz:2.2.0.201711040020] at org.openhab.binding.avmfritz.internal.hardware.FritzahaContentExchange.onComplete(FritzahaContentExchange.java:71) [187:org.openhab.binding.avmfritz:2.2.0.201711040020] at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:458) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.HttpReceiver.responseSuccess(HttpReceiver.java:405) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.messageComplete(HttpReceiverOverHTTP.java:270) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1602) [76:org.eclipse.jetty.http:9.3.14.v20161028] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1335) [76:org.eclipse.jetty.http:9.3.14.v20161028] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:159) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:120) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:70) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:90) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:115) [74:org.eclipse.jetty.client:9.3.14.v20161028] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [77:org.eclipse.jetty.io:9.3.14.v20161028] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [77:org.eclipse.jetty.io:9.3.14.v20161028] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [77:org.eclipse.jetty.io:9.3.14.v20161028] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [88:org.eclipse.jetty.util:9.3.14.v20161028] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [88:org.eclipse.jetty.util:9.3.14.v20161028] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [88:org.eclipse.jetty.util:9.3.14.v20161028] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [88:org.eclipse.jetty.util:9.3.14.v20161028] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [88:org.eclipse.jetty.util:9.3.14.v20161028] at java.lang.Thread.run(Thread.java:748) [?:?]

cweitkamp commented 6 years ago

PR #2907 was merged yesterday. Should be available in the latest OH2 snapshot #1108.

FrBusch commented 6 years ago

👍 Fix worked for me - NPE is gone. Greetings.

gowi commented 6 years ago

Same here