I used Swagger now. With this body it works:
Good. Making some progress then.
Does this command work in CURL?
curl --header "Content-Type: application/json" --request POST --data '{"args":{}}' -u username:password http://192.168.1.222/api/scenes/25/execute
No success. Is there a way curl gives me a respnse?
Add the verbose option
curl --verbose --header "Content-Type: application/json" --request POST --data '{"args":{}}' -u username:password http://192.168.1.222/api/scenes/25/execute
Or maybe we have to include that “alexaProhibited” part too. Try this:
curl --verbose --header "Content-Type: application/json" --request POST --data '{"alexaProhibited":true,"args":{}}' -u username:password http://192.168.1.222/api/scenes/25/execute
Oh, well… It is probably too late. It helps if the user has the access rights to the scene, right? Swagger was logged in as an admin…
I changed access control but still get a 403. Do you have an idea? I checked user and password. I have a number and a special character in the password… As required by Fibaro
I’m not sure. We are probably going to need some clarification from Fibaro on exactly what is all needed.
Can you submit a support ticket & email them?
Also might help to post in the Fibaro forum as well. There are more people having this problem. Add to this discussion & let them know you too aren’t able to trigger scenes through the API either.
Will do tomorrow morning. How do you see devices?
I do see the problem with those. If you look at the JSON file, devices “575, 501, 582, and 589” don’t have any actions defined. Earlier when I said that the “devices” API was kind of self-documenting, what I was referring to were the available “actions” a device has. Those Ids you shared with me earlier all have a set of actions that looks like this:
"actions": {}
Typically for a switch, at minimum you’d see this:
"actions": {
"turnOff": 0,
"turnOn": 0
}
I’m not sure how we are supposed to control these switches if they don’t have “turnOn” & “turnOff” commands.
Are these normal ZWave switches or where did you get them from? If these are from a 3rd control Plugin you may have to ask the author how to control these. Without the necessary “turnOn” & “turnOff” actions, I’m not sure how to do that.
Can you also test those switches in CURL?
curl --verbose -u username:password http://192.168.1.222/api/callAction?deviceID=501&name=turnOn
These can also be tested in the web browser directly too.
http://username:password@192.168.1.222/api/callAction?deviceID=501&name=turnOn
Do either of these commands work?
They are normal ZWave switches from Fibaro. However, I experienced some issues after the migration from HC2 to HC3. After a soft-reconfiguration and after deletion of the HC in the Home Remote app and re-adding it, the problem is fixed.
So, I guess a need a soft-reconfiguration or these devices and then 80% is fixed for me
Scenes and QA/Virtual Devices are the ones which would make me ultimately happy
Thank you!!!
We are getting closer to it. I did a Soft Reconfiguration of all the devices and this seems to fix it. However, interestingly I do not see all the devices in the Home Remote designer. E.g.
{“id”:778,“name”:“Licht Büro Roger”,“roomID”:233,“view”:[{“assetsPath”:"/dynamic-plugins/com.fibaro.binarySwitch/assets",“jsPath”:"/dynamic-plugins/com.fibaro.binarySwitch",“name”:“com.fibaro.binarySwitch”,“translatesPath”:"/dynamic-plugins/com.fibaro.binarySwitch/i18n",“type”:“ts”}],“type”:“com.fibaro.binarySwitch”,“baseType”:“com.fibaro.actor”,“enabled”:true,“visible”:true,“isPlugin”:false,“parentId”:419,“viewXml”:false,“configXml”:false,“interfaces”:[“energy”,“light”,“power”,“zwave”,“zwaveMultiChannelAssociation”,“zwaveSwitchAll”],“properties”:{“pollingTimeSec”:0,“zwaveCompany”:“Goap”,“zwaveInfo”:“3,4,5”,“zwaveVersion”:“5.0”,“categories”:[“lights”],“configured”:true,“dead”:false,“deadReason”:"",“deviceControlType”:2,“deviceIcon”:1023,“emailNotificationID”:0,“emailNotificationType”:0,“endPointId”:0,“energy”:8536.3,“isLight”:true,“log”:"",“logTemp”:"",“manufacturer”:"",“markAsDead”:true,“model”:"",“nodeId”:76,“parametersTemplate”:0,“power”:25.8,“productInfo”:“1,89,0,2,0,81,5,0”,“pushNotificationID”:0,“pushNotificationType”:0,“saveLogs”:true,“serialNumber”:"",“showEnergy”:true,“smsNotificationID”:0,“smsNotificationType”:0,“state”:true,“switchAllMode”:"",“useTemplate”:true,“userDescription”:"",“value”:true},“actions”:{“reconfigure”:0,“reset”:0,“toggle”:0,“turnOff”:0,“turnOn”:0},“created”:1591526183,“modified”:1591526183,“sortOrder”:107}
does not show up where
{“id”:779,“name”:“Licht Brüo Karin”,“roomID”:232,“view”:[{“assetsPath”:"/dynamic-plugins/com.fibaro.binarySwitch/assets",“jsPath”:"/dynamic-plugins/com.fibaro.binarySwitch",“name”:“com.fibaro.binarySwitch”,“translatesPath”:"/dynamic-plugins/com.fibaro.binarySwitch/i18n",“type”:“ts”}],“type”:“com.fibaro.binarySwitch”,“baseType”:“com.fibaro.actor”,“enabled”:true,“visible”:true,“isPlugin”:false,“parentId”:419,“viewXml”:false,“configXml”:false,“interfaces”:[“energy”,“light”,“power”,“zwave”,“zwaveMultiChannelAssociation”,“zwaveSwitchAll”],“properties”:{“pollingTimeSec”:0,“zwaveCompany”:“Goap”,“zwaveInfo”:“3,4,5”,“zwaveVersion”:“5.0”,“categories”:[“lights”],“configured”:true,“dead”:false,“deadReason”:"",“deviceControlType”:2,“deviceIcon”:1023,“emailNotificationID”:0,“emailNotificationType”:0,“endPointId”:1,“energy”:4318.7,“isLight”:true,“log”:"",“logTemp”:"",“manufacturer”:"",“markAsDead”:true,“model”:"",“nodeId”:76,“parametersTemplate”:0,“power”:25.4,“productInfo”:“1,89,0,2,0,81,5,0”,“pushNotificationID”:0,“pushNotificationType”:0,“saveLogs”:true,“serialNumber”:"",“showEnergy”:true,“smsNotificationID”:0,“smsNotificationType”:0,“state”:true,“switchAllMode”:"",“useTemplate”:true,“userDescription”:"",“value”:true},“actions”:{“reconfigure”:0,“reset”:0,“toggle”:0,“turnOff”:0,“turnOn”:0},“created”:1591526183,“modified”:1591526183,“sortOrder”:108}]
is shown. This is a double switch (one switch with two lines). One is shown and one not.
I did some additional testing. It seems that the discovery is challenged by the double switches. I have several of them and typically not both are recognized but only one of them. This is a consistent pattern. Could it be that you import only the ones with endPointId:0? This seems to me the only pattern I see currently without knowing the inner workings of the tool
Virtual devices will have to be added manually because the app doesn’t have any pre built templates for them. You can add a Fibaro Virtual Device manually by copying & pasting an existing device & updating the Id. Then just add any properties you wish to monitor to the “Attributes”.
For “Double Switches”, I would like to see why they aren’t syncing. Can you send me the latest devices.json file from your hub so I can inspect it? So the device with “id” 779 named “LichtBrüoKarin” is a double switch?
Here you go.devices.txt (635.8 KB) . It is a json again.
195, 197 is a double with 194 as the master.
778, 779 is a double with 419 as the master
595, 598 is a double with 595 as the master
I think these are the three (there is another one which is connected but not in use currently). The behavior seems consistent
I just finished making the updates on my dev machine so that the next version will create 2 devices for your double switches. For the time being, you can just copy & paste an existing device & manually set the ids.
Before I publish the change I’d like to get this Scene control figured out. Thanks a bunch for posting the error in their forum too! I went ahead & added to that discussion the error that @hrannar is seeing.
Could have had this idea myself. Thank you
On your Virtual Device proposal: I tried to do that and then realized that I do not want to monitor properties but actually call actions. So, what was a call for “PressButton” and a parameter with the number of the button in HC2 is now a call to a method of the VD. So, what I would need to do is generate a call like method or an own action. Can I configure a device and then a button on a UI to generate the equivalent to this?
curl -X POST “http://10.10.0.100/api/devices/784/action/test” -H “accept: /” -H “Content-Type: application/json” -H “X-Fibaro-Version: 2” -H “Accept-language: en” -H “Authorization: Basic xxxxxxxxxx” -d “{“args”:[”{}","{}"],“delay”:0}"
That way I can even solve the scene problem (as an intermediate patch) by writing a QA
Whenever you try to write to a property on a virtual device, the app will call an action named “set[property]”. So for your virtual device, just add a property called “scene” & an action called “setScene”.
Your other option would be to just create a virtual binary switch like this user has done. Then from the Home Remote’s perspective, it is just an ordinary switch.