I am trying to use dynamic icons for my weather display. I have imported the icons in .svg, located in the classic icons folder.
My items:
> String W_OWM_CondID "ConditionId [%s]" (G_jdbc,Group_HabPanel_Dashboard) {channel="openweathermap:weather-and-forecast:a54e0a82:local:current#condition-id"}
> Image W_CondIcon
My sitemap
> Frame label="Weather"{
>
> Text item=W_OWM_Station_Name icon="location"
>
> Text item=W_OWM_Time icon="time"
>
> Image item=W_CondIcon
>
> Text item=W_OWM_Temp
>
> Text item=W_OWM_Humidity
>
> Text item=W_OWM_Wind_Speed
>
> Text item=W_OWM_Wind_Dir
>
> Text item=W_OWM_Cond icon="none"
>
> Text item=W_OWM_Rain
My rule file:
> rule "Update weather conditions for dynamic icon selection"
> when
> Item W_OWM_CondID changed
> then
> W_CondIcon.postUpdate(transform("MAP", "weather_icon.map", W_OWM_CondID.state.toString()))
> end
Yet, the item W_CondIcon is staying NULL.
Where should I look for my issue?
And the map file:
> -=NULL
> 200=thunderstorm
> 201=thunderstorm
> 202=thunderstorm
> 210=thunderstorm
> 211=thunderstorm
> 212=thunderstorm
> 221=thunderstorm
> 230=thunderstorm
> 231=thunderstorm
> 232=thunderstorm
> 300=sun_medclouds
> 301=sun_medclouds
> 302=sun_medclouds
> 310=sun_medclouds
> 311=sun_medclouds
> 312=sun_medclouds
> 313=sun_medclouds
> 314=sun_medclouds
> 321=sun_medclouds
> 500=medium_rain
> 501=medium_rain
> 502=rain
> 503=rain
> 504=rain
> 511=medium_ice
> 520=medium_rain
> 521=medium_rain
> 522=rain
> 531=rain
> 600=sun_snow
> 601=heavy_snow
> 602=heavy_snow
> 611=medium_ice
> 612=medium_ice
> 613=medium_ice
> 615=heavy_snow
> 616=heavy_snow
> 620=sun_snow
> 621=heavy_snow
> 622=heavy_snow
> 701=fog
> 711=fog
> 721=fog
> 731=fog
> 741=fog
> 751=fog
> 761=fog
> 762=Volcanic ash
> 771=Squalls
> 781=tornado
> 800=sun
> 801=sun_minimalclouds
> 802=Scattered clouds
> 803=Broken clouds
> 804=Overcast
> 900=tornado
> 901=hurricane
> 902=hurricane
> 903=Cold
> 904=Hot
> 905=Windy
> 906=Hail
> 951=Calm
> 952=Light breeze
> 953=Weak breeze
> 954=Moderate breeze
> 955=Fresh breeze
> 956=Strong Wind
> 957=Strong wind, before storm
> 958=storm
> 959=Strong storm
> 960=storm
> 961=Violent storm
> 962=hurricane
rossko57
(Rossko57)
April 30, 2020, 7:55pm
2
Look in your openhab.log
Your xxx.rules file needs to load successfully, and will leave a message about it.
Look in your events.log.
Your rule needs Item W_OWM_CondID to change for a trigger. Does that happen?
Look in your openhab.log
If your rule has an error wen it runs - say, trouble with the transform - it will show up there.
I don’t think this is going to work though.
If you want a sitemap Image widget to display a file identified in the Item state content, you need to give a full url, not just a partial filename like “rain”
https://www.openhab.org/docs/configuration/sitemaps.html#element-type-image
Ok, I was trying to actually use an icon image; why its named that way.
rossko57
(Rossko57)
April 30, 2020, 8:10pm
4
Alright, give the icon <weather>
in your Item definition, but you must also have a default weather.svg or .png in your iconset
Yes sir, I do. It’s not on that screenshot, but I added it.
Ok, its showing the icon correctly; but, is there a way to display the icon as an image?
rossko57
(Rossko57)
April 30, 2020, 8:39pm
7
Yes, you put the full url to an image file in the content of the String Item that you pass to the Image widget.
That works best serving images from /conf/html folder I think
(The icon will not work then)
But if you use OpenWeatherMap there is a channel supplying a image
URL
just switched from discontinued WeatherUnderground to the new OpenWeatherMap 2.4 binding.
Running OH2 stable 2.4.
In my rule, I send an Email with the condition icon. With WU I got the URL of that icon and cached this locally, then sent it. Worked finally.
Now I got the “Image”-item from the binding and want to do the same. How can I achieve this?
items:
String WeatherRB_TdyConditions "heute Wetterlage [%s]" { channel="openweathermap:weather-and-forecast:api:rossbuehel:forecastT…
And just so you know,
I dont want to use the image associated with the image channel as the images dont enlarge well, I want high definition images
rossko57
(Rossko57)
April 30, 2020, 9:12pm
9
Fair enough.
Put the images in /conf/html/
Load your Item state with a url like http://localhost:8080/static/weather-rain.png
1 Like
Awesome, thank you for the suggestion.
Is it possible to MAP image items? I know I could use a rule to display whatever image based on case, but it seems that a map file may be a better way to go.
> rule "Update weather conditions for dynamic icon selection"
> when
> Item W_OWM_CondID changed
> then
> ImageChooser.postUpdate(transform("MAP", "weather_image.map", W_OWM_CondID.state.toString()))
> end
The map file: (partial)
> NULL=url="http://10.2.1.129:8080/static/weather.png"
> -=url="http://10.2.1.129:8080/static/weather.png"
> 200=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 201=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 202=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 210=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 211=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 212=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 221=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 230=url=""http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 231=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 232=url="http://10.2.1.129:8080/static/weather-thunderstorm.png"
> 300=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 301=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 302=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 310=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 311=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 312=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 313=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 314=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 321=url="http://10.2.1.129:8080/static/weather-sun_medclouds.png"
> 500=url="http://10.2.1.129:8080/static/weather-medium_rain.png"
> 501=url="http://10.2.1.129:8080/static/weather-medium_rain.png"
> 502=url="http://10.2.1.129:8080/static/weather-rain.png"
> 503=url="http://10.2.1.129:8080/static/weather-rain.png"
> 504=url="http://10.2.1.129:8080/static/weather-rain.png"
> 511=url="http://10.2.1.129:8080/static/weather-medium_ice.png"
> 520=url="http://10.2.1.129:8080/static/weather-medium_rain.png"
> 521=url="http://10.2.1.129:8080/static/weather-medium_rain.png"
> 522=url="http://10.2.1.129:8080/static/weather-rain.png"
> 531=url="http://10.2.1.129:8080/static/weather-rain.png"
> 600=url="http://10.2.1.129:8080/static/weather-sun_snow.png"
> 601=url="http://10.2.1.129:8080/static/weather-heavy_snow.png"
> 602=url="http://10.2.1.129:8080/static/weather-heavy_snow.png"
> 611=url="http://10.2.1.129:8080/static/weather-medium_ice.png"
> 612=url="http://10.2.1.129:8080/static/weather-medium_ice.png"
> 613=url="http://10.2.1.129:8080/static/weather-medium_ice.png"
> 615=url="http://10.2.1.129:8080/static/weather-heavy_snow.png"
> 616=url="http://10.2.1.129:8080/static/weather-heavy_snow.png"
The items:
> Image W_CondIcon <weather>
>
> String ImageChooser
The sitemap: (partial)
> Frame label="Weather"{
>
> Text item=W_OWM_Station_Name icon="location"
>
> Text item=W_OWM_Time icon="time"
>
> Image item=ImageChooser
>
> Text item=W_OWM_Temp
>
> Text item=W_OWM_Humidity
>
> Text item=W_OWM_Wind_Speed
>
> Text item=W_OWM_Wind_Dir
>
> Text item=W_OWM_Cond
This is my first attempt, where am I going wrong?
rossko57
(Rossko57)
May 1, 2020, 12:50pm
12
Smart idea!
Branden_Smale:
where am I going wrong?
Don’t know, what happens?
You events.log will show you what the Item state is changed to.
I think i have to remove the toString part. I am mapping against the numeric value, so I shouldn’t need to change it to a string, I think…I’ll be back in front of it in a couple hours to try it out.
rossko57
(Rossko57)
May 1, 2020, 1:51pm
14
The transform service is essentially string based anyway, converting whatever you feed it to string for lookup.
The log says it can’t load the rule file, yet VS code shows no errors. Also, my ImageChooser item, though being updated, is not being mapped.
rossko57
(Rossko57)
May 1, 2020, 5:57pm
16
If only we knew what your log says.
The character limit is too large…
rossko57
(Rossko57)
May 1, 2020, 6:12pm
18
“My cat is sick. What is wrong?”
This is NOT a dig at you personally @Branden_Smale , because half of humanity seems to do this, and certainly half of openHAB users.
I’ve pondered on why, and I guess if you’ve never had to do diagnosis in some private or work capacity, it simply never occurs that the body being asked for advice might need more info? I’d have thought that people engaged in some technical activity (like using openHAB) might be better at imagining the need, but it seems not. It just puzzles me.
1 Like
rossko57
(Rossko57)
May 1, 2020, 6:12pm
19
Well, how about the two or three lines describing why your rules file does not load?
> 2020-05-01 12:46:40.566 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Time zone set to 'US/Eastern'.
>
> 2020-05-01 12:46:40.585 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Location set to '29.627519,-82.4396455,17'.
>
> 2020-05-01 12:46:40.593 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Locale set to 'en_US'.
>
> 2020-05-01 12:46:40.598 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Measurement system set to 'ImperialUnits'.
>
> 2020-05-01 12:46:50.968 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'Thermostats.items.bak.items'
>
> 2020-05-01 12:46:51.627 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'weather.items'
>
> 2020-05-01 12:46:52.603 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'Thermostats.items'
>
> 2020-05-01 12:46:52.758 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'Sonos.items'
>
> 2020-05-01 12:46:52.919 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'lgtv.items'
>
> 2020-05-01 12:46:53.040 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.items'
>
> 2020-05-01 12:46:54.043 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'mapdb.persist'
>
> 2020-05-01 12:46:54.072 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'influxdb.persist'
>
> 2020-05-01 12:46:55.114 [INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'demo.sitemap', using it anyway:
>
> Sitemap should contain either only frames or none at all
>
> 2020-05-01 12:46:55.122 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'demo.sitemap'
>
> 2020-05-01 12:46:55.200 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'test.sitemap'
>
> 2020-05-01 12:46:55.600 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type 'channel' of item 'LG_TV0_Toast' could not be parsed correctly.
>
> org.eclipse.smarthome.model.item.BindingConfigParseException: UID must have at least 4 segments.
>
> at org.eclipse.smarthome.model.thing.internal.GenericItemChannelLinkProvider.createItemChannelLink(GenericItemChannelLinkProvider.java:82) ~[?:?]
>
> at org.eclipse.smarthome.model.thing.internal.GenericItemChannelLinkProvider.processBindingConfiguration(GenericItemChannelLinkProvider.java:72) ~[?:?]
>
> at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:369) [bundleFile:?]
>
> at org.eclipse.smarthome.model.item.internal.GenericItemProvider.dispatchBindingsPerType(GenericItemProvider.java:325) [bundleFile:?]
>
> at org.eclipse.smarthome.model.item.internal.GenericItemProvider.addBindingConfigReader(GenericItemProvider.java:148) [bundleFile:?]
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
>
> at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BindMethod.invoke(BindMethod.java:42) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1813) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1788) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:435) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:325) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:294) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [bundleFile:?]
>
> at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [bundleFile:?]
>
> at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) [bundleFile:?]
>
> at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:338) [bundleFile:?]
>
> at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:382) [bundleFile:?]
>
> at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) [bundleFile:?]
>
> at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:264) [bundleFile:?]
>
> at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [bundleFile:?]
>
> at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [bundleFile:?]
>
> at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [bundleFile:?]
>
> at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) [osgi.core-6.0.0.jar:?]
>
> at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) [osgi.core-6.0.0.jar:?]
>
> at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-6.0.0.jar:?]
>
> at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [osgi.core-6.0.0.jar:?]
>
> at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.Module.start(Module.java:467) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [org.eclipse.osgi-3.12.100.jar:?]
>
> 2020-05-01 12:46:55.633 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type 'channel' of item 'LG_TV0_Stop' could not be parsed correctly.
>
> org.eclipse.smarthome.model.item.BindingConfigParseException: UID must have at least 4 segments.
>
> at org.eclipse.smarthome.model.thing.internal.GenericItemChannelLinkProvider.createItemChannelLink(GenericItemChannelLinkProvider.java:82) ~[?:?]
>
> at org.eclipse.smarthome.model.thing.internal.GenericItemChannelLinkProvider.processBindingConfiguration(GenericItemChannelLinkProvider.java:72) ~[?:?]
>
> at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:369) [bundleFile:?]
>
> at org.eclipse.smarthome.model.item.internal.GenericItemProvider.dispatchBindingsPerType(GenericItemProvider.java:325) [bundleFile:?]
>
> at org.eclipse.smarthome.model.item.internal.GenericItemProvider.addBindingConfigReader(GenericItemProvider.java:148) [bundleFile:?]
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
>
> at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) [bundleFile:?]
>
> at org.apache.felix.scr.impl.inject.methods.BindMethod.invoke(BindMethod.java:42) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1813) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1788) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:435) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:325) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:294) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [bundleFile:?]
>
> at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [bundleFile:?]
>
> at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432) [bundleFile:?]
>
> at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) [bundleFile:?]
>
> at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:338) [bundleFile:?]
>
> at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:382) [bundleFile:?]
>
> at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) [bundleFile:?]
>
> at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:264) [bundleFile:?]
>
> at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [bundleFile:?]
>
> at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [bundleFile:?]
>
> at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [bundleFile:?]
>
> at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) [osgi.core-6.0.0.jar:?]
>
> at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) [osgi.core-6.0.0.jar:?]
>
> at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-6.0.0.jar:?]
>
> at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [osgi.core-6.0.0.jar:?]
>
> at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.Module.start(Module.java:467) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1634) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1614) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1585) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1528) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [org.eclipse.osgi-3.12.100.jar:?]
>
> at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) [org.eclipse.osgi-3.12.100.jar:?]
>
> 2020-05-01 12:47:00.580 [INFO ] [thome.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
>
> 2020-05-01 12:47:03.712 [INFO ] [.dashboard.internal.DashboardService] - Started Dashboard at http://10.2.1.129:8080
>
> 2020-05-01 12:47:03.716 [INFO ] [.dashboard.internal.DashboardService] - Started Dashboard at https://10.2.1.129:8443
>
> 2020-05-01 12:47:08.416 [ERROR] [me.storage.json.internal.JsonStorage] - Couldn't deserialize value 'org.eclipse.smarthome.storage.json.internal.StorageEntry@1664f9c'. Root cause is: org.eclipse.smarthome.automation.Rule cannot be found by org.openhab.core.automation_2.5.0
>
> 2020-05-01 12:47:11.855 [INFO ] [b.core.service.AbstractActiveService] - HTTP Refresh Service has been started
>
> 2020-05-01 12:47:14.343 [DEBUG] [o.openhabcloud.internal.CloudService] - openHAB Cloud connector activated
>
> 2020-05-01 12:47:14.372 [DEBUG] [o.openhabcloud.internal.CloudService] - Using secret at '/var/lib/openhab2/openhabcloud/secret' with content 'xxxxxxxxxxxxxxxxxx'
>
> 2020-05-01 12:47:14.393 [DEBUG] [o.openhabcloud.internal.CloudService] - UUID = 80a84bac-73fa-42d0-b939-99f145fce39f, secret = xxxxxxxxxxxxxxxx
>
> 2020-05-01 12:47:14.496 [DEBUG] [o.openhabcloud.internal.CloudService] - Using secret at '/var/lib/openhab2/openhabcloud/secret' with content 'xxxxxxxxxxxxxxxxx'
>
> 2020-05-01 12:47:14.517 [INFO ] [b.core.service.AbstractActiveService] - Google Calendar Event Downloader has been started
>
> 2020-05-01 12:47:18.554 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
>
> 2020-05-01 12:47:18.768 [INFO ] [ebuilder.internal.HomeBuilderServlet] - Started Home Builder at /homebuilder
>
> 2020-05-01 12:47:19.067 [INFO ] [openhab.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
>
> 2020-05-01 12:47:22.827 [WARN ] [.internal.ScaleTransformationService] - Scale transform file '/etc/openhab2/transform/winds.scale' does not comply with syntax for entry : 'NULL', 'NA'
>
> 2020-05-01 12:47:22.908 [WARN ] [rm.AbstractFileTransformationService] - Could not transform '-' with the file 'winds.scale' : Scale must be used with numeric inputs, valid quantity types or a 'NaN' entry.
>
> 2020-05-01 12:47:23.420 [DEBUG] [io.openhabcloud.internal.CloudClient] - Socket.IO connected
>
> 2020-05-01 12:47:23.423 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = 80a84bac-73fa-42d0-b939-99f145fce39f, base URL = http://localhost:8080)
>
> 2020-05-01 12:47:56.116 [ERROR] [org.jupnp.transport.spi.StreamClient] - Request: HttpRequest[GET /capability HTTP/1.1]@b577fd failed
>
> java.lang.NullPointerException: Missing SslContextFactory
>
> at java.util.Objects.requireNonNull(Objects.java:228) ~[?:1.8.0_222]
>
> at org.eclipse.jetty.io.ssl.SslClientConnectionFactory.<init>(SslClientConnectionFactory.java:54) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpClient.newSslClientConnectionFactory(HttpClient.java:1175) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpDestination.newSslClientConnectionFactory(HttpDestination.java:137) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpDestination.<init>(HttpDestination.java:94) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.PoolingHttpDestination.<init>(PoolingHttpDestination.java:25) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.http.HttpDestinationOverHTTP.<init>(HttpDestinationOverHTTP.java:32) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.http.HttpClientTransportOverHTTP.newHttpDestination(HttpClientTransportOverHTTP.java:51) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpClient.destinationFor(HttpClient.java:546) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpClient.send(HttpClient.java:579) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:728) ~[bundleFile:9.4.20.v20190813]
>
> at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:681) ~[bundleFile:9.4.20.v20190813]
>
> at org.jupnp.transport.impl.jetty.JettyStreamClientImpl$1.call(JettyStreamClientImpl.java:155) [bundleFile:?]
>
> at org.jupnp.transport.impl.jetty.JettyStreamClientImpl$1.call(JettyStreamClientImpl.java:1) [bundleFile:?]
>
> at org.jupnp.transport.spi.AbstractStreamClient$RequestWrapper.call(AbstractStreamClient.java:204) [bundleFile:?]
>
> at org.jupnp.transport.spi.AbstractStreamClient$RequestWrapper.call(AbstractStreamClient.java:1) [bundleFile:?]
>
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_222]
>
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]
>
> at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
>
> 2020-05-01 12:48:26.886 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'lgtv_state.rules'
>
> 2020-05-01 12:48:27.227 [WARN ] [me.core.service.AbstractWatchService] - Error while opening file during update: /etc/openhab2/rules/weather_icon.rules
>
> 2020-05-01 12:48:28.230 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'lgtv.rules'
>
> 2020-05-01 12:48:30.313 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'weather.rules'
>
> 2020-05-01 12:48:35.926 [INFO ] [.eclipse.smarthome.model.script.lgtv] - LG TV is: OFFLINE
>
> 2020-05-01 12:49:16.709 [INFO ] [s.internal.handler.ZonePlayerHandler] - UPnP device RINCON_7828CA16D1A801400 is present (thing sonos:One:RINCON_7828CA16D1A801400)
>
> 2020-05-01 12:49:24.335 [WARN ] [.internal.ScaleTransformationService] - Scale transform file '/etc/openhab2/transform/winds.scale' does not comply with syntax for entry : 'NULL', 'NaN'
>
> 2020-05-01 12:50:36.285 [WARN ] [.internal.ScaleTransformationService] - Scale transform file '/etc/openhab2/transform/winds.scale' does not comply with syntax for entry : 'NULL', 'NaN'
>
> 2020-05-01 12:53:59.032 [INFO ] [s.internal.handler.ZonePlayerHandler] - UPnP device RINCON_5CAAFD4520C001400 is present (thing sonos:PLAY1:RINCON_5CAAFD4520C001400)
>
> 2020-05-01 12:54:00.168 [INFO ] [s.internal.handler.ZonePlayerHandler] - UPnP device RINCON_000E58C9500401400 is present (thing sonos:PLAY1:RINCON_000E58C9500401400)
>
> 2020-05-01 12:54:01.273 [INFO ] [s.internal.handler.ZonePlayerHandler] - UPnP device RINCON_000E58C9500601400 is present (thing sonos:PLAY1:RINCON_000E58C9500601400)
>
> 2020-05-01 12:57:56.178 [ERROR] [org.jupnp.transport.spi.StreamClient] - Request: HttpRequest[GET /capability HTTP/1.1]@1ef74ee failed