ioBroker Forum


Nutzungsbedingungen |Datenschutzrichtlinie
Cloud |Dokumentation
Aktuelle Zeit: 22.02.2018, 12:10

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 35 Beiträge ]  Gehe zu Seite Vorherige 1 2
Autor Nachricht
BeitragVerfasst: 03.10.2016, 18:01 
Offline
starter

Registriert: 29.03.2016, 13:07
Beiträge: 54
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal
sanich2908 по идее ошибка в логике.
Во первых логичней поставить условие вызова по "изменению", а не "обновлению", хотя смотря какая цель.
Во вторых задано не верно условие. Ты сравниваешь "Объект" с числом 100, а надо сравнивать значение уровня света с числом 100.

типа этого:
Dateianhang:
Снимок.PNG
Снимок.PNG [ 42.03 KiB | 2583 mal betrachtet ]


Для проверки логики рекомендую иногда переключаться на код через кнопку "показать код"


Nach oben
   
BeitragVerfasst: 03.10.2016, 18:43 
Offline
Site Admin
Benutzeravatar

Registriert: 13.07.2014, 14:42
Beiträge: 7712
Hat sich bedankt: 290 Mal
Danksagung erhalten: 829 Mal
Да только сейчас заметил, что ты имя объекта сравниваешь со ста.
Там результат всегда один.
Понятно где проблема?


Nach oben
   
BeitragVerfasst: 04.10.2016, 01:49 
Offline
starter

Registriert: 24.09.2016, 15:19
Beiträge: 22
Да , разобрался, заработало.
Всем спасибо огромное.


Dateianhänge:
iobroker-4.jpeg
iobroker-4.jpeg [ 56.53 KiB | 2576 mal betrachtet ]
Nach oben
   
BeitragVerfasst: 17.10.2016, 12:28 
Offline
starter

Registriert: 15.10.2016, 20:05
Beiträge: 14
Hat sich bedankt: 6 Mal
Поскольку я очень далек от программирования, и кроме школьного QBasic-а ничего не знаю, может кто то сделать небольшую вводную лекцию по принципам работы ioBroker-а?) Сильно не смейтесь от глупых вопросов :)
Логику писать смогу только в Blockly.
Для чего нужны "Категории", что в них добавлять?
Есть где то описание виджетов? (сейчас я слабо представляю что значит oid-working: ID батарейного индикатора: ID качества сигнала: в Димере).
И главный вопрос что делать со скриптами?
Если мне надо чтобы скрипт выполнился однократно по нажатию кнопки с этим понятно, но если надо что бы он выполнялся по сигналу с какого то датчика, к примеру движения, куда его вставлять?
И как то можно заставить брокер все время принимать и обрабатывать показания со входов? А то выходит реакция на датчик 1-30 сек как повезет или это так только с фоторезистором, датчики движения по другому будут работать?
Если это было уже разжевано на немецком форуме, дайте ссылку, думаю вместе с google translate разберемся :)
Спасибо.


Nach oben
   
BeitragVerfasst: 17.10.2016, 16:13 
Offline
professional

Registriert: 13.08.2015, 07:23
Beiträge: 126
Hat sich bedankt: 30 Mal
Danksagung erhalten: 14 Mal
Попробую немного объяснить про расписание и подписку:
Можно вызывать какие-то команды по расписанию, а можно по изменению например.
Code:
on({id: 'squeezebox.0.Children.elapsedTimeText', change: 'any'}, function (obj) {
setState("mqtt.0.beeiot.Bee-RGB.lcd.line0", "Прошло " + getState("squeezebox.0.Children.elapsedTimeText").val);
setState("mqtt.0.beeiot.Bee-RGB.lcd.line1", getState("squeezebox.0.Children.currentTitle").val);
setState("mqtt.0.beeiot.Bee-RGB.lcd.line2", "Громкость " + getState("squeezebox.0.Children.volume").val + " %");
});

