openHAB 4.1 Release discussion

great!

I checked all my groups (it were only 15) which have ‘group settings’ configured, but all these groups have a correct value.
Or do you mean there is an error in the configuration of these group settings?

groupType: Switch
function:
  name: OR
  params:
    - ON
    - OFF

No, You have a rule that has a “GroupStateTrigger” configured. And that rule is missing the groupName parameter in its configuration.

Thanks! I found it. There was indeed a rule which was causing the error. In the Code tab everything was ok, but in de Design tab the group was completely missing.
My warning is solved now.

1 Like

Hello…

I have now updated my three (DEV,TEST,PROD) system every two day‘s from 4.0.4-2 to 4.1.0-1.
It looks like, that everything works as aspected. Things, items, graphs, performance, rules (we all know that 1.st time it takes longer since 4.0x) but everything works so far.

So a big, big, applause for developers, and maintainers.

Thanks for a new stabile version!!!

2 Likes

With the 4.1 release my contact items aren’t stored anymore:

2023-12-29 09:49:53.115 [DEBUG] [.influxdb.InfluxDBPersistenceService] - Connection lost, trying re-connection
2023-12-29 09:49:53.122 [DEBUG] [rnal.influx1.InfluxDB1RepositoryImpl] - database status is OK, version is 1.8.10
2023-12-29 09:49:53.916 [DEBUG] [rnal.influx1.InfluxDB1RepositoryImpl] - Writing to database failed
org.influxdb.InfluxDBException$FieldTypeConflictException: partial write: field type conflict: input field "value" on measurement "con_Fuel_Aral_Open" is type integer, already exists as type float dropped=4
	at org.influxdb.InfluxDBException.buildExceptionFromErrorMessage(InfluxDBException.java:144) ~[?:?]
	at org.influxdb.InfluxDBException.buildExceptionForErrorState(InfluxDBException.java:173) ~[?:?]
	at org.influxdb.impl.InfluxDBImpl.execute(InfluxDBImpl.java:837) ~[?:?]
	at org.influxdb.impl.InfluxDBImpl.write(InfluxDBImpl.java:470) ~[?:?]
	at org.openhab.persistence.influxdb.internal.influx1.InfluxDB1RepositoryImpl.write(InfluxDB1RepositoryImpl.java:131) ~[?:?]
	at org.openhab.persistence.influxdb.InfluxDBPersistenceService.commit(InfluxDBPersistenceService.java:286) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:840) [?:?]
2023-12-29 09:49:53.919 [WARN ] [.influxdb.InfluxDBPersistenceService] - Re-queuing 46617 elements, failed to write batch.

because of

You migrated from pre 3.X to 4.1 ?
see InfluxDB Error "field type conflict: input field value on measurement is type integer, already exists as type float dropped=1"

I’m getting log spams like this with sitemaps:

2023-12-29 15:14:38.665 [WARN ] [omponents.UIComponentSitemapProvider] - Syntax error in labelcolor rule condition '' for widget Text
2023-12-29 15:14:50.654 [WARN ] [omponents.UIComponentSitemapProvider] - Syntax error in valuecolor rule condition '' for widget Text

It seems that any “default”, or unqualified colour being added into sitemap is causing it to spam every time the sitemap is either loaded or saved.

Example failing sitemap:

sitemap page_c6c037636f label="New Sitemap" {
    Text item=KitchenLights label="Lights are: [%s]" valuecolor=["red"]
}

In this situation it will error, but this one doesn’t:

sitemap page_c6c037636f label="New Sitemap" {
    Text item=KitchenLights label="Lights are: [%s]" valuecolor=[KitchenLights ==ON="red"]
}

There are no changes to the documentation that indicate that this is no longer a supported scenario, and indeed the sitemap colouring still works as expected, just I’m getting log growth.

Looks like a bug in the sitemap generator of Main UI. Having a default color as condition is valid.

Hi!
Since OH4.1 I have some strange calculations in DSL rules with temperatures.
It seems temperature calculations do not respect anymore what is indicated here

