3 weeks ago
I've integrated a security system using Google Cloud-to-Cloud. It works, except if there is a blocking exception. For example, if a door is open then the user isn't allowed to arm the system. Here's my response:
{"requestId":"6894439706274654516","payload":{"commands":[{"ids":["1202C68845CF"],"status":"EXCEPTIONS","states":{"isArmed":false,"online":true,"currentStatusReport":[{"deviceTarget":"1202C68845CF-00005415","blocking":true,"priority":0,"statusCode":"deviceOpen"}]}}]}}
The problem is that instead of informing the user that the door is open, it says "Sorry, something went wrong controlling <Security System>".
The error logs show the following:
Answered! Go to the Recommended Answer.
3 weeks ago
After messing with some more...
If the system supports bypassing sensors, then you need to add the challengeNeeded. Then the assistant will prompt you that the door is open, then allow you to confirm.
"status": "ERROR",
"errorCode": "challengeNeeded",
"challengeNeeded": {
"type": "ackNeeded"
},
3 weeks ago
Hello @jasonlowry ,
Just wanted to check if you were able to resolve your issue using the above suggestion about "challengeNeeded" or do you still need some help ?
3 weeks ago
After messing with some more...
If the system supports bypassing sensors, then you need to add the challengeNeeded. Then the assistant will prompt you that the door is open, then allow you to confirm.
"status": "ERROR",
"errorCode": "challengeNeeded",
"challengeNeeded": {
"type": "ackNeeded"
},
3 weeks ago
Hello @jasonlowry ,
Just wanted to check if you were able to resolve your issue using the above suggestion about "challengeNeeded" or do you still need some help ?
3 weeks ago
I think the documentation needs to be updated. I found the challengeNeeded while working on something else. I created bug ticket for this.
3 weeks ago
Could you share the bug link for the same here ?
2 weeks ago
Here is the external link:
https://issuetracker.google.com/issues/333408166
However, this worked for my security system because it supports bypass. If it didn't I think the code needs to return an error:
"status": "ERROR",
"errorCode": "armFailure",