on({id: 'mqtt.0.beeiot.Bee-RGB.gpioint1', change: 'any'}, function (obj) {
setState("squeezebox.0.Children.volume", getState("squeezebox.0.Children.volume").val - 1);
setState("mqtt.0.beeiot.Bee-RGB.lcd.line2", "Громкость " + getState("squeezebox.0.Children.volume").val + " %");
});

on({id: 'mqtt.0.beeiot.Bee-RGB.gpioint2', change: 'any'}, function (obj) {
setState("squeezebox.0.Children.volume", getState("squeezebox.0.Children.volume").val + 1);
setState("mqtt.0.beeiot.Bee-RGB.lcd.line2", "Громкость " + getState("squeezebox.0.Children.volume").val + " %");
});

schedule("*/2 * * * * *", function () {
setState("mqtt.0.beeiot.Bee-RGB.lcd.line0", "Прошло " + getState("squeezebox.0.Children.elapsedTimeText").val);
setState("mqtt.0.beeiot.Bee-RGB.lcd.line1", getState("squeezebox.0.Children.currentTitle").val);
setState("mqtt.0.beeiot.Bee-RGB.lcd.line2", "Громкость " + getState("squeezebox.0.Children.volume").val + " %");
});

1,2,3 блоки - это подписка на переменные.
Первый блок при "любом" изменении переменной squeezebox.0.Children.elapsedTimeText - выполняются 3 строчки.
Второй блок при "любом" изменении значения переменной mqtt.0.beeiot.Bee-RGB.gpioint1 - выполняются 2 строчки.
Третий болк - аналогично второму.
Четвертый блок (schedule) - 3 строки выполняются каждые 2 секунды.

Это у меня все один скрипт (делал для проверки.... при помощи форумчан... так и работает)


Nach oben
   
BeitragVerfasst: 17.10.2016, 16:51 
Offline
starter

Registriert: 15.10.2016, 20:05
Beiträge: 14
Hat sich bedankt: 6 Mal
MSapogov hat geschrieben:
Это у меня все один скрипт (делал для проверки.... при помощи форумчан... так и работает)

Вот напишу я и сохраню скрипт, его же где то как то надо подключать?


Nach oben
   
BeitragVerfasst: 17.10.2016, 17:09 
Offline
professional

Registriert: 13.08.2015, 07:23
Beiträge: 126
Hat sich bedankt: 30 Mal
Danksagung erhalten: 14 Mal
AvaloncheG hat geschrieben:
MSapogov hat geschrieben:
Это у меня все один скрипт (делал для проверки.... при помощи форумчан... так и работает)

Вот напишу я и сохраню скрипт, его же где то как то надо подключать?

Я его просто в скриптах запускаю и от продолжает все время работать.
Если необходимо организовать запуск скрипта по нажатию кнопки, то никто не мешает создать переменную для кнопки, а затем подписаться на изменение/обновление (Находится в "События") этого состояния и выполнить необходимые команды. Но скрипт будет постоянно запущен.
Думаю, что как-то так.


Nach oben
   
BeitragVerfasst: 18.10.2016, 17:18 
Offline
starter

Registriert: 15.10.2016, 20:05
Beiträge: 14
Hat sich bedankt: 6 Mal
Спасибо MSapogov, со скриптами разобрался.
Помогите с Категориями для чего они надо?
И где создавать свои переменные? А то я пока могу только оперировать существующими.


Nach oben
   
BeitragVerfasst: 18.10.2016, 17:26 
Offline
professional

Registriert: 12.05.2015, 16:49
Beiträge: 514
Wohnort: Lithuania, Vilnius
Hat sich bedankt: 17 Mal
Danksagung erhalten: 38 Mal
AvaloncheG hat geschrieben:
Спасибо MSapogov, со скриптами разобрался.
Помогите с Категориями для чего они надо?
И где создавать свои переменные? А то я пока могу только оперировать существующими.

Почитай, в двух словах не опишешь
http://www.iobroker.net/docu/?page_id=4459&lang=ru
Можно в скрипте для этого скрипта
Code:
createState('tempOutside','');
.....

В немецком разделе есть всякие скрипты с ссылками на форум
http://www.iobroker.net/docu/?page_id=2786&lang=de

_________________
js-controller: 1.2.0 / node.js: v4.8.6 / npm: 2.15.11
admin: 3.0.1
javascript: 3.5.0
web: 2.1.7 vis: 1.0.4
cloud: 2.0.5

Server: DELL FX170 / linux: Debian 8.8 Jessie
Adapter: MegaD-2561, Mega-ESP, Wrapper(Home)


Nach oben
   
BeitragVerfasst: 18.10.2016, 20:15 
Offline
starter

Registriert: 15.10.2016, 20:05
Beiträge: 14
Hat sich bedankt: 6 Mal
Haus hat geschrieben:
Почитай, в двух словах не опишешь
http://www.iobroker.net/docu/?page_id=4459&lang=ru
Можно в скрипте для этого скрипта
Code:
createState('tempOutside','');
.....

В немецком разделе есть всякие скрипты с ссылками на форум
http://www.iobroker.net/docu/?page_id=2786&lang=de


Большое спасибо, почти со всем что хотел разобрался, единственный вопрос, как то в объектах можно папку создать, что бы туда запихнуть все свои переменные? Или можно все в админ бросать? Как более правильно?


Nach oben
   
BeitragVerfasst: 18.10.2016, 20:43 
Offline
Site Admin
Benutzeravatar

Registriert: 13.07.2014, 14:42
Beiträge: 7712
Hat sich bedankt: 290 Mal
Danksagung erhalten: 829 Mal
Zitat:
Большое спасибо, почти со всем что хотел разобрался, единственный вопрос, как то в объектах можно папку создать, что бы туда запихнуть все свои переменные? Или можно все в админ бросать? Как более правильно?

createState('javascript.0.Папка.переменная1');
createState('javascript.0.Папка.переменная2');
createState('javascript.0.Папка.переменная3');

Правда обращаться к ним надо тоже по полному имени 'javascript.0.Папка.переменная3'


Nach oben
   
BeitragVerfasst: 18.10.2016, 21:22 
Offline
starter

Registriert: 15.10.2016, 20:05
Beiträge: 14
Hat sich bedankt: 6 Mal
Bluefox hat geschrieben:
Правда обращаться к ним надо тоже по полному имени 'javascript.0.Папка.переменная3'

Спасибо, я все равно языка не знаю, буду в Blockly выбирать :)


Nach oben
   
BeitragVerfasst: 22.06.2017, 05:51 
Offline
starter

Registriert: 14.06.2017, 05:34
Beiträge: 25
Bluefox hat geschrieben:
akalchuk hat geschrieben:
Добрый день!
Подскажите знающие люди можно ли создавать правила логики чем нибудь помимо скриптов?
Языка я не знаю(да и времени особо нет разбираться) поэтому для меня это создает неудобства(

Задача для начала самая тривиальная:

Есть у меня Esp, датчик движения и лампочка и реле)
Я хочу чтобы по сигналу от датчика движения загоралась лампа/

Я пытался создать сцену для этого/ В свойствах сцены указывал триггер, но оно не работает корректно(минимальное время обновления mqtt - 5 сек). Сразу после срабатывания триггера желаемый контакт меняет значение, но на долю секунды и реле не успевает сработать.

Подскажите как реализовать желаемое)

Заранее благодарен)

Ps: на geektimes  в комментах BlueFox упоминал blockly как среду визуального программирования, но полазив по немецкой ветке с переводчиком я так понял, что он его только запиливает...
Или я что-то упустил?

Про Node-Red я молчу/ по мне так штука бесполезная/ ни мануальв ни разьяснений в инете я не нашел/ помоему в целях автоматизации дома он бесполезен/ Если не прав - давайте обсудим)

Кому интересно вот статья https://geektimes.ru/post/277154/

Но ты вполне можешь его установить написав 4 строчки:
Code:
cd /opt/iobroker
npm install https://github.com/ioBroker/ioBroker.javascript/tarball/master
iobroker upload javascript
iobroker start javascript


После обновления в браузере должен blockly появится


строка npm install https://github.com/ioBroker/ioBroker.ja ... all/master выдаёт ошибку
Spoiler: Show hidden text
npm ERR! tar.unpack untar error /home/pi/.npm/iobroker.javascript/3.3.9/package.tgz
npm ERR! Linux 4.4.38-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "https://github.com/ioBroker/ioBroker.javascript/tarball/master"
npm ERR! node v4.8.3
npm ERR! npm v2.15.11
npm ERR! path /opt/iobroker/node_modules/iobroker.javascript
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/opt/iobroker/node_modules/iobroker.javascript'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/opt/iobroker/node_modules/iobroker.javascript']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/opt/iobroker/node_modules/iobroker.javascript',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/opt/iobroker/node_modules/iobroker.javascript',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR! /opt/iobroker/npm-debug.log


Nach oben
   
BeitragVerfasst: 22.06.2017, 06:01 
Offline
guru
Benutzeravatar

Registriert: 09.11.2014, 16:50
Beiträge: 1238
Wohnort: Барнаул
Hat sich bedankt: 15 Mal
Danksagung erhalten: 41 Mal
ValG hat geschrieben:
Bluefox hat geschrieben:
akalchuk hat geschrieben:
Добрый день!
Подскажите знающие люди можно ли создавать правила логики чем нибудь помимо скриптов?
Языка я не знаю(да и времени особо нет разбираться) поэтому для меня это создает неудобства(

Задача для начала самая тривиальная:

Есть у меня Esp, датчик движения и лампочка и реле)
Я хочу чтобы по сигналу от датчика движения загоралась лампа/

Я пытался создать сцену для этого/ В свойствах сцены указывал триггер, но оно не работает корректно(минимальное время обновления mqtt - 5 сек). Сразу после срабатывания триггера желаемый контакт меняет значение, но на долю секунды и реле не успевает сработать.

Подскажите как реализовать желаемое)

Заранее благодарен)

Ps: на geektimes  в комментах BlueFox упоминал blockly как среду визуального программирования, но полазив по немецкой ветке с переводчиком я так понял, что он его только запиливает...
Или я что-то упустил?

Про Node-Red я молчу/ по мне так штука бесполезная/ ни мануальв ни разьяснений в инете я не нашел/ помоему в целях автоматизации дома он бесполезен/ Если не прав - давайте обсудим)

Кому интересно вот статья https://geektimes.ru/post/277154/

Но ты вполне можешь его установить написав 4 строчки:
Code:
cd /opt/iobroker
npm install https://github.com/ioBroker/ioBroker.javascript/tarball/master
iobroker upload javascript
iobroker start javascript


После обновления в браузере должен blockly появится


строка npm install https://github.com/ioBroker/ioBroker.ja ... all/master выдаёт ошибку
Spoiler: Show hidden text
npm ERR! tar.unpack untar error /home/pi/.npm/iobroker.javascript/3.3.9/package.tgz
npm ERR! Linux 4.4.38-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "https://github.com/ioBroker/ioBroker.javascript/tarball/master"
npm ERR! node v4.8.3
npm ERR! npm v2.15.11
npm ERR! path /opt/iobroker/node_modules/iobroker.javascript
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/opt/iobroker/node_modules/iobroker.javascript'
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir '/opt/iobroker/node_modules/iobroker.javascript']
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'mkdir',
npm ERR! path: '/opt/iobroker/node_modules/iobroker.javascript',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/opt/iobroker/node_modules/iobroker.javascript',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ '/usr/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR! '/usr/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR! 'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR! /opt/iobroker/npm-debug.log
блокли работает по умолчанию уже давным давно

_________________
Высокий уровень Децибел вреден для здоровья!
Мой блог


Nach oben
   
BeitragVerfasst: 22.06.2017, 10:14 
Offline
professional

Registriert: 26.12.2014, 09:40
Beiträge: 252
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
ValG hat geschrieben:



Ошибка означает что нет прав на создание каталога. Надо запускать команду от имени под которым работает IoB. Вообще лучше устанавливать драйвер не с командной строки, а через админ панель. И да, blockly работает давно.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 35 Beiträge ]  Gehe zu Seite Vorherige 1 2

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu Forum:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de