In particular, calculating an average temperature with (5|°C + 10|°C) / 2 does not work anymore (I don’t obtain 7.5°C).

what is the workaround to be able to multiply or divide Celsius temperature with 0°C as the reference point (and not 0K as it seems to be now) ?

Thank you !

Dear users,

This ‘Release discussion’ thread is to exclusively discuss (potential) issues that were introduced in OH 4.1 since the last release OH 4.0.
It’s also about software issues in openHAB itself, it is not about migration in general and not about (self-made) rules or other issues that are individual to your setup.

Please double check against these questions before posting here and mind general posting rules, too.
If in doubt, open your own thread to ask and discuss to find out if it’s really an issue caused by the latest software or if it could be an individual issue, in case of the latter please stay with your own thread.

I’m sorry to remind of this. However, if we all don’t come up with a fair amount of discipline this thread is quickly becoming an unreadable mess.

Thank you !

3 Likes

Ok, I’m sorry but reading the very first post of this thread I thought I was in the right thread

This topic can be used to discuss problems/experiences/questions on the openHAB 4.1 release

The experience I described is related to a change introduced in this specific release

and so the question I asked is also related to this specific release. The change that was done is likely to break rules of many users and the change has not been documented.

I perceived your answer as rude. I’m just a standard user of openHAB, I’m not familiar with the exact policy of the community forum.

8 Likes

I just upgraded from OH 4.0.3 to OH 4.1

I’m getting follow error in the openhab.log

Can’t connect to karaf.

