Your comments

Не совсем, у вас реализован подсчет хеш суммы, а нужно подсчет кода проверки для аутентификации
там подается строка и ключ, вот например онлайн калькулятор
https://codebeautify.org/hmac-generator

Вернее не шифрование а получение электронной подписи (строки) для авторизации

А жесты станции мини будет поддержка?

В свете новости, что теперь управление через алису без запуска навыка
Что-то переделывать в проектах надо? Или все само заработает?

архивные не нужно было, а какая разница, дал команду, распарсил ответ
или там нюансы с архивами?

С энергомеры снимал показания через 485 интерфейс, вроде работает :)

я посылаю один и тот же запрос 2 раза, с первого раза никогда не отдает корректный ответ,
тут же повторяю запрос и все корректно

Переключил на PUT

IR.GetDevice("SST").SendEx({

Type: "PUT",

Url: "/houses/31373/",

Data: ['{"in_home": false,"name":"Якорь"}'],

Headers: {

"Content-Type": "application/json",

"Accept": "application/json",

},

cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text+code+headers);},

});


При отправке получаю ответ
[11-07-2019 13:26:05.927] INFO SCRIPT cbReceiveText {"name":["Это поле обязательно."],"detail":"Это поле обязательно."}400[object Object

Тут же отправляю еще раз не перезагружая проект и получаю корректный ответ

При использовании например postman все работает с первого раза


Почему так происходит?

Отправка должна устанавливать in_home в true, но не работает, видимо PATCH тоже не поддерживает, как обойти помогите.

IR.GetDevice("SST").SendEx({

Type: "PATCH",

Url: "/houses/31373/",

Data: ['{"in_home":"true"}'],

Headers: {

"Accept": "application/json",

},

cbReceiveText: function(text, code, headers) {IR.Log("cbReceiveText "+text+code+headers);},

cbReceiveData: function(data, code, headers) {IR.Log("cbReceiveData "+data+code+headers);},

cbReceiveCode: function(code) {IR.Log("cbReceiveCode "+code);},

cbReceiveKey: function(key,value) {IR.Log("cbReceiveKey "+key+value);},

cbReceiveStartBody: function(stream) {IR.Log("cbReceiveStartBody "+stream);},

cbReceivePartBody: function(stream) {IR.Log("cbReceivePartBody "+stream);},

cbReceiveEndBody: function(size) {IR.Log("cbReceiveEndBody "+size);},

cbTimeOut: function() {IR.Log("cbTimeOut");},

cbReceiveStream: function(stream, code, headers) {IR.Log("cbReceiveStream "+stream+code+headers);}

});