openHAB 3.3 Release discussion

This topic can be used to discuss problems/experiences/questions on the openHAB 3.3 release as announced in openHAB 3.3 is here! .

6 Likes

All right everyone, let’s do this!
Time to upgrade!
(Trembles of fear)

Edit: okay update completed and all things are online. Cool!
I did notice that my node red instance can no longer see the states from the openHAB controller node.
If I update my credentials the states are updated once, but not afterwards. I’ve been using the openhab2-controller node. Anyone has any hints on this behavior?

Edit2: thinking it was because I was using a node for openhab2, I grabbed one with openhab3 compatibility. Same behavior, Node can list the items, I can see them, but I’m getting no updates from them, or rather, I seem to get the latest state, but no changes afterwards.
Everything is running in docker containers, issue started immediately after updating from M5 to the 3.3 version.

2 Likes

Hi,

I updated to OH 3.3.0 now I can’t access ITEM State thru API anymore.
I tried the following URL in Browser (CHROME):
http://192.168.10.150:8080/rest/items/i_TestITEM/state

with version 3.2.0 I was able to get the state. Now I receive:

Request all for a item works with:
http://192.168.10.150:8080/rest/items/i_pool_temperaturtimestamp

curl on Linux works also:
curl http://192.168.10.150:8080/rest/items/i_pool_temperaturtimestamp/state
2022-06-20T08:19:09.997293+0200

But I only need the state as output in Browser (Chrome) Window…

Does anyone has an idea what I could try?

I have the same issue as @Pedro_Liberal, openhab items in node-red just have updates on deploy, events node is working tho.

@helmar74 try using postman, you need to pass credentials to be able to get the state (at least I tested on Postman with credentials and it worked perfectly)

It is working on linux with curl, without credentials. It looks like the API has changed and the /state URL isn’t workin anymore in browser.
I also can get all values in a request without sending credentials…

I tested postman, that worked, but not in Chrome… Strange

So far a perfectly flawless upgrade (347 items from 46 things from 6 bindings, everything on Raspi 3 on Docker).

Thank you guys for all your hard effort! :slight_smile:

3 Likes

Fixed it with jquery:
https://community.openhab.org/t/dwd-unwetter-binding-beschreibung-long-text-idea/103458

Not nice, but at least working

Updated from 3.2.0 to 3.3.0.
Everything fine so far.
Only the Zwave Controller (Serial Device) had to be changed:

Had to change ZWAVE Serial Controller:
Thing code in error condition:
UID: zwave:serial_zstick:020e4758
label: Z-Wave Serial Controller
thingTypeUID: zwave:serial_zstick
configuration:
controller_softreset: 0
security_networkkey: 2D DD 89 81 46 E4 FF FF E2 AB 26 B4 05 FE 31 CF
security_inclusionmode: 0
controller_suc: false
controller_sisnode: 1
controller_maxawakeperiod: 10
controller_sync: 0
controller_master: true
inclusion_mode: 2
port: /dev/ttyACM0
controller_wakeupperiod: 3600
controller_exclude: 0
heal_time: 2
controller_inclusiontimeout: 30
controller_hardreset: 0
location: Flur EG

Changed to:
UID: zwave:serial_zstick:020e4758
label: Z-Wave Serial Controller
thingTypeUID: zwave:serial_zstick
configuration:
controller_softreset: false
security_networkkey: 2D DD 89 81 46 E4 FF FF E2 AB 26 B4 05 FE 31 CF
security_inclusionmode: 0
controller_suc: false
controller_sisnode: 1
controller_maxawakeperiod: 10
controller_sync: false
controller_master: true
inclusion_mode: 2
port: /dev/ttyACM0
controller_wakeupperiod: 3600
controller_exclude: false
heal_time: 2
controller_inclusiontimeout: 30
controller_hardreset: false
location: Flur EG

Changed several Decimal Values (0) to Boolean (false)

Error Message was:
2022-06-27 19:24:51.657 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘zwave:serial_zstick:020e4758’ changed from UNINITIALIZED (HANDLER_MISSING_ERROR) to UNINITIALIZED (HANDLER_CONFIGURATION_PENDING): {controller_softreset=Der Datentyp des Wertes (class java.math.BigDecimal) stimmt nicht mit der Typen-Deklaration (BOOLEAN) in der Konfigurationsbeschreibung überein., controller_sync=Der Datentyp des Wertes (class java.math.BigDecimal) stimmt nicht mit der Typen-Deklaration (BOOLEAN) in der Konfigurationsbeschreibung überein., controller_exclude=Der Datentyp des Wertes (class java.math.BigDecimal) stimmt nicht mit der Typen-Deklaration (BOOLEAN) in der Konfigurationsbeschreibung
überein., controller_hardreset=Der Datentyp des Wertes (class java.math.BigDecimal) stimmt nicht mit der Typen-Deklaration (BOOLEAN) in der Konfigurationsbeschreibung überein.}

The reason probably is that the browser requests a content-type that is not available. Safari adds a Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 header and none of these can be provided by the REST API. That’s why a “400 Bad Request” is returned. This was not properly checked before (in fact the header was ignored), but is now handled correctly to ensure that binary data can be provided in the correct format ([rest] Allow binary MediaType for RawType item states by J-N-K · Pull Request #2825 · openhab/openhab-core · GitHub). The correct content-type for the request is text/plain. You have to add that to your request or omit the Accept header.

1 Like

Can you please Provide a example URL?
Best would be for Chrome :wink:

I’m not aware of a possibility to set headers for normal requests in browsers. It should be possible with tools like Postman or Paw (on Mac) and of course with JavaScript.

Edit: It seems for Chrome and Firefox there are tools that can achieve it: api - View and Set HTTP headers for Safari/Chrome - Stack Overflow

Issue: my binding JAR files (for test versions of bindings) that I had manually dropped in the Addons folder under v3.2 were not automatically picked up (i.e. not installed) during the upgrade from v3.2 to v3.3.

Work-around: I had to delete these JAR files and then drop them again in the Addons folder, which caused OH to pick them up in the normal way.

EDIT: issue created…

1 Like

Google TTS
3.2.0 → 3.3.0 Missing service configuration
Works after version revert (docker).

1 Like

Had big hope that the KEBA Binding problem will solved with 3.3, but it is still the same. All other values are set, but power stays at UNDEF. I activated the DEBUG Level and got for all reports the complete values. So the binding still have a problem, when the item is defined over a file. Setting the same over the UI, works. Debug:

[DEBUG] [internal.handler.KeContactTransceiver] - Sending 'report 1' on the channel '/192.168.***.***:39819'->'/192.168.***.***:7090'
[DEBUG] [internal.handler.KeContactTransceiver] - Received {
"ID": "1",
"Product": "KC-P30-xxxxxxxx-M0R",
"Serial": „xxxxxxxx“,
"Firmware":"P30 v 3.10.36 (211117-093932)",
"COM-module": 1,
"Backend": 0,
"timeQ": 3,
"DIP-Sw1": "0x22",
"DIP-Sw2": "0x00",
"Sec": 6905050
}
 from /192.168.***.***:7090 on the transceiver listener port
[DEBUG] [internal.handler.KeContactTransceiver] - Sending 'report 2' on the channel '/192.168.***.***:39819'->'/192.168.***.***:7090'
[DEBUG] [internal.handler.KeContactTransceiver] - Received {
"ID": "2",
"State": 2,
"Error1": 0,
"Error2": 0,
"Plug": 7,
"AuthON": 1,
"Authreq": 0,
"Enable sys": 1,
"Enable user": 1,
"Max curr": 16000,
"Max curr %": 266,
"Curr HW": 16000,
"Curr user": 16000,
"Curr FS": 0,
"Tmo FS": 0,
"Curr timer": 0,
"Tmo CT": 0,
"Setenergy": 0,
"Output": 0,
"Input": 0,
"Serial": „xxxxxxxx“,
"Sec": 6905053
}
 from /192.168.***.***:7090 on the transceiver listener port
[DEBUG] [internal.handler.KeContactTransceiver] - Sending 'report 3' on the channel '/192.168.***.***:39819'->'/192.168.***.***:7090'
[DEBUG] [internal.handler.KeContactTransceiver] - Received {
"ID": "3",
"U1": 235,
"U2": 235,
"U3": 231,
"I1": 0,
"I2": 0,
"I3": 0,
"P": 0,
"PF": 0,
"E pres": 68653,
"E total": 29752553,
"Serial": „xxxxxxxx“,
"Sec": 6905056
}
 from /192.168.***.***:7090 on the transceiver listener port


Number:ElectricCurrent      keba_p30_x_maxpresetcurrent         "Maximaler Versorgungsstrom [%.3f A]"                      <energy>     (gKEBA)    ["Status", "Current"]         {channel="keba:kecontact:1:maxpresetcurrent"}
Number:Power                keba_p30_x_power                    "Von der Ladestation gelieferte Wirkleistung [%.1f Wh]"    <energy>     (gKEBA)    ["Measurement", "Power"]      {channel="keba:kecontact:1:power"}
1 Like

Updated from 3.2 to 3.3 in openhabian today and got following error, at startup:


[WARN ] [ore.common.registry.AbstractRegistry] - Cannot add "SwitchItem" with key "0_test": The specified name of the item '0_test' is not valid!

In json.db items File I can find the entry 0_test. I tried to delete the entry in srv/openhab-userdata/jsondb/org.openhab.core.items.Item.json
But the file is read only so I can’t fix.
Items are not loaded and startup is not sucessful anymore. Any idea how I could get writing rights on that file to fix the issue?
I think I created that item long time ago using the GUI but never had any problems with that…

1 Like

Use the API Explorer to delete the item.

1 Like

Hi,

after upgrading from 3.2 to 3.3 the UI doesn’t show most of the items values anymore.

Problem seems to be that the URL http://192.168.xxx.yyy:8080/rest/events/states/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee returns all items, but one with name “undefined”

In the log file the request looks like this:

2022-06-28 00:29:10.423 [WARN ] [e.internal.SseItemStatesEventBuilder] - Attempting to send a state update of an item which doesn't exist: undefined
2022-06-28 00:29:10.440 [ERROR] [internal.JSONResponseExceptionMapper] - Unexpected exception occurred while processing REST request.
java.lang.IllegalArgumentException: Last segment must not be blank.
        at org.openhab.core.common.AbstractUID.<init>(AbstractUID.java:79) ~[?:?]
        at org.openhab.core.common.AbstractUID.<init>(AbstractUID.java:59) ~[?:?]
        at org.openhab.core.thing.UID.<init>(UID.java:57) ~[?:?]
        at org.openhab.core.thing.ThingUID.<init>(ThingUID.java:139) ~[?:?]
        at org.openhab.core.thing.ChannelUID.getThingUID(ChannelUID.java:150) ~[?:?]
        at org.openhab.core.thing.internal.ThingRegistryImpl.getChannel(ThingRegistryImpl.java:80) ~[?:?]

But how can I identify the item which causes this issue. Problem is, that I can’t the items settings page ether (http://192.168.xxx.yyy:8080/settings/items/). I looked into all items files, but can’t spot an issue.

1 Like

Upgraded from 3.2.0 to 3.3.0 on Docker for Unraid. Worked well except Rest API doesn’t work for all items. Using node-red openhab2 or openhab3 controller, they query the status on initial connection but never receive any event, let it be update, statechange, command, etc. Because of that, all my rules aren’t working.

Same with Rest API command, they don’t work. I downgraded to 3.2.0 until this is fixed.

Also, any items I had ignore has come back.

edit: Also, the android app non stop say that notification are not available because of http error 500

The error message is related to a thing UID which has less than three segments. Can you check if you have such a thing?