Siemens RDS Bindings

Hey Guys,

i have a question concerning the Siemens RDS binding. I registered for an API key and set up the binding. But the EU-Starter-API Key does only allow 500 Calls per week and 50 calls per Minute. So the binding works for a few hours and them stop working. Have you bought a unlimited API key from Siemens or how did you solve the problem.

Thanks in advance

Galahad

@Galahad can you please tell me where you got the starter key from?

^
@Galahad I just opened this Pull Request to improve the binding documentationā€¦

You can register for an API key within the following Link:
https://portal.api.climatixic.com/

1 Like

@Galahad did you solve the problem with the limited calls per day / week?

hi @AndrewFG ,
I managed to setup the binding with an api key retrieved from network traces.

The climatix IC account connection seems to be working, I got all the thermostat Things imported (5x RDS 110), but seems for some reason only the roomTemperature and roomHumidity channels have values and updating on all thermostats, for all others I get ā€œNULLā€.
While I can see all other parameters etc when logging in to: climatixic.com siteā€¦

Do you have any idea why / how to fix it?

note: Iā€™m a newbie for OpenHAB, for now my plan would be just to expose the thermostat Items via MQTT to Home Assistant :slight_smile:

edit: logs show the following:

2022-12-06 12:47:36.228 [WARN ] [ng.siemensrds.internal.RdsDataPoints] - system exception in refresh(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="no pointId to match pointClass "'TOa""
2022-12-06 12:47:36.836 [WARN ] [nding.siemensrds.internal.RdsHandler] - system exception in doPollNow(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="pointClass "'TOa" not found"
2022-12-06 12:47:45.977 [WARN ] [ng.siemensrds.internal.RdsDataPoints] - system exception in refresh(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="no pointId to match pointClass "'TOa""
2022-12-06 12:47:46.548 [WARN ] [nding.siemensrds.internal.RdsHandler] - system exception in doPollNow(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="pointClass "'TOa" not found"

(I donā€™t have any outside temperature sensorsā€¦)

Can you please provide your Thing and Item definitions?

Hi,

Siemens Climatix IC Account

UID: siemensrds:climatixic:2cb6c931fa
label: Siemens Climatix IC Account
thingTypeUID: siemensrds:climatixic
configuration:
  pollingInterval: 60
  userPassword: password
  userEmail: xxx@yyy.zzz
  apiKey: xxxyyyzzz
location: Home

RDS:

UID: siemensrds:rds:2cb6c931fa:Pd7f3e7e4-8e55-4cf9-bcf5-de5c869d176c
label: Nappali_RDS
thingTypeUID: siemensrds:rds
configuration:
  plantId: Pd7f3e7e4-xxxx-xxxx-xxxx-xxxxxxxxxxxx
bridgeUID: siemensrds:climatixic:2cb6c931fa

for Items, I couldnā€™t find it text basedā€¦but here is eg. a Room Temperature and an Outside temperature:
(sry only can post 1 pic, due to the new registration)

does it help?

Btw I donā€™t see the TOa among the datapoints for the thermostat in ClimatixIC.com gui. So I believe that must cause this exceptionā€¦

I think TOa means Temperature Outside Ambient (or something like that). Do you have an outside temperature sensor actually connected to the RDS? And if not, perhaps try removing the Outside Temperature channel / thing from your OH setup. I can imagine that if OH is polling for a not actually existing data point, you may get such an errorā€¦

exactly, that should be the ext. temperature. I donā€™t have any external temperature sensor connected to the RDS.
I unlinked the item from the channel, but no change. Also not able to remove the channel itselfā€¦ is there a way to do it?

I think channels are coming from the Thing directly based on the integration bridge itselfā€¦
Iā€™ve setup all from gui and havenā€™t found a way to modify itā€¦

As I see, your integration tries to fetch all this info at once (openhab-addons/RdsBindingConstants.java at main Ā· openhab/openhab-addons Ā· GitHub)
and here it cannot handle the non-existent field:

    // outside air temperature (read-only)
    protected static final String CHA_OUTSIDE_TEMP = "outsideTemperature";
    public static final String HIE_OUTSIDE_TEMP = "'TOa";
public static final ChannelMap[] CHAN_MAP = { new ChannelMap(CHA_ROOM_TEMP, HIE_ROOM_TEMP),
            new ChannelMap(CHA_ROOM_HUMIDITY, HIE_ROOM_HUMIDITY), new ChannelMap(CHA_OUTSIDE_TEMP, HIE_OUTSIDE_TEMP),
            new ChannelMap(CHA_TARGET_TEMP, HIE_TARGET_TEMP),
            new ChannelMap(CHA_ROOM_AIR_QUALITY, HIE_ROOM_AIR_QUALITY),
            new ChannelMap(CHA_ENERGY_SAVINGS_LEVEL, HIE_ENERGY_SAVINGS_LEVEL),
            new ChannelMap(CHA_OUTPUT_STATE, HIE_OUTPUT_STATE),
            new ChannelMap(CHA_STAT_OCC_MODE_PRESENT, HIE_STAT_OCC_MODE_PRESENT),
            new ChannelMap(CHA_STAT_AUTO_MODE, HIE_PR_OP_MOD_RSN),
            new ChannelMap(CHA_DHW_OUTPUT_STATE, HIE_DHW_OUTPUT_STATE),
            new ChannelMap(CHA_DHW_AUTO_MODE, HIE_DHW_OUTPUT_STATE) };

Hmm. It looks like a bug in my code. I will try to fix it and get back to you.

^
@kgeree I made a new build of the JAR file for the binding that should hopefully solve the bug. Can you please test it (I cannot do it myself since both of my RDS stats have OAT sensors attached).

Can you please turn on DEBUG logging via the following OH console command before running the test?

log:set DEBUG org.openhab.binding.siemensrds

You should get the following resultsā€¦

  1. Whereas before you saw messages at [WARN ] level in the log, you should now see those same messages demoted down to [DEBUG] level.
  2. Whereas before the missing OAT channels would prevent other channels from being updated, you should now have all (existing) channels being updated with their correct actual values.

To test the new JAR, you must first use OH Main UI to un-install the normal release version of the binding, and then download the (zipped) test JAR file HERE, then un-zip it and drop it in your OH ā€˜addonsā€™ folder.

thanks, I just tested it and seems to be workingā€¦there are these ā€œexceptionsā€ in the log:

2022-12-07 20:28:50.600 [DEBUG] [nding.siemensrds.internal.RdsHandler] - system exception in doPollNow(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="pointClass "'TOa" not found"
2022-12-07 20:28:50.608 [DEBUG] [nding.siemensrds.internal.RdsHandler] - system exception in doPollNow(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="pointClass "'DhwMod" not found"
2022-12-07 20:28:50.609 [DEBUG] [nding.siemensrds.internal.RdsHandler] - system exception in doPollNow(), type=org.openhab.binding.siemensrds.internal.RdsCloudException, message="pointClass "'DhwMod" not found"

but all other values are updated properly.
Iā€™m attaching the full log below so you can also have a look: 2022-12-07 20:25:31.927 [INFO ] [.core.internal.i18n.I18nProviderImpl] - Time zo - Pastebin.com

Many thanks for testing and posting the log. I notice that there is also a (now avoided) error concerning domestic hot water; so I suppose you have not configured the second output of the thermostat for controlling the DHW? But are you using the second output for anything else?

@kgeree I tidied up the coding of the fixes that I made yesterday, so that the lack of implementation of a given feature is not logged as an error / exception anymore but rather as a more informative message.

After doing this work, the law of unintended consequences kicked in: I wanted to run the JUnit tests to confirm that I did not break anything. However unfortunately I found that a) binding build process had never actually been running the tests previously, and therefore b) nobody had noticed that the tests would actually have been failing!

So I had to recode the tests, so that they do now actually run during the build, and so that they do now also actually pass. This means that they can at least be used if any future changes will be made.

However because of this extra rework, I would be grateful if you could please check the latest (final) version of the JAR file, to confirm that all is indeed still Ok. TIA :0

DOWNLOAD HERE

@AndrewFG , just managed to test it, and so far working ok. openhab.log didnā€™t have any RDS binding related rows anymore, events.log has some details which looks normal - following the values that are changing. So from my perspective should be ok. Lets see on long run :slight_smile:

Off topic: could you help me with any hint on how could I publish these ā€œitemsā€ for the RDS thermostats on MQTT broker? As Iā€™m not so familiar with openhab, it would be a great help to me.

Thanks in advance!

Perfect! Thanks for the assistance. There are two PRs as follows which will appear in the next official OH milestone.

Umm. Not really. Unfortunately I have no experience with MQTT.