2023-12-29 17:19:17.596 [INFO ] [internal.service.FeaturesServiceImpl] - Adding features: system/[4.4.4,4.4.4],feature/[4.4.4,4.4.4],deployer/[4.4.4,4.4.4],diagnostic/[4.4.4,4.4.4],bundle/[4.4.4,4.4.4],ssh/[4.4.4,4.4.4],log/[4.4.4,4.4.4],eventadmin/[4.4.4,4.4.4],openhab-runtime-base/[4.1.0,4.1.0],instance/[4.4.4,4.4.4],config/[4.4.4,4.4.4],framework/[4.4.4,4.4.4],shell/[4.4.4,4.4.4],kar/[4.4.4,4.4.4],openhab-runtime-ui/[4.1.0,4.1.0],service/[4.4.4,4.4.4],jaas/[4.4.4,4.4.4],package/[4.4.4,4.4.4]
2023-12-29 17:19:20.271 [ERROR] [ternal.service.BootFeaturesInstaller] - Error installing boot features
org.apache.karaf.features.internal.util.MultiException: Error:
        Error downloading mvn:org.apache.karaf.wrapper/org.apache.karaf.wrapper.core/4.4.4
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:91) ~[?:?]
        at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72) ~[?:?]
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:474) ~[?:?]
        at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:469) ~[?:?]
        at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:223) ~[?:?]
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:399) ~[?:?]
        at org.apache.karaf.features.internal.service.Deployer.handlePrerequisites(Deployer.java:1121) ~[?:?]
        at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:394) ~[?:?]
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1069) ~[?:?]
        at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:1004) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
        at java.lang.Thread.run(Thread.java:833) [?:?]
        Suppressed: java.io.IOException: Error downloading mvn:org.apache.karaf.wrapper/org.apache.karaf.wrapper.core/4.4.4
                at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:77) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
                at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
                at java.lang.Thread.run(Thread.java:833) [?:?]
        Caused by: java.io.IOException: Error resolving artifact org.apache.karaf.wrapper:org.apache.karaf.wrapper.core:jar:4.4.4: [Could not find artifact org.apache.karaf.wrapper:org.apache.karaf.wrapper.core:jar:4.4.4 in openhab (https://openhab.jfrog.io/openhab/libs-release/)]

No, not really. I had to reinstall my server which was running in 4.0x and I installed 4.1
Unfortunately I had installed first the last 3.x version and then upgraded to 4.1. Afterwards I restored the Influxdb (which should have been with data from 4.0).
But thanks for the link, I had overlooked it. I will restore these values again with type conversation.

I don’t know if it’s the right thread but I didn’t find a better one.
Just wanted to say: THANK YOU! Thanks to all contributors of this great project!

I updated from 3.something to 4.1 yesterday and everything works perfectly!
(Had a minor issue, that was solved here: Openhab.service: Failed to locate executable /usr/bin/rm: No such file or directory - #2 by jpalo). Such a flawless upgrade is much work behind the scenes. Great work you’re all doing here.

Happy New Year!
Harry

4 Likes

You are, correct, this is not working anymore that way. Temperature calculations had loads of problems and a compromise had to be made to solve most. If you add unit values you need to make sure the second argument is a relative value, and for temperatures, that can only be in Kelvin.

I have not yet gone to 4.1, still on 4.1M5 and have this working DSL code to raise or lower a setpoint by 1 degree F. (Had @rossko57 help in the setup) Do I need to change the degree to .55555 K? My device only accepts even degrees, so precision could be an issue also? Suggestion for how this is supposed to work now?

rule "Furnace_Optimization"
when
    Item UpstairsThermostat21_ThermostatOperatingState changed
then
    // If upstairs is heating and main is in heating mode raise setpoint 1 °F, once upstairs is off reduce 1 °F
    var upstate = UpstairsThermostat21_ThermostatOperatingState.state as Number
    var mainmode = MainThermostat14_ThermostatMode.state as Number
    var mainsetpointnow = (MainThermostat14_SetpointHeating.state as QuantityType<Temperature>).toUnit("°F")
    if( upstate == 1 && mainmode == 1) {
      var mainsetpointnew = mainsetpointnow + 1|°F
      Thread::sleep(1500)
      MainThermostat14_SetpointHeating.sendCommand(mainsetpointnew as Number)
      }
    else{
        if( upstate == 0 && mainmode == 1) {
          var mainsetpointnew = mainsetpointnow - 1|°F
          Thread::sleep(1500)
          MainThermostat14_SetpointHeating.sendCommand(mainsetpointnew as Number )
        }
    }   
end

That should still work. I was wrong in the previous comment. It is the division that does not work anymore as expected. If you divide, it is assuming absolute values now.

1 Like

Hi,

running into an issue with the upgrade from 4.0.x to 4.1. Somehow the entire website no longer works at all. I also see these warnings when booting the system:

2023-12-31 22:12:08.953 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:08.955 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:08.955 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:08.974 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:08.975 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:08.975 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:09.807 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.817 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.848 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.850 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.853 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.853 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.859 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:09.866 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:09.866 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:09.866 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.866 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:09.873 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:09.879 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:09.886 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:11.861 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:11.865 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:11.861 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:11.865 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:11.871 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:11.876 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:11.876 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:11.879 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:11.881 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:11.897 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:14.143 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:14.143 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:14.147 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:14.155 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:14.157 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:15.910 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:15.911 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:15.915 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:15.918 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:15.918 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:15.924 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/events's Observer
2023-12-31 22:12:15.934 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:15.935 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:15.936 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer
2023-12-31 22:12:15.939 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://homecontrol:8080/rest/addons/binding-broadlinkthermostat's Observer

and there is also this line which I don’t understand:

2023-12-31 22:13:05.578 [WARN ] [ty.util.ssl.SslContextFactory.config] - Trusting all certificates configured for Client@e3a3d[provider=null,keyStore=null,trustStore=null]
2023-12-31 22:13:05.580 [WARN ] [ty.util.ssl.SslContextFactory.config] - No Client EndPointIdentificationAlgorithm configured for Client@e3a3d[provider=null,keyStore=null,trustStore=null]

Why is there no website on localhost:8080?

Update: it seems to be that the new website does not work in firefox …

Issues using Firefox have been reported and a fix is proposed.

2 Likes