Все - проблема решена. Проблема была с адаптером javascript - по какой-то причине не было нужных объектов в песочнице. Проблема решилась установкой более старой версии и потом возвратом обратно к новой (магия какая-то).
NEWS
Latest posts made by glaz123
-
RE: Работа с Enum (rooms) в скриптах
-
RE: Seltsames Verhalten von getEnums Funktion
Kann es eine Inkompatibilität zwischen Javascript Adapter und Datenbank sein?
Hier sind meine npm-Module Versionen:
iobroker.inst@1.1.2 /opt/iobroker ├─┬ iobroker.admin@3.4.1 ├─┬ iobroker.discovery@1.1.0 ├─┬ iobroker.javascript@3.6.4 ├─┬ iobroker.js-controller@1.4.2 ├─┬ iobroker.mikrotik@1.0.0 ├── iobroker.mobile@0.4.11 ├─┬ iobroker.mqtt-client@1.1.1 ├─┬ iobroker.mysensors@1.2.0 ├─┬ iobroker.node-red@1.5.1 ├─┬ iobroker.scenes@1.1.0 ├── iobroker.simple-api@1.6.3 ├─┬ iobroker.socketio@2.0.1 ├─┬ iobroker.sonoff@2.1.2 ├─┬ iobroker.sql@1.8.0 ├─┬ iobroker.telegram@1.2.3 ├── iobroker.text2command@1.2.2 ├─┬ iobroker.vis@1.1.4 ├── iobroker.vis-history@0.2.7 ├─┬ iobroker.weatherunderground@1.1.2 ├─┬ iobroker.web@2.3.3 └─┬ sqlite3@4.0.0
-
RE: Seltsames Verhalten von getEnums Funktion
nein
2018-05-23 17:36:12.510 - info: javascript.0 script.js.common.TelegramMenu: [Andrey]/start 2018-05-23 17:36:12.518 - error: javascript.0 Error in callback: TypeError: Cannot read property 'common' of undefined 2018-05-23 17:45:40.231 - info: javascript.0 Stop script script.js.common.TelegramMenu 2018-05-23 17:45:40.241 - info: javascript.0 Start javascript script.js.common.TelegramMenu 2018-05-23 17:45:40.246 - info: javascript.0 script.js.common.TelegramMenu: registered 1 subscription and 0 schedules
script:
`on({id: "telegram.0.communicate.request", ack: false, change: 'any'}, function (obj) { log(obj.state.val); command = obj.state.val.substring(obj.state.val.indexOf(']')+1); user = obj.state.val.substring(obj.state.val.indexOf('[')+1,obj.state.val.indexOf(']')); prev_command = obj.oldState.val.substring(obj.oldState.val.indexOf(']')+1); switch(true){ case /^\/start/i.test(command): rooms = getEnums('rooms'); roomsNum = rooms.length; roomsStr='[['; for(var i in rooms) { roomsStr += "{text:"+"\'"+rooms[i].name+"\',callback_data:"+"\'"+rooms[i].id+"\'},"; } roomsStr+=']]'; log(roomStr); sendTo('telegram.0', {user: user, text: 'Основное меню', reply_markup: { inline_keyboard: roomsStr, resize_keyboard: true, //one_time_keyboard: true } }); break; } });`[/i][/i]
-
RE: Seltsames Verhalten von getEnums Funktion
Genaue Nachricht:"error: javascript.0 Error in callback: TypeError: Cannot read property 'common' of undefined"
Im iobroker.javascript-Quellcode fand ich die Definition der getEnums-Funktion - es ist eine einfache Iteration über das Enums-Array und dann die Konstruktion der Struktur von Mitgliedern. Diese Funktion erwartet, dass einige Eigenschaften in Enums existieren, aber leider gibt es keine solchen Eigenschaften.
-
Seltsames Verhalten von getEnums Funktion
Ich schreibe Telegramm Bot und bekam sehr einfaches problem, ich kann keine Zimmernamen von enum bekommen (Javascript 3.6.4).
Mein Code dafür stammt aus der Dokumentation:
room = getEnums ("rooms");
Wenn es ausgeführt wird, gibt es "Error in callback: TypeError: Cannot read property 'common' of undefined" zurück und stoppt.
Ich habe das Forum gelesen und keine Lösung für das Problem gefunden.
-
Отсутствие deviceId в obj события
Добрый день,
Разрабатывают взаимодействие с телеграмом, подписался на событие, оно приходит, только вот объект я получаю в котором нет deviceId - и соответственно не могу вытащить атрибуты девайса чтобы вставить его в сообщение.
Код примерно вот такой (Я уже попробовал по разному вытаскивать значения deviceId, не помогает - возвращает undefined).
При этом channelId приходит (но json его не видно).
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)
{"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 вот такое
{"_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 или системы? Или я что-то не правильно понимаю?
-
Работа с Enum (rooms) в скриптах
Пытаюсь сделать телеграмовского бота, с меню. На javascript (3.6.4).
Для этого мне как-то надо получить список сконфигурированных у меня комнат (которые лежат в enum rooms).
Пытаюсь сделать так
room = getEnums('rooms');
Получаю Error in callback: TypeError: Cannot read property 'common' of undefined
И соответственно останавливает выполнение скрипта.
Чтение форума особенно не помогло, типа так должно работать (даже в документации так написано).