Отсутствие deviceId в obj события

Вопросы и информация о скриптах для ioBroker
Antworten
glaz123
Beiträge: 7
Registriert: 22.05.2018, 07:35

Отсутствие deviceId в obj события

Beitrag von glaz123 » 22.05.2018, 09:04

Добрый день,

Разрабатывают взаимодействие с телеграмом, подписался на событие, оно приходит, только вот объект я получаю в котором нет deviceId - и соответственно не могу вытащить атрибуты девайса чтобы вставить его в сообщение.
Код примерно вот такой (Я уже попробовал по разному вытаскивать значения deviceId, не помогает - возвращает undefined).
При этом channelId приходит (но json его не видно).

Code: Alles auswählen

on({id: /^sonoff\.0\..*\.alive$/, change: 'ne'}, function (obj) {
  objRoom = getObject(obj.id,'rooms');
  if(obj.state.val===true) {
      sendTo('telegram.0', 'Device '+getObject(obj.channelId).common.name+' located in '+objRoom.enumNames+' is connected '+JSON.stringify(obj)+JSON.stringify(objRoom));
  } else {
      sendTo('telegram.0', 'Device '+getObject(obj.channelId).common.name+' located in '+objRoom.enumNames+' is disconnected'+JSON.stringify(obj)+JSON.stringify(objRoom));
  }
 }
);
Соответсвенно в obj лежит вот такое (нет deviceId)

Code: Alles auswählen

{"id":"sonoff.0.DVES_06FDF7.alive",
          "newState":{"val":true,"ts":1526974517438,"ack":true,"lc":1526974517438,"from":"system.adapter.sonoff.0"},
          "oldState":{"val":false,"ts":1526974506646,"ack":true,"lc":1526974295730,"from":"system.adapter.sonoff.0"},
          "state":{"val":true,"ts":1526974517438,"ack":true,"lc":1526974517438,"from":"system.adapter.sonoff.0"}}
В objRoom вот такое

Code: Alles auswählen

{"_id":"sonoff.0.DVES_06FDF7.alive",
           "common":{"type":"boolean","role":"indicator.connected","read":true,"write":false,"name":"DVES_06FDF7 alive"},
           "type":"state",
           "from":"system.adapter.sonoff.0",
           "ts":1523040682783,
           "acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enumIds":[],"enumNames":[]}
Это глюк кого? Адаптера sonoff или системы? Или я что-то не правильно понимаю?

Benutzeravatar
instalator
guru
Beiträge: 1264
Registriert: 09.11.2014, 16:50
Wohnort: Барнаул
Kontaktdaten:

Re: Отсутствие deviceId в obj события

Beitrag von instalator » 12.06.2018, 16:37

glaz123 hat geschrieben:
22.05.2018, 09:04
Добрый день,

Разрабатывают взаимодействие с телеграмом, подписался на событие, оно приходит, только вот объект я получаю в котором нет deviceId - и соответственно не могу вытащить атрибуты девайса чтобы вставить его в сообщение.
Код примерно вот такой (Я уже попробовал по разному вытаскивать значения deviceId, не помогает - возвращает undefined).
При этом channelId приходит (но json его не видно).

Code: Alles auswählen

on({id: /^sonoff\.0\..*\.alive$/, change: 'ne'}, function (obj) {
  objRoom = getObject(obj.id,'rooms');
  if(obj.state.val===true) {
      sendTo('telegram.0', 'Device '+getObject(obj.channelId).common.name+' located in '+objRoom.enumNames+' is connected '+JSON.stringify(obj)+JSON.stringify(objRoom));
  } else {
      sendTo('telegram.0', 'Device '+getObject(obj.channelId).common.name+' located in '+objRoom.enumNames+' is disconnected'+JSON.stringify(obj)+JSON.stringify(objRoom));
  }
 }
);
Соответсвенно в obj лежит вот такое (нет deviceId)

Code: Alles auswählen

{"id":"sonoff.0.DVES_06FDF7.alive",
          "newState":{"val":true,"ts":1526974517438,"ack":true,"lc":1526974517438,"from":"system.adapter.sonoff.0"},
          "oldState":{"val":false,"ts":1526974506646,"ack":true,"lc":1526974295730,"from":"system.adapter.sonoff.0"},
          "state":{"val":true,"ts":1526974517438,"ack":true,"lc":1526974517438,"from":"system.adapter.sonoff.0"}}
В objRoom вот такое

Code: Alles auswählen

{"_id":"sonoff.0.DVES_06FDF7.alive",
           "common":{"type":"boolean","role":"indicator.connected","read":true,"write":false,"name":"DVES_06FDF7 alive"},
           "type":"state",
           "from":"system.adapter.sonoff.0",
           "ts":1523040682783,
           "acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"},"enumIds":[],"enumNames":[]}
Это глюк кого? Адаптера sonoff или системы? Или я что-то не правильно понимаю?
что такое deviceId?
Высокий уровень Децибел вреден для здоровья!
Мой блог

Antworten