stason325 / node-red-contrib-miio-localdevices

Nodes for controlling MIIO devices via node-mihome lib. List of devices and commands to be extended.
GNU General Public License v3.0
18 stars 7 forks source link

Ошибка zhimi.humidifier.ca4 #1

Closed krasilnikovao closed 2 years ago

krasilnikovao commented 2 years ago

При любом действии выдает ошибку "Mihome Exception. IP: 192.168.0.10 -> command error"

stason325 commented 2 years ago

При любом действии выдает ошибку "Mihome Exception. IP: 192.168.0.10 -> command error"

А опрашивает get-нодой нормально? Выдаёт полный json характеристик?

krasilnikovao commented 2 years ago

Да в дебаг приходит msg: {"_msgid":"636db1cf01af4785","name":"Увлажнитель - Кухня","address":"192.168.0.10","model":"zhimi.humidifier.ca4","polling":"ON. Every 30 sec"}

stason325 commented 2 years ago

Да в дебаг приходит msg:

{"_msgid":"636db1cf01af4785","name":"Увлажнитель - Кухня","address":"192.168.0.10","model":"zhimi.humidifier.ca4","polling":"ON. Every 30 sec"}

А в msg.payload характеристики есть?

krasilnikovao commented 2 years ago

Нет это все тело msg

stason325 commented 2 years ago

Нет это все тело msg

Попробуйте удалить гет-ноду, сделать фул деплой, затем ещё раз ее создать. Не включайте auto-polling (снимите галку) и единоразово закиньте в новую гет-ноду метку времени. На выходе в msg.payload должны выскочить все характеристики устройства.

Если все получится, то не включайте пока auto-polling. В новой версии я механизм немного переделаю.

krasilnikovao commented 2 years ago

Та же самая история {"_msgid":"6f315af68636bd2a","name":"Humi - Kitchen","address":"192.168.0.10","model":"zhimi.humidifier.ca4","polling":"OFF"}

stason325 commented 2 years ago

Та же самая история

{"_msgid":"6f315af68636bd2a","name":"Humi - Kitchen","address":"192.168.0.10","model":"zhimi.humidifier.ca4","polling":"OFF"}

Тогда ещё NR нужно попробовать рестартануть. А все параметры девайса точно правильные? токен, ip-адрес?

krasilnikovao commented 2 years ago

Тогда ещё NR нужно попробовать рестартануть. А все параметры девайса точно правильные? токен, ip-адрес?

Рестартовал NR Параметры несколько раз проверил перед тем как issue писать

stason325 commented 2 years ago

Тогда ещё NR нужно попробовать рестартануть.

А все параметры девайса точно правильные? токен, ip-адрес?

Рестартовал NR

Параметры несколько раз проверил перед тем как issue писать

Именно после отключения auto-poll нужно рестарт сделать. Сейчас такое ощущение, что нода не видит ваш девайс. Как только получится его пнуть и ответ получить с характеристиками, можно команды уже тестировать.

krasilnikovao commented 2 years ago

Ошибка в библиотеке node-mihome, при инициализации устройства всегда происходит запрос параметров вот как раз на нем и происходит ошибка в запросе get_prop

stason325 commented 2 years ago

Ошибка в библиотеке node-mihome, при инициализации устройства всегда происходит запрос параметров вот как раз на нем и происходит ошибка в запросе get_prop

Теперь уже более понятно. get_prop - это базовая универсальная команда для опроса устройства. Если она завершилась неудачей, то значит не было найдено устройство заданой модели по заданному IP-адресу с заданным Токеном. Эта команда используется во всех библиотеках, использующих локальный протокол MIIO. Не только в node-mihome, но и в Miio, и в pymiio.

Что могу посоветовать:

Возможно увлажнитель выдергивался из сети и мог поменяться IP или токен.

И пока не используйте auto-polling до апдейта ноды.

krasilnikovao commented 2 years ago
  • опросить еще раз токен экстрактором вашу учетную запись MiHome и оттуда взять текущие актуальные параметры устройства, привязанного к вашей учётке: модель, IP-адрес и токен

Пересоздал устройство в mihome, получил новый токен экстрактором

  • в настройках роутера задать для вашего устройства статический IP

Задал стат ip на роутере Все равно тоже история: устройство отвечает, но выдает ответ "Command error" Но вот если заведомо указать неверный токен тогда приходит ошибка "Call to device timed out", устройство в принципе не отвечает если неверный токен

krasilnikovao commented 2 years ago

Скорее всего тогда ошибка или в node-mihome, или же совсем локальная у меня, поэтому я думаю можно закрыть ишью. Спасибо.

stason325 commented 2 years ago

Все равно тоже история: устройство отвечает, но выдает ответ "Command error"

Если устройство отвечает и гет-нода выдает в дебаге msg.payload весь json характеристик - это уже хорошо. Значит опозналось. С управляющими командами давай тоже попробуем решить.

Давайте потестируем на команде power. Попробуйте посылать в нее посылать в нее не true/false, а например стринговые "on" и "off". Если сработает, то надо проверить каждую поддерживаемую команду и на предмет правильного значения: вот definition file по вашему устройству https://github.com/maxinminax/node-mihome/blob/master/lib/devices/zhimi.humidifier.ca4.js

После теста, я тогда описание в devices.md поменяю

MaksimShakavin commented 2 years ago

У меня такая же ошибка, только гет нода не возвращает список команд. IP точно верный, токен тоже.

stason325 commented 2 years ago

У меня такая же ошибка, только гет нода не возвращает список команд. IP точно верный, токен тоже.

Возможно, defFile в самой либе node-mihome на самом деле не рабочий. Вот выше я писал об этом.

https://github.com/stason325/node-red-contrib-miio-localdevices/issues/1#issuecomment-1025514726

Я вам закину обновленный (miot вместо miio) - попробуйте его и отпишитесь

stason325 commented 2 years ago

Ребят, в обновленной версии поддержка девайса добавлена и рабочая на основании тестов. DefFile новый теперь нужно копировать в папку либы, как выяснилось, девайс MIOT. Вся обвязка в версии 0.5.11 сделана. Enjoy!