0

RPC not working

Fredrik Sandblom 4 months ago updated by Ricardo Pinto | visiontech.pt 4 months ago 9

After update to 4.6.24 I'm unable to get RPC working. I have tried the "new place" of enabling RPC and also the old settings.txt but no RPC is bound. Checking with ex. netstat port 81 is not bound,

Hi,

Probably you had an old version before the update...


Since at least version 4.5.0, the RPC implementation has changed.

The port is no longer 81, but over the already used HTTPS protocol (under port 553). And now the RPC has security (username and password). So you need to redo your RPC integration.

Basically you need to change your old RPC urls to:


https://rpc_username:rpc_password@your_ip_address_or_ddns/API/RPC/SetValue

https://rpc_username:rpc_password@your_ip_address_or_ddns/API/RPC/GetValue


https://rpc_username:rpc_password@your_ip_address_or_ddns/API/RPC/CallFunction

And the rest remains the same.

Best regards


Hi Ricardo.

Thanks for your reply!

Unfortantly this is not documented someware.

(Documentation still says port 81 and URL without API/RPC path)


Anyway I tried with the new port and path but still doesn't work.

Port is not bound to 553.Is there somthing more that needs to be done to get RPC to start?


Adding a screenshot of an netstat on my server(as you can see RPC is not bound:

netstat on my server

Screenshot from API/RPC

Hi Fredrik,


Big mistake from my side. I said port 553 (don't really know why I wrote that, guess I was sleepy), but the listening port is the standard 443 port, the same that's used for remote access to bOS.


So according to your netstat, port 443 is good!


What are you using for RPC? You need to change the urls for the ones I wrote in the previous post.


Best regards

Hi Ricardo.


Thanks for your reply!

I thought the port was kind of strange port so I even tested and did it again port 443, the standard port for ComfortClick.

Can connect but getting error 401 unathorized. user and password is correct and so on....

Using the new URL but getting the same problem.


I'm using RPC for a lots of integrations from other systems like OpenSprinkler, deCONZ, MQTT, Telldus.

This system push changes to ComfortClick via RPC.

Hi,

Since version 4.5.0, RPC dropped off the port 81 and started to use the default HTTPS port, which is the already used one for remote access. On top of that, they added a username and password for protection.

I use IFTTT integration since the old RPC version, and I have no problems with the newer one.

So it's hard to say what's wrong in your services. The only thing that's changed is the urls, port and authentication.

Can you share any information or printscreens of one of the implementation that's giving error?

Hi.

Understand. It is very hard to say what is wrong.

Here is a screenshot from REST client.


Part of the URL is removed to not put upp any IP or user/password on this forum.

user/password: Set in ComfortClick. RPC set to enable

URL i use: https://user:password@<IP of ComfortClick server>/API/RPC/GetValue

Can not see that I have written this woring, right?

I'm also use IFTTT via RPC but not directly to server to not send things "over the internet" without any protection. Now this can be done if I can get RPC to work on my server.


Hi again.

I think I found a way to authenticate. It seems like I can not use the username/password in URL but need to make a auth in header instead. Will do some more tests and see if that is the solution of the problem.

After changing the script and sending the athentication in header everything works. Thanks Ricardo for helping me in right direction!

Hi Fredrik,

I'm glad that you figured it out and it's working.

I'm using the RPC mainly with IFTTT, and I put username and password on the url. Probably IFTTT service takes care of that, so that's why I recommend that urls.

Best regards