• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

IoT Manager - архив обсуждений

Статус
В этой теме нельзя размещать новые ответы.

Amadeus71rus

New member
Интересный однако у автора подход к привлечению интереса к своей программе... На вопросы не отвечает несколько дней, ошибки и замечания не исправляет, дорабатывать не собирается пока не дадут денег...

Автор, извини, но программа должна работать "из коробки", а не "в принципе". Тогда можно и денег дать. А так...
 

Roman2344

New member
Вообщем всё сделал как написано на второй странице Victorom полностью как написано, а у меня ошибки:

Arduino: 1.6.5 (Windows 7), Плата"Arduino/Genuino Uno"

Изменена опция сборки, пересобираем все

WARNING: library ESP8266WiFi claims to run on [esp8266] architecture(s) and may be incompatible with your current board which runs on [avr] architecture(s).



In file included from C:\Users\user\Documents\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:32:0,
from esp8266_arduino_IDE_tweet.ino:4:
C:\Users\user\Documents\Arduino\libraries\ESP8266WiFi\src/WiFiClient.h:28:18: fatal error: memory: No such file or directory
[HASHTAG]#include[/HASHTAG] <memory>
^
compilation terminated.
Ошибка компиляции.

Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки
 

Victor

Administrator
Команда форума
Я вот скачал ардуино ИДЕ 1.6.5
ок, вот тут несколько инструкций
http://esp8266.ru/forum/threads/obschie-voprosy-po-arduino-ide-dlja-esp8266.224/
http://esp8266.ru/forum/threads/iot-manager.651/page-2#post-11228

у меня синяя esp-01 - живет без перезагрузки около 3-х дней
я тоже тестировал около 3 дней - все ок. обычно все проблемы со стабильностью в питании.

Отключил отправку push , вроде стало стабильнее. Наблюдаемс
надеюсь, что в Arduino IDE для ESP8266 поправят проблемы нестабильности с HTTPS (нужен для push)

Ох и запутанно как все оказалось. Такое количество сложностей отпугнет многих от пробы этого проекта (я о том что нужна особенная версия pubsubclient итд).
Ну проект для DIY, поэтому нужно приложить не только руки но и мозги. Зато можно сделать именно так, как вам нужно. Задумывалось как проект с высоким уровнем кастомизации под нужды конкретного пользователя.
Основные сложности в том, что Arduino IDE очень быстро развивается, но это, наоборот, хорошо.

Как вы дальше это разбираете?
Код:
    $rootScope.onMessageArrived = function(message) {
      $rootScope.msg_rcv ++;
      $rootScope.times.rcv = new Date();
      Logger.warn("Message Arrived. Topic: " + message.destinationName + " => " + message.payloadString);
      if (message.destinationName === "/IoTmanager") {
        // device handshaking
        if ( message.payloadString == "HELLO" ) {
          // our hello - do nothing
        } else { // device hello
          $rootScope.subscribe("/IoTmanager/" + message.payloadString + "/config");
          // Send our ids for this device
          $timeout ( function(){
            if ($rootScope.mobile_ids) {
              $rootScope.send("/IoTmanager/ids", $rootScope.mobile_ids);
            } else {
              Logger.err('ERROR: ids not found - push notification will be disabled.');
            }
          }, 5000);
        }
      } else if (message.destinationName.split("/")[3] == "config") {
        var device = message.destinationName.split("/")[2];
        Logger.warn('Detecting config data from device ' + device);
        var msg = angular.fromJson(message.payloadString);
          var isNew = true;
          for ( var i = 0; i < $rootScope.widgets.length; i++) {
            if (($rootScope.widgets[i].deviceID == device) && ($rootScope.widgets[i].id == msg.id)) {
              isNew = false;
              Logger.warn('Update local data for device: ' + device + ', widget: ' + msg.descr);
              $rootScope.widgets[i] = msg;
              $rootScope.subscribe(msg.topic + "/status");
            }
          }
          if (isNew) {
            Logger.warn('Add device ' + device + ' sensor ' + msg.descr);
            msg.deviceID = device;
            $rootScope.widgets.push(msg);
            $rootScope.subscribe(msg.topic + "/status");
          }
        $rootScope.pages = [];
        for ( var i = 0; i < $rootScope.widgets.length; i++) {
          isNew = true;
          for ( var j = 0; j < $rootScope.pages.length; j++) {
            if ($rootScope.pages[j] == $rootScope.widgets[i].page) {
               isNew = false;
            }
          }
          if (isNew) {
            $rootScope.pages.push($rootScope.widgets[i].page);
          }
        }
      } else {
        for ( var i = 0; i < $rootScope.widgets.length; i++) {
          if ($rootScope.widgets[i].topic + "/status" == message.destinationName) {
            Logger.warn('Status data arrived from device for sensor ' + $rootScope.widgets[i].topic);
            var msg = angular.fromJson(message.payloadString);
            $rootScope.widgets[i].status  = msg.status;
            if ($rootScope.widgets[i].widget == 'toggle') {
              $rootScope.widgets[i].control = (msg.status == '1');
            } else {
              $rootScope.widgets[i].control = msg.status;
            }
          }
        }
      }
      $rootScope.needRefresh = true;
      $timeout ( function(){
        $rootScope.needRefresh = false;
      }, 500);
    }
надеюсь из кода видно, что в таком виде его никак нельзя выкладывать в общий доступ без серьезного рефакторинга, даже если я и решу сделать его OpenSource.
 

Roman2344

New member
Спасибо Amadeus71rus подсказал что при компиляции выбирать сам ESP8266, и Victoru спасибо за инструкцию на второй странице, вопрос теперь в том у меня
ESP8266-12Q в ардуино ИДЕ выбирать какую из плат? Там же 8266 целая куча. И теперь есть ошибка к примеру в образце ESP8266WiFi-WiFiAccessPoint такая ошибка:
Arduino: 1.6.5 (Windows 7), Плата"NodeMCU 0.9 (ESP-12 Module), 80 MHz, Serial, 115200, 4M (3M SPIFFS)"

C:\Users\user\Documents\Arduino\libraries\ESP8266WebServer\src\ESP8266WebServer.cpp:25:28: fatal error: libb64/cencode.h: No such file or directory
[HASHTAG]#include[/HASHTAG] <libb64/cencode.h>
^
compilation terminated.
Multiple libraries were found for "ESP8266WiFi.h"

Used: C:\Users\user\Documents\Arduino\libraries\ESP8266WiFi

Not used: C:\Users\user\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WiFi

Multiple libraries were found for "ESP8266WebServer.h"

Used: C:\Users\user\Documents\Arduino\libraries\ESP8266WebServer

Not used: C:\Users\user\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WebServer

Ошибка компиляции.

Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройк
Я так понял это из - за того что я поставил коммюнити версии 2.0.0 ?
 

Victor

Administrator
Команда форума
В процессе новая версия.
Из фич:
1. мультиязычность (пока англ. и русский) если есть желающие перевести на другие языки или сообщить о неточностях перевода - вэлкам!
JavaScript:
var translations = {
'EN': {
    SETTINGS_MENU   : 'Settings',
    DASHBOARD       : 'Dashboard',
    VIEW_LOG_MENU   : 'View log',
    STATISTICS      : 'Statistics',
    HELP            : 'Help',
    CHANGE_LANG     : 'Select language',
    SET_ENGINE_PAHO : 'Set Eclipse Paho as default engine',
    SET_ENGINE_MQTT : 'Set MQTT.JS as default engine',
    PAHO_SETTINGS   : 'Set Paho MQTT connection data',
    MQTT_SETTINGS   : 'Set MQTT.JS connection data',
    OPTIONS_OTHER   : 'OTHER SETTINGS',
    OPTIONS_LOGGING : 'Enable events logging',
    OPTIONS_TOASTING: 'Enable Toast messages',
    OPTIONS_PUSHING : 'Enable Push Notification',
    OPTIONS_RECONNECT:  'Reconnect after connection lost',
    OPTIONS_SHOWSTATUS: 'Show connection status',
    OPTIONS_ENDUSER : 'End-user mode',
    NO_DATA         : 'NO DATA',
    CONNECTED       : 'CONNECTED',
    DISCONNECTED    : 'DISCONNECTED',
    APP_LAUNCHED    : 'App launched',
    BROKER_CONNECTED: 'Broker connected',
    SUBSCRIBED_TOPICS:'Subscribed topics',
    MSG_SENT        : 'Messages sent',
    LAST            : 'last',
    MSG_RCV         : 'Messages rcv',
    SEND_EMAIL      : 'SEND ID TO E-MAIL',
    CONNECTED_SUCCESS:'Connected successfully!',
    CONNECT_FAIL    : 'Connect FAIL!',
    CONNECTION_LOST : 'Connection LOST!',
    LOG_CLEAR       : 'Log clear: Success.',
    STAT_RESET      : 'Statistics reset: Success.',
    SELECT_PROTO    : 'Select protocol',
  },
  'RU': {
    SETTINGS_MENU: 'Настройки',
    DASHBOARD    : 'Главная',
    VIEW_LOG_MENU: 'Просмотр лога',
    STATISTICS   : 'Статистика',
    HELP         : 'Помощь',
    CHANGE_LANG  : 'Выберите язык',
    SET_ENGINE_PAHO : 'Выбрать движок Eclipse Paho',
    SET_ENGINE_MQTT : 'Выбрать движок MQTT.JS',
    OPTIONS_OTHER   : 'ПРОЧИЕ НАСТРОЙКИ',
    PAHO_SETTINGS   : 'Настройки Eclipse Paho',
    MQTT_SETTINGS   : 'Настройки MQTT.JS',
    OPTIONS_LOGGING : 'Включить логгирование',
    OPTIONS_TOASTING: 'Включить сообщения',
    OPTIONS_PUSHING : 'Включить push уведомления',
    OPTIONS_RECONNECT: 'Авто переподключение',
    OPTIONS_SHOWSTATUS: 'Показывать статус',
    OPTIONS_ENDUSER : 'Режим end-user',
    NO_DATA         : 'Нет данных',
    CONNECTED       : 'Подключено',
    DISCONNECTED    : 'Не подключено',
    APP_LAUNCHED    : 'Приложение запущено',
    BROKER_CONNECTED: 'Брокер подключен',
    SUBSCRIBED_TOPICS:'Подписок на топики',
    MSG_SENT        : 'Отправлено',
    LAST            : 'последнее',
    MSG_RCV         : 'Получено',
    SEND_EMAIL      : 'ОТПРАВИТЬ ID НА E-MAIL',
    CONNECTED_SUCCESS:'Успешное подключение!',
    CONNECT_FAIL    : 'Ошибка подключения!',
    CONNECTION_LOST : 'Потеря связи!',
    LOG_CLEAR       : 'Лог очищен.',
    STAT_RESET      : 'Статистика сброшена.',
    SELECT_PROTO    : 'Выберите протокол',
  }
}
2. кроме paho - второй встроенный движок mqtt.js (тоже только WebSockets порты из-за ограничений WebView)
3. интегрирован Crosswalk WebView для того, чтобы быть независимыми от разных версий Android и проблем подключений на разных версиях
4. мелкие исправления ошибок
 

Victor

Administrator
Команда форума

Roman2344

New member
Спасибо, ещё вопрос а после того как я залью скетч в 8266 мне в ардуино ничего заливать не нужно? И обмен данными между 8266 и ардуиной в библиотеке Arduino-master идёт по Юарту ?
 

Victor

Administrator
Команда форума
Интересный однако у автора подход к привлечению интереса к своей программе... На вопросы не отвечает несколько дней, ошибки и замечания не исправляет, дорабатывать не собирается пока не дадут денег...

Автор, извини, но программа должна работать "из коробки", а не "в принципе". Тогда можно и денег дать. А так...
Трудно что-то ответить вам, но я все равно постараюсь.
Я не считаю, что я кому-то что-то должен. Хотя с удовольствием стараюсь помочь, когда появляется такая возможность в свободное время, которое я отбираю у работы и семьи.
Ну и собственно денег от этого я и не ожидаю. Впрочем, это было прогнозируемо, так что я не удивлен. Будет время - постараюсь всем ответить и доделать недоделки. Может быть.
Поэтому AS IS.
1.jpg
 

Victor

Administrator
Команда форума
Спасибо, ещё вопрос а после того как я залью скетч в 8266 мне в ардуино ничего заливать не нужно? И обмен данными между 8266 и ардуиной в библиотеке Arduino-master идёт по Юарту ?
если вы Arduino (плату) используете как USB-TTL то нет, ничего не нужно в нее заливать.
Arduino IDE используется для прошивки ESP8266 и без Arduino (платы). Обмен между Arduino (как платы с микроконтроллером) с ESP8266 (как другой микроконтроллер) в этих примерах не предусмотрен.
 

Amadeus71rus

New member
Victor, вы уж извините что на ты обращался как к автору и не подумайте плохого. Я прекрасно понимаю что была проделана огромная работа и за нее отдельное спасибо выразилось в поддержке вашего проекта. Но хотелось бы надеятся на продолжение, а его как мне показалось и не оказалось... Рад услышать что все-таки продолжение будет.

Теперь по существу. Ваш код, если честно, мне как человеку недавно знакомому с Arduino стоил немало ночей, пока я в нем разобрался. Т.к. у меня стоит немного другая задача, нежели мигать светиками и регулировать их яркость, то сейчас я все-таки пишу свое подобное приложение, сохранив Вашу структуру скетча. Многое не получается, т.к. я до этого был знаком только с html и чуть-чуть php. Но разбираться в коде проще, чем учить с нуля. Именно поэтому я и прошу Вас показать исходники Ionic-приложения для понимания реализации некоторых функций. Можно и не комментированный код, поскольку просить Вас посмотреть мой код и добавить функции за меня было бы не корректно. Если надумаете поделиться - скиньте в личку.

Актуальная картинка с вашего сайта. Если проект будет удовлетворять нуждам пользователей - я думаю поддержу Вас не только я.
Безымянный.png
 
@Victor спасибо Вам за Вашу работу. Я постоянно сталкиваюсь с Вашими ответами, советами и решениями.
Думаю, если разобраться конкретнее с Вашей программой, и оттестировать её , то это будет уже хорошей частью или даже основой для различных проектов. Тогда, надеюсь, и пойдут скачивания и финансовая помощь.
К сожалению попробовать программу долго не получалось ( но после переустановки ИДЕ - прошла компиляция.. буду пробовать.
 
@Victor , запустил скетч 2 и программу на телефоне.
Первый запуск отобразил каждого элемента по 3 штуки..
нажал обновить. появилось все на экране по одной штуке..я обрадовался, но потом через несколько секунд произлошло как бы обновление экрана. я подумал, что идет опрос текущего состояния, и каждого элемента добавилось еще по одному.
нажал опять обновить, уже порядка 10 минут хорошее отображение по одной штуке ..
Не подскажете, что это может быть?
или не стоит обращать внимание?
 
@Victor понял )
если не сложно, подскажите. загрузил скетч 2. поменял настройки вайфай порт. подключается к серверу mqtt .. там есть сообщения..
если не вызывать отправку push то скетч работает долгое время.
как только вызывается отправка push ЕСП уходит в перезагрузку
Код:
Subscribe: Success
PUSH: try to send push notification...

Panic C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:404 ax_port_realloc

ctx: cont
sp: 3fff1d80 end: 3fff21f0 offset: 01b0

>>>stack>>>
3fff1f30:  40106dd2 3fff5198 00000000 3fff6b15 
3fff1f40:  36363636 3fff6628 3fff6634 40204d31 
3fff1f50:  3fff6b15 00000000 3fff5198 4021a146 
3fff1f60:  3fff6b15 00000000 3fff5198 4021b526 
3fff1f70:  00000001 00000000 3fff68d0 402196ef 
3fff1f80:  00000000 00000024 00000024 40204890 
3fff1f90:  00000010 3fff6b15 3fff5244 3fff1fd0 
3fff1fa0:  3fff6b15 3fff55f0 00000027 00000010 
3fff1fb0:  3fff5198 3fff6b15 00000010 00000010 
3fff1fc0:  3fff6b15 00000000 3fff5198 4021af76 
3fff1fd0:  c2b32a1c 496a804e 32658263 c3a6419c 
3fff1fe0:  d10a60c7 00000000 00000038 4021a694 
3fff1ff0:  00020016 00000014 00000010 00000010 
3fff2000:  00000033 00000016 3fff5198 00000000 
3fff2010:  00000000 3fff5198 3fff5198 4021b0aa 
3fff2020:  00000000 3fff6b15 3fff5198 4021b271 
3fff2030:  00000000 3fff5160 3fff5198 4021b2f8 
3fff2040:  3fff3a28 4020628e 3fff0b04 3fff1028 
3fff2050:  3fff102c 3fff0b04 3fff3a38 40204ba2 
3fff2060:  76a4ef68 3fff2120 40206360 3fff2120 
3fff2070:  3fff0f50 000001bb 3fff0b04 40204d9a 
3fff2080:  3ffe9bf0 76a4ef68 3ffe9339 3fff2120 
3fff2090:  0000000a 000001bb 3fff0b04 4020424d 
3fff20a0:  3ffe9bf0 76a4ef68 3ffe9bf0 76a4ef68 
3fff20b0:  3ffe9688 40106da6 3fff2240 402074ec 
3fff20c0:  3fff20e0 3fff2240 3fff0b04 40204db0 
3fff20d0:  3fff4c68 3fff2240 3fff0f68 40203022 
3fff20e0:  00003832 0000000f 3fff2120 40207a96 
3fff20f0:  0000000a 0000001c 3fff2120 40207b98 
3fff2100:  3ffea0e4 0000001c 3fff0f68 3fff0f44 
3fff2110:  0000000a 0000001c 3fff0f68 40203b95 
3fff2120:  3fff4c38 0000001f 0000001f 3fff11d0 
3fff2130:  00000000 3fffdc20 3fff11c0 00000030 
3fff2140:  3fff39d8 00000001 3fff3bd8 0000000f 
3fff2150:  0000000d 3fff3c58 0000000f 00000000 
3fff2160:  3fff3cd8 0000000f 00000000 3fff4880 
3fff2170:  0000000f 00000005 3fff4c38 0000000f 
3fff2180:  00000009 3fff000f 3fff3a38 0000000f 
3fff2190:  00000002 40206c60 3fff4c68 0000001f 
3fff21a0:  0000001f 3fff3a38 0000000f 0000000d 
3fff21b0:  00000000 00000000 00000016 40101941 
3fff21c0:  40206381 0000000f 00000000 3fff11c0 
3fff21d0:  3fffdc20 00000000 3fff11b8 402063a9 
3fff21e0:  00000000 00000000 3fff11d0 40100114 
<<<stack<<<

ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
~ld

установил версию 1.6.5 (на версии 1.6.6. - не запустилось), установил свежий версии 2.0.0(может это тоже важно??) пакет для работы с ЕСП. последний архив pubsubclient именно для ЕСП.. переустановку делал по Вашему посту с очисткой папок, библиотек и т.д...
для отправки PUSH, прописал ИД телефона из Вашей программы в скетче. Кроме этого надо что то еще менять или настраивать? может регистрироваться где то ??
или просто не нравиться файл WiFiClientSecure.cpp ???

и еще.. подскажите, в строке:
Код:
Panic C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WiFi\src\WiFiClientSecure.cpp:404 ax_port_realloc
404 ax_port_realloc - это что?? это случайно не ответ сервера ? как ответ с кодом 200 - все ок, и т.д. .. 404 - ошибка страница не найдена

Кстати, только щас заметил, посмотрел на телефон, там "задвоились" виджеты примерно 25 раз.. то есть у меня по 25 штук одинаковых виджетов...
похоже что задваиваются как раз при перезагрузке модуля.. правда не каждый раз. чаще всего в терминале то что выше указал, но иногда бывает ошибка на том же месте, но срабатывает WDT...
 

Victor

Administrator
Команда форума
свежий версии 2.0.0(может это тоже важно??) пакет для работы с ЕСП
похоже, что в новой версии сломали HTTPS, в предыдущей все работало, хотя иногда и вываливалось.
пока отключите push (можно просто закомментировать в скетче)
буду разбираться, ждем исправлений в Arduino IDE
 
Victor, поня. Придется ждать ( как раз пуш и хотелось попробовать. Значит будет время на эксперименты с интерфейсом в вашем приложении. Ещё вопросы.
1.
Разделение на страницы. Видел что спрашивали уже. Я заметил в коде что есть в массиве название страницы. Реализация страниц это на стороне вашего приложения или надо самому в скетче как то прописывать эту реализацию? 2. Key -это не кнопка которой можно управлять из программы? Это отображение состояния физической кнопки? Или она не меняет внешний вид?
 

Victor

Administrator
Команда форума
Опубликована новая версия IoT Manager 1.4.2

Что нового?
1. Добавлена разбивка датчиков на страницы (изменений в скетчах для ESP8266 не требуется)
2. Добавлен движок MQTT.JS (сейчас в настройках можно выбрать между MQTT.JS и PAHO.JS)
3. Добавлен встроенный CrossWalk браузер для решения проблемы с подключением на некоторых версиях Android (поэтому сейчас разные APK файлы для ARM и x86).
4. Изменен алгоритм работы слайдера (изменения публикуются на брокер не чаще, чем через 200мс по таймеру и не менее 5% изменение значения слайдера, раньше было только при отпускании)
5. Исправлена досадная ошибка дублирования датчиков и некоторые другие
6. Встроена поддержка нескольких языков. Доступен русский и английский языки.

Screenshot_2015-12-06-20-55-38.jpg Screenshot_2015-12-06-20-55-42.jpg Screenshot_2015-12-06-20-55-47.jpg Screenshot_2015-12-06-21-33-54.jpg

Обновление доступно в Google Play.
Процесс обновления приложения - как обычно для всех Android приложений.
 

Minatavrus

New member
Подключил программу к локальному MQTT-брокеру mosquitto, установленному у меня на роутере.
Для этого нужно внести в файл /etc/mosquitto/mosquitto.conf строки:
listener 9001
protocol websockets

Чтобы продолжало нормально работать через 1883 порт, также нужно добавить:
listener 1883
protocol mqtt

Я еще прописал:
require_certificate false
В настройках IoT manager указал 9001 порт и отключил SSL/TLS, выбрал движок MQTT.JS.
Все работает.
 

shaman1010

Member
Подключил программу к локальному MQTT-брокеру mosquitto, установленному у меня на роутере.
...
Все работает.
А я ставил три разных версии брокера на двух железках. 1.4.5 и 1.4.3
Но при попытке подключения с любого андроида на любой из брокеров - результат один и тот-же:
1449482507: New connection from 192.168.13.58 on port 1883.
1449482507: Socket error on client <unknown>, disconnecting.
При этом mqtt spy и железки с хомсмарта топики гоняют без проблем, и HomA подключается, только там ничего не видно (особо не разбирался, увидел только сам факт подключения в одном из брокеров).
Такое впечатление, что ID то ли слишком длинным генерируется, то ли с запрещенными символами.
(Пробовал оба движка, а так-же SSL/noSSL на каждом)
Добавил:
listener 9001
protocol websockets
listener 1883
protocol mqtt
require_certificate false

но ничего не изменилось.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу