ABB/Busch-Jäger free@home - official REST api

Ok, thx for the reply. Regarding the update interval - it depends on the SysAP Messages. I think the weather station temperature is more granular than the RTs. Nevertheless my charts look more harmonized. Based your feedback and ML1982s I pull requested it to the main branch. After review it should be officially available in the next OH build.

Regarding the switch actor - in my demo environment sync between OH and SysAP works fine till I set a switch in OH. From this point on the SysAP update message has no information about the switch actor. (Setting OH->SysAP still works). I’m not sure of this is fixable from binding site or if it is a SysAP Bug :frowning:


Legend

The values were updated frequently. Unfortunately, after the firmware update of the Free@Home SysApp, the issues began.

@JankKeks I’m testing your latest version, but I’m struggling with the analysis. When I click on “Analyze,” I get a black screen with no graph. I’m going to setup my testsystem from scratch.

@JankKeks / @rover1982 i’ve got another Problem with the newest version providet by @JankKeks. It seems, that the aborts, i’ve got only a few devices after a scan, only a few devices are discovered.

After a second try, the scan seems to be complete

these are the logs from the first attempt:

13:12:54.797	INFO	org.openhab.core.config.discovery.internal.PersistentInbox	Added new thing 'freeathome:device:0dbcc9254f:ABB2D5CF3751' to inbox.
13:12:54.798	INFO	openhab.event.InboxAddedEvent	Discovery Result with UID 'freeathome:device:0dbcc9254f:ABB2D5CF3751' has been added.
13:12:54.798	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Thing discovered - DeviceId: ABB2D5CF3751 - Device label: Heizungsaktor2 6-fach
13:12:55.186	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceDescription	Detecting device features - device id: BEED6E6A0025 - device label: Balkon Boden 3
13:12:55.187	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceChannel	Unknown channel found - Channel FID: 2e
13:12:55.188	INFO	org.openhab.core.config.discovery.internal.PersistentInbox	Added new thing 'freeathome:device:0dbcc9254f:BEED6E6A0025' to inbox.
13:12:55.188	INFO	openhab.event.InboxAddedEvent	Discovery Result with UID 'freeathome:device:0dbcc9254f:BEED6E6A0025' has been added.
13:12:55.188	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Thing discovered - DeviceId: BEED6E6A0025 - Device label: Balkon Boden 3
13:12:55.489	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceDescription	Detecting device features - device id: BEED6E6A0024 - device label: Balkon Oben
13:12:55.490	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceChannel	Unknown channel found - Channel FID: 2e
13:12:55.490	INFO	org.openhab.core.config.discovery.internal.PersistentInbox	Added new thing 'freeathome:device:0dbcc9254f:BEED6E6A0024' to inbox.
13:12:55.490	INFO	openhab.event.InboxAddedEvent	Discovery Result with UID 'freeathome:device:0dbcc9254f:BEED6E6A0024' has been added.
13:12:55.491	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Thing discovered - DeviceId: BEED6E6A0024 - Device label: Balkon Oben
13:12:55.783	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceDescription	Detecting device features - device id: BEED6E6A0027 - device label: Balkon Boden 5
13:12:55.783	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceChannel	Unknown channel found - Channel FID: 2e
13:12:55.789	INFO	org.openhab.core.config.discovery.internal.PersistentInbox	Added new thing 'freeathome:device:0dbcc9254f:BEED6E6A0027' to inbox.
13:12:55.790	INFO	openhab.event.InboxAddedEvent	Discovery Result with UID 'freeathome:device:0dbcc9254f:BEED6E6A0027' has been added.
13:12:55.790	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Thing discovered - DeviceId: BEED6E6A0027 - Device label: Balkon Boden 5
13:12:56.088	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceDescription	Detecting device features - device id: BEED6E6A0026 - device label: Balkon Boden 4
13:12:56.088	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceChannel	Unknown channel found - Channel FID: 2e
13:12:56.094	INFO	org.openhab.core.config.discovery.internal.PersistentInbox	Added new thing 'freeathome:device:0dbcc9254f:BEED6E6A0026' to inbox.
13:12:56.095	INFO	openhab.event.InboxAddedEvent	Discovery Result with UID 'freeathome:device:0dbcc9254f:BEED6E6A0026' has been added.
13:12:56.095	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Thing discovered - DeviceId: BEED6E6A0026 - Device label: Balkon Boden 4
13:12:56.384	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceDescription	Detecting device features - device id: BEED6E6A0021 - device label: Esstisch 3
13:12:56.388	DEBUG	org.openhab.binding.freeathome.internal.datamodel.FreeAtHomeDeviceChannel	Unknown channel found - Channel FID: 2e
13:12:56.388	INFO	org.openhab.core.config.discovery.internal.PersistentInbox	Added new thing 'freeathome:device:0dbcc9254f:BEED6E6A0021' to inbox.
13:12:56.389	INFO	openhab.event.InboxAddedEvent	Discovery Result with UID 'freeathome:device:0dbcc9254f:BEED6E6A0021' has been added.
13:12:56.389	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Thing discovered - DeviceId: BEED6E6A0021 - Device label: Esstisch 3
13:12:56.715	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Sending keep-alive message 1734955976715
13:12:56.867	DEBUG	org.openhab.binding.freeathome.internal.FreeAtHomeDiscoveryService	Communication error in device discovery with the bridge: free@home Gateway
13:12:56.879	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket Closed: [ 1006 ] Disconnected

@rover1982 Do you encounter log messages like these?

2024-12-27 08:56:08.993 [DEBUG] [rnal.handler.FreeAtHomeBridgeHandler] - Sending keep-alive message 1735286168993
2024-12-27 08:56:09.186 [DEBUG] [rnal.handler.FreeAtHomeBridgeHandler] - Socket Closed: [ 1006 ] Disconnected

In my setup, communication with switch actors works as expected. However, after each “keep-alive” message, I experience a disconnect. Occasionally, the reconnect fails, and in such cases, no more messages are received from Free@Home. Despite this, OpenHAB can still send commands to Free@Home.

an how many channels do you have for the device? Two, like this?

Update 31.12.2024:
Hi @rover1982

Here’s the data from my heating actuators. Could you share a chart that combines the factuating-value-heating and the measured temperature?

Currently, I’m using the version provided by @JankKeks , along with some additional bug fixes: GitHub Link to @JankKeks Fork.

Additionally, I’ve set BRIDGE_WEBSOCKET_KEEPALIVE to a value of several months. Without this change, the WebSocket connection closes after 90 seconds, right after the keep-alive message. This causes an issue where I stop receiving updates from the Busch-Jäger SysApp, although I can still send commands from OpenHAB to Busch-Jäger. Occasionally, the connection reestablishes, and OpenHAB starts receiving updates again.

Here the jar file with BRIDGE_WEBSOCKET_KEEPALIVE set to one year:
org.openhab.binding.freeathome-4.3.1-SNAPSHOT.jar.txt (94.9 KB)

Hi :wink:
Unfortunally the posted addon does not show up in my binding list. And yes, i removed the txt ending of the file :wink:

Yes, my switches also have two channels. But the second probably belongs to the build in sensor(?)…

Started recording the factuating heating value today.

By the way: the new binding wich was released with the main distribution has still the same issue with the switch actuators….

No, actually the first one is the sensor, and the second one is the actuator.

  • ch000 (Sensor): Only read access in OpenHAB is relevant (e.g., to detect double clicks).
  • ch003 (Actuator): Both read and write access make sense here.

Hello all,

I am very happy that other free@home enthusiasts were able to fix issues as long as I was not able to participate in the last months (sorry that I was lost, and a big Thank to @JankKeks)

@JankKeks @ML1982:
It might not be needed to send the “keep-alive” with the latest SysAp version, however this message was necessary in my setup with the older SysAp.
Threrefore the best would be (with keeping the backward compatibility) to add a configuration switch to the SysAp OpenHAB Thing to activate and deactivate the “keep-alive” message

This would be a smarter solution to be able to handle the keep-alive message. (your opinion?)

I will update to the latest SysAp and I will check also on my side.

My other question:
I will look into the older issues, which might not be fixed, but is a wish or any feature or device type which shall be implemented in the next version.

Glad to see you here again @UhA :slight_smile:
@ML1982 did already fixed some more stuff, but we need to open the pull requests to merge it into the official repo.
I’m currently waiting on him to sign the commits, afterwards I’ll PR the latest stuff.

Regarding the Keep alive - I red, that it could be required to implement ping/pong for keeping the connection alive. If you have newer information it would be helpful.

no, i didn’t do any futher work on the binding. If I find some Time the next days I will try to sign the commit.

My observation was regarding WebSocket communication between SysAp and OpenHAB, that the SysAP is closing the communication channel if a keep alive message is not sent.

If the keep-alive message is not sent the values are not updating on the OpenHAB side, but the HTTP communication is still possible and the OpenHAB is able to set new values.

However this observation is based on the (very old) 3.1.1 version.

Even the newer SysAp version is not needing the keep-alive It shall be kept as an option that the binding is able to operate the older SysAp as well.

however I will update my SysAp as well.

1 Like

Hi and welcome back :wink:

Happily looking forward to get the bugs fixed- My whole house is running on this openhab/freeathome combi :wink:

I also use the free@home tenton switch with co2 and voc sensors- an implementation would be great.

Hi,

The VOC and CO2 sensor shall work in the current version as virtual device. Therefore the implementation as real device shall be simple.

Also the Tenton device shall not be difficult as well.

I can implement them, if you send me a Swagger json output of these devices.

Hope thats the right segment :wink:


{
  "00000000-0000-0000-0000-000000000000": {
    "devices": {
      "ABB7F631E5DB": {
        "deviceReboots": "11",
        "floor": "01",
        "room": "01",
        "interface": "TP",
        "deviceId": "102A",
        "displayName": "Hauptschalter Küche",
        "unresponsive": false,
        "unresponsiveCounter": 0,
        "defect": false,
        "channels": {
          "ch0005": {
            "floor": "01",
            "room": "01",
            "displayName": "Hauptschalter Küche",
            "functionID": "101f",
            "inputs": {
              "idp0000": {
                "pairingID": 256,
                "value": "1"
              },
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0002": {
                "pairingID": 257,
                "value": ""
              },
              "idp0003": {
                "pairingID": 273,
                "value": ""
              },
              "idp0004": {
                "pairingID": 261,
                "value": ""
              },
              "idp0005": {
                "pairingID": 262,
                "value": ""
              },
              "idp0006": {
                "pairingID": 278,
                "value": ""
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              },
              "idp0008": {
                "pairingID": 272,
                "value": "100"
              },
              "idp0009": {
                "pairingID": 277,
                "value": ""
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 1,
                "value": "1"
              },
              "odp0001": {
                "pairingID": 4,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 16,
                "value": "0"
              },
              "odp0005": {
                "pairingID": 17,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "2",
              "par0190": "7",
              "par0191": "8",
              "par0007": "1"
            }
          },
          "ch0006": {
            "floor": "01",
            "room": "01",
            "displayName": "Hauptschalter Küche",
            "functionID": "101f",
            "inputs": {
              "idp0000": {
                "pairingID": 256,
                "value": "0"
              },
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0002": {
                "pairingID": 257,
                "value": ""
              },
              "idp0003": {
                "pairingID": 273,
                "value": ""
              },
              "idp0004": {
                "pairingID": 261,
                "value": ""
              },
              "idp0005": {
                "pairingID": 262,
                "value": ""
              },
              "idp0006": {
                "pairingID": 278,
                "value": ""
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              },
              "idp0008": {
                "pairingID": 272,
                "value": "0"
              },
              "idp0009": {
                "pairingID": 277,
                "value": ""
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 1,
                "value": "0"
              },
              "odp0001": {
                "pairingID": 4,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 16,
                "value": "0"
              },
              "odp0005": {
                "pairingID": 17,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "2",
              "par0190": "7",
              "par0191": "8",
              "par0007": "1"
            }
          },
          "ch0008": {
            "floor": "01",
            "room": "01",
            "displayName": "Zweiter Taster links",
            "functionID": "101f",
            "inputs": {
              "idp0000": {
                "pairingID": 256,
                "value": "1"
              },
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0002": {
                "pairingID": 257,
                "value": ""
              },
              "idp0003": {
                "pairingID": 273,
                "value": ""
              },
              "idp0004": {
                "pairingID": 261,
                "value": ""
              },
              "idp0005": {
                "pairingID": 262,
                "value": ""
              },
              "idp0006": {
                "pairingID": 278,
                "value": ""
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              },
              "idp0008": {
                "pairingID": 272,
                "value": "60"
              },
              "idp0009": {
                "pairingID": 277,
                "value": ""
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 1,
                "value": "1"
              },
              "odp0001": {
                "pairingID": 4,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 16,
                "value": "8"
              },
              "odp0005": {
                "pairingID": 17,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "2",
              "par0190": "7",
              "par0191": "8",
              "par0007": "1"
            }
          },
          "ch0009": {
            "floor": "01",
            "room": "01",
            "displayName": "Zweiter Taster rechts",
            "functionID": "101f",
            "inputs": {
              "idp0000": {
                "pairingID": 256,
                "value": "1"
              },
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0002": {
                "pairingID": 257,
                "value": ""
              },
              "idp0003": {
                "pairingID": 273,
                "value": ""
              },
              "idp0004": {
                "pairingID": 261,
                "value": ""
              },
              "idp0005": {
                "pairingID": 262,
                "value": ""
              },
              "idp0006": {
                "pairingID": 278,
                "value": ""
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              },
              "idp0008": {
                "pairingID": 272,
                "value": "2"
              },
              "idp0009": {
                "pairingID": 277,
                "value": ""
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 1,
                "value": "0"
              },
              "odp0001": {
                "pairingID": 4,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 16,
                "value": "8"
              },
              "odp0005": {
                "pairingID": 17,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "2",
              "par0190": "7",
              "par0191": "8",
              "par0007": "1"
            }
          },
          "ch000d": {
            "floor": "01",
            "room": "01",
            "displayName": "Hauptschalter Küche",
            "functionID": "1187",
            "inputs": {
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp000c": {
                "pairingID": 51,
                "value": "23"
              },
              "idp000d": {
                "pairingID": 52,
                "value": "2"
              }
            },
            "outputs": {
              "odp0012": {
                "pairingID": 71,
                "value": "2"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "3",
              "par0007": "1"
            }
          },
          "ch0011": {
            "floor": "01",
            "room": "01",
            "displayName": "Vierter Taster links",
            "functionID": "103f",
            "inputs": {
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              }
            },
            "outputs": {
              "odp0001": {
                "pairingID": 4,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "2",
              "par0007": "1",
              "par0024": "2"
            }
          },
          "ch0012": {
            "floor": "01",
            "room": "01",
            "displayName": "Vierter Taster rechts",
            "functionID": "103f",
            "inputs": {
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              }
            },
            "outputs": {
              "odp0001": {
                "pairingID": 4,
                "value": "7"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "6",
              "par0007": "1",
              "par0024": "2"
            }
          },
          "ch0002": {
            "floor": "01",
            "room": "01",
            "displayName": "Hauptschalter Küche",
            "functionID": "103f",
            "inputs": {
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              }
            },
            "outputs": {
              "odp0001": {
                "pairingID": 4,
                "value": "1"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "5",
              "par0007": "1",
              "par0024": "2"
            }
          },
          "ch0003": {
            "floor": "01",
            "room": "01",
            "displayName": "Hauptschalter Küche",
            "functionID": "103f",
            "inputs": {
              "idp0001": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0007": {
                "pairingID": 359,
                "value": ""
              }
            },
            "outputs": {
              "odp0001": {
                "pairingID": 4,
                "value": "1"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "100",
              "par017e": "5",
              "par0007": "1",
              "par0024": "2"
            }
          },
          "ch0014": {
            "floor": "01",
            "room": "01",
            "displayName": "Raumtemperaturregler",
            "functionID": "23",
            "inputs": {
              "idp0000": {
                "pairingID": 305,
                "value": "55"
              },
              "idp0001": {
                "pairingID": 306,
                "value": ""
              },
              "idp0002": {
                "pairingID": 321,
                "value": ""
              },
              "idp0003": {
                "pairingID": 322,
                "value": ""
              },
              "idp0004": {
                "pairingID": 273,
                "value": "0"
              },
              "idp0005": {
                "pairingID": 335,
                "value": ""
              },
              "idp0006": {
                "pairingID": 336,
                "value": ""
              },
              "idp0007": {
                "pairingID": 57,
                "value": "2.5"
              },
              "idp0008": {
                "pairingID": 58,
                "value": ""
              },
              "idp0009": {
                "pairingID": 66,
                "value": ""
              },
              "idp000a": {
                "pairingID": 61,
                "value": ""
              },
              "idp000b": {
                "pairingID": 71,
                "value": "2"
              },
              "idp000c": {
                "pairingID": 69,
                "value": ""
              },
              "idp000d": {
                "pairingID": 70,
                "value": ""
              },
              "idp000e": {
                "pairingID": 359,
                "value": ""
              },
              "idp000f": {
                "pairingID": 7,
                "value": ""
              },
              "idp0010": {
                "pairingID": 4,
                "value": ""
              },
              "idp0011": {
                "pairingID": 53,
                "value": ""
              },
              "idp0012": {
                "pairingID": 320,
                "value": ""
              },
              "idp0013": {
                "pairingID": 18,
                "value": "1"
              },
              "idp0014": {
                "pairingID": 304,
                "value": "22.52"
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 48,
                "value": "55"
              },
              "odp0001": {
                "pairingID": 50,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 323,
                "value": "0"
              },
              "odp0003": {
                "pairingID": 324,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 51,
                "value": "23"
              },
              "odp0005": {
                "pairingID": 52,
                "value": "2"
              },
              "odp0006": {
                "pairingID": 56,
                "value": "1"
              },
              "odp0007": {
                "pairingID": 54,
                "value": "33"
              },
              "odp0008": {
                "pairingID": 62,
                "value": "7"
              },
              "odp0009": {
                "pairingID": 273,
                "value": "0"
              },
              "odp000a": {
                "pairingID": 360,
                "value": "0"
              },
              "odp000b": {
                "pairingID": 304,
                "value": "22.84"
              },
              "odp000c": {
                "pairingID": 331,
                "value": "1"
              },
              "odp000d": {
                "pairingID": 332,
                "value": "0"
              },
              "odp000e": {
                "pairingID": 333,
                "value": "55"
              },
              "odp000f": {
                "pairingID": 334,
                "value": "0"
              }
            },
            "parameters": {
              "par0019": "3",
              "par001b": "0",
              "par0018": "21",
              "par001a": "1800",
              "par001c": "60",
              "par0020": "0",
              "par00e3": "1",
              "par008d": "25",
              "par008e": "20",
              "par001d": "14",
              "par001e": "-14",
              "par002a": "1",
              "par0142": "1",
              "par0002": "20",
              "par0001": "100",
              "par0173": "2",
              "par0172": "1"
            }
          },
          "ch0016": {
            "floor": "01",
            "room": "01",
            "displayName": "Hauptschalter Küche",
            "functionID": "BD",
            "inputs": {},
            "outputs": {
              "odp0000": {
                "pairingID": 1563,
                "value": "749.44"
              },
              "odp0001": {
                "pairingID": 1576,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 1570,
                "value": "31"
              },
              "odp0003": {
                "pairingID": 1577,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 337,
                "value": "42"
              }
            },
            "parameters": {
              "par0176": "1",
              "par0170": "999.68",
              "par0177": "1",
              "par0171": "100",
              "par0178": "1",
              "par0174": "30",
              "par0175": "70"
            }
          }
        },
        "parameters": {
          "par0179": "1",
          "par0064": "1",
          "par0140": "0",
          "par0111": "2",
          "par0112": "2",
          "par0114": "1",
          "par0115": "2",
          "par0116": "2"
        }
      }
    }
  }
}

This tenton device looks strange, because as a dimmer it works opposite as described in the ABB/BJ spec. Original spec description see below.

It means a new device is needed it is not sufficient to handle with the existing dimmer code.

I can add the opposite handling to the code but before I do it, could you describe how this device is working, to better understand and to be able to make a proper integration

e.g. is it actuating some other devices?
For me it looks like that this device is only an input for some actuators.

Regarding the CO2 and Voc Sensors
Do you mean the FID 0x00BA and 0x00BB?
if yes could you send also a JSON file of these sensors?

For the implementation it is needed which datapoint is provided by the function ID.

For datapoints: (dimmer from spec)

pairingID in/out name value
1 in Switch On/Off 0 -Off 1 - On
17 in Absolute control of the set value brightness from 0 to 100 percent
256 out Info On/Off 0 - Off 1 - On
272 out Info Actual dimming value brightness from 0 to 100 percent

For datapoints: (tenton device)

pairingID in/out name value
256 in Switch On/Off 0 -Off 1 - On
272 in Absolute control of the set value brightness from 0 to 100 percent
1 out Info On/Off 0 - Off 1 - On
17 out Info Actual dimming value brightness from 0 to 100 percent

@UhA
I agree. It would be ideal to have an input field in the Thing configuration menu, allowing users to specify the time interval for the “keep-alive” message or disable it entirely. This approach ensures flexibility and usability while maintaining backward compatibility.

I just uploaded the new version based on OpenHAB5.0.0 with the following changes

  • Tenton device is added as FID_DIMMING_SENSOR_PUSHBUTTON_TYPEx
    This is experimental @rover1982 if you have the opportunity please have a test
    i do not have this device, but I made the implementation based on your JSON file.
    However there is a question about the data direction. It would be great if you could answer the above question
  • The Websocket keep-alive-message can be switched on per config (advanced config) on the SysAp configuration page

The link with the binaries:

feel free to give a feedback

I had a quick look on my test system, and the connection was closed:

13:24:25.790	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket event not processed: event-datapoint-ID ABB7F4F9ADF0/ch0000/odp0003 value 0
13:24:26.684	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Received websocket text: {"00000000-0000-0000-0000-000000000000": {"datapoints": {"ABB7F4F9ADF0/ch0000/odp0001": "0"},"parameters": {},"devices": {},"devicesAdded": [],"devicesRemoved": [],"scenesTriggered": {}}}
13:24:26.684	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Received websocket text: {"00000000-0000-0000-0000-000000000000": {"datapoints": {"ABB7F4F9ADF0/ch0000/odp0001": "0"},"parameters": {},"devices": {},"devicesAdded": [],"devicesRemoved": [],"scenesTriggered": {}}}
13:24:26.684	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket event not processed: event-datapoint-ID ABB7F4F9ADF0/ch0000/odp0001 value 0
13:24:26.684	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Received websocket text: {"00000000-0000-0000-0000-000000000000": {"datapoints": {"ABB7F4F9ADF0/ch0000/odp0001": "0"},"parameters": {},"devices": {},"devicesAdded": [],"devicesRemoved": [],"scenesTriggered": {}}}
13:24:26.684	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket event not processed: event-datapoint-ID ABB7F4F9ADF0/ch0000/odp0001 value 0
13:24:26.684	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket event not processed: event-datapoint-ID ABB7F4F9ADF0/ch0000/odp0001 value 0
13:24:33.297	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Server connecting to websocket
13:24:33.301	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Websocket connection to SysAP is OK, timeout: 90
13:24:33.302	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket connection closed
13:24:33.303	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Delaying (re)connect request by 60 seconds.
13:24:33.588	DEBUG	org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler	Socket Connected - Timeout -1 - sesson: WebSocketSession[websocket=JettyListenerEventDriver[org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler],behavior=CLIENT,connection=WebSocketClientConnection@74b2c2ee::SocketChannelEndPoint@aa85367{l=/192.168.188.70:54301,r=/192.168.188.25:80,OPEN,fill=-,flush=-,to=1/-1}{io=0/0,kio=0,kro=1}->WebSocketClientConnection@74b2c2ee[s=ConnectionState@2592ba48[OPENING],f=Flusher@3b1098e4[IDLE][queueSize=0,aggregateSize=-1,terminated=null],g=Generator[CLIENT,validating],p=Parser@59d788da[ExtensionStack,s=START,c=0,len=0,f=null]],remote=WebSocketRemoteEndpoint@11acdbec[batching=true],incoming=JettyListenerEventDriver[org.openhab.binding.freeathome.internal.handler.FreeAtHomeBridgeHandler],outgoing=ExtensionStack[queueSize=0,extensions=[],incoming=org.eclipse.jetty.websocket.common.WebSocketSession,outgoing=org.eclipse.jetty.websocket.client.io.WebSocketClientConnection]]

here the configuration:

Hi :wink:

Thanks for your efforts :wink: @UhA

Unfortunally i’m very bad with these java things- i come from the embedded system programming part of the world- just using c

If you give me a hint what you need i’ll do this.

And perhaps you could compile this binding for an 4.x version also ?

Do you have a OpenHAB4.x or a 5.x system?

If you have the openHAB5.x system it would be great to add the binding’s new build to your openHAB and try whether the binding is able to find and to operate the Tenton devices.

However in the next days I will build the new binding for the openHAB4.x also.
if you have the openHAB4.x then I will come back to you with the new build :slight_smile:

Thank you

Hi @ML1982

Thank you for the test.

if the “keep-alive” setting is “OFF”, the keep-alive message is not sent via websocket and also the timeout is not set (the timeout is kept on the default value)

Could you make a test with the “keep-alive” setting “ON”?