Free@home virtual switches fail to work

App version: 2.27.2__
Phone OS: 14.2
Problem description:

Busch-Jäger / ABB free@home has an important concept of virtual devices, e.g. virtual Switches which are already visible in Olisto and can be used in Triggs. Unfortunately, they do not work as they are activated / deactivated wrongly through the Olisto Channel / Backend.

Real Free@home switches (Devices) have IDs starting with “ABB…”. Virtual Switches / Devices can be identified by Olisto through their ID starting with “6000…”.

Such devices need to be triggered by writing to odp0000 not idp0000.

This works for virtual devices and should be used if a ID “6000…” device (in general, not just virtual switches, free@home supports all its devices also as virtual devices now):

Request URL http://“IP”/fhapi/v1/api/rest/datapoint/00000000-0000-0000-0000-000000000000/6000"DeviceID".ch0000.odp0000. (Note:odp0000)

e.g

To switch a virtual Device 6000AC677A37 on you would do this and it works:

curl -X PUT “http://192.168.2.11/fhapi/v1/api/rest/datapoint/00000000-0000-0000-0000-000000000000/6000AC677A37.ch0000.odp0000” -H “accept: application/json” -H “Authorization: Basic XXXXXXXXX” -H “Content-Type: text/plain” -d “1”

As this renders all Virtual devices useless, can this be fixed quickly please :)?

Checking further, this is the documentation https://developer.eu.mybuildings.abb.com/fah_local/samples/#how-to-register-a-virtual-device
The logic is that Olisto would not press the virtual switch (that would be writing to idp0000) which can not be done and does not work / does not trigger the required actions on free@home side, but Olisto needs to report back that a virutal external switch is pressed, so you need to write to odp0000. That works and then triggers all required actions on the free@home side. Simple fix: replace idp0000 with odp0000 and all odp0000 you might use today with idp0000 - you just have both the wrong way around L:)

Olaf is right. As virtual devices in free@home are used as kind of proxy devices and “logic placeholders” between Olisto and internal free@home ecosystem, @Remy you would have to invert your logic for devices you discover with serial 6000xxxxxx and write 1 or 0 to the odp0000 instead ipd0000. For the native free@home devices your implementation works proper :slight_smile:

1 like

All credit to Martin von Berg, he was the source of the knowledge to figure this one out, I just reported. Thanks Olisto team for fixing it soon :)!

Ok, there is now some experimental code running to do this for virtual units with a standard on/off action, as well as the brightness action of virtual dimmers. Please let us know how it works.

1 like

Worked for me, that was a quick fix, thank you.

Could only validate the virtual switch, this was correctly triggered and the Free@home action connected to that event executed as expected. Thanks.

Olaf

1 like