NEWS
Драйвер Mqtt + Arduino
-
Это лог с сервера CloudMQTT
Данные получены от ibrokera
На сколько я понимаю проблема в том, что iobroker не разбивает на топики полученные данные от CloudMQTT, а выдает все одной строкой.
Хотя во вкладке "состояния" значения отображаются.
А в обьектах нет
CloudMQTT
-
Сегодня пробовал на другом сервисе (брокере)
Получается название всего топика присваивается как переменная.
filename="3333.jpg" index="0">~~ `
Сегодня переписываю mqtt. Была полная путаница с конвертацией имён. -
Спасибо, что ответили, очень жду результата.
3514_alexa2_matthias.log -
Сегодня переписываю mqtt. Была полная путаница с конвертацией имён. `
Тут ещё такая
и ещё попутно
смотрю много новых драйверов, процесс идёт -
Ну что есть какие результаты?
-
Ну что есть какие результаты? `
Загляни на Github там версия аж 0.4.1 работа кипит но нам пока не дают. Если имеешь познание в javascript можешь сам от туда поставить, но учти он там сырой. -
Сегодня пробовал на другом сервисе (брокере)
Получается название всего топика присваивается как переменная.
filename="3333.jpg" index="0">~~
Сегодня переписываю mqtt. Была полная путаница с конвертацией имён.
Bluefox вопрос, ардуина работает у меня стабильно без сбоев. Тут так вышло что не хватает портов на коммутаторе я выдернул шнур из ардуины а драйвер даже этого не видит. Раньше были сбои по питанию и отваливалась связь, драйвер вроде warn писал ? -
Сегодня пробовал на другом сервисе (брокере)
Получается название всего топика присваивается как переменная.
filename="3333.jpg" index="0">~~
Сегодня переписываю mqtt. Была полная путаница с конвертацией имён.
Bluefox вопрос, ардуина работает у меня стабильно без сбоев. Тут так вышло что не хватает портов на коммутаторе я выдернул шнур из ардуины а драйвер даже этого не видит. Раньше были сбои по питанию и отваливалась связь, драйвер вроде warn писал ? `
Я для проверки всех устройств использую драйвер ping, а далее по важности устройства или на экран или озвучиваем, плюс обязательно через Pushbullet Adapter оповещает. -
Не ошибся warn всё же есть правда через 15 минут, а Танька у меня тоже вещает когда чего нибудь отваливается
sayit-0 2016-02-05 21:00:02 info saying: 21:00 sayit-0 2016-02-05 21:00:00 info saying: /opt/iobroker/node_modules/iobroker.sayit/gong.mp3 javascript-0 2016-02-05 21:00:00 info script.js.Time_say: 21:00 mqtt-0 2016-02-05 20:49:44 info Client [LCD-accumulator_tanks_1] closed mqtt-0 2016-02-05 20:49:44 warn [LCD-accumulator_tanks_1] Error: read EHOSTUNREACH javascript-0 2016-02-05 20:45:03 info script.js.Weather_forecast: Вильнюс, 8 февраля => Переменная облачность, без осадков. Температура ночью 1°, днём 5°. Ветер юго-западный, 4 м в секунду. javascript-0 2016-02-05 20:45:03 info script.js.Weather_forecast: Вильнюс, 7 февраля => Переменная облачность, без осадков. Температура ночью 0°, днём 4°. Ветер южный, 5 м в секунду. javascript-0 2016-02-05 20:45:03 info script.js.Weather_forecast: Вильнюс, 6 февраля => Облачно, небольшие осадки. Температура ночью -2°, днём 2°. Ветер южный, 4 м в секунду. sayit-0 2016-02-05 20:33:47 info Copied file '/opt/iobroker/node_modules/iobroker.sayit/say.mp3' to '/opt/iobroker/cache/91faf882091c8612d9a8019799947d6b.mp3' sayit-0 2016-02-05 20:33:47 info saying: Дисплей. Пропала связь! sayit-0 2016-02-05 20:33:45 info saying: /opt/iobroker/node_modules/iobroker.sayit/gong.mp3 javascript-0 2016-02-05 20:33:45 info script.js.Ping_0_say: Дисплей. Пропала связь!
-
Спасибо, с новой версией все работает как надо.
-
Добрый день.
Есть какие ограничение по количеству клиентов iobrokera ?
Есть 2 ESP8266 отсылают данные на CloudMQTT
Дома iobroker подключен как клиент и забирает данные с CloudMQTT
Все нормально работает.
Появилась задача поставить iobroker на работе и забирать данные с CloudMQTT.
Но при подключении происходит один раз считывание данных и все, дальше молчит пока не перезагрузишь mqtt и опять все повторяется.
И по моему дома перестает принимать тоже. (это еще не точно сегодня проверю еще раз)
-
Сегодня проверил - дома перестал принимать данные от mqtt как раз в тот момент когда я пытался настроить iobroker на работе.
Для тестов поставил iobroker на второй комп дома.
Провел пару тестов, результат один и тот же.
Как только подключаешься двумя iobroker к одному MQTT брокеру CloudMQTT, то оба перестают принимать данные с брокера (CloudMQTT)
Попробовал создать вторую учетку на CloudMQTT и соединил две учетки мостом, а iobroker-ы подключается каждый к своей учетки.
Пока полет нормальный, данные принимают оба, управление тоже присутствует.
-
Всем привет!
Пытаюсь подружить "Sonoff" с ioBroker через MQTT, на немецкой стороне форума интерес не проявляется. http://forum.iobroker.net/viewtopic.php?f=20&t=2656
Альтернативную прошивку залил через Arduino IDE (USB-TTL), объекты в ioBroker прописываются но релюшка не переключается. Причём если щёлкать кнопочкой на сомом Sonoff то ioBroker-у состояние передаётся.
Прошивку залил вот эту https://github.com/arendst/Sonoff-MQTT-OTA-Arduino
Подскажите где проблема?
-
Всем привет!
Пытаюсь подружить "Sonoff" с ioBroker через MQTT, на немецкой стороне форума интерес не проявляется. http://forum.iobroker.net/viewtopic.php?f=20&t=2656
Альтернативную прошивку залил через Arduino IDE (USB-TTL), объекты в ioBroker прописываются но релюшка не переключается. Причём если щёлкать кнопочкой на сомом Sonoff то ioBroker-у состояние передаётся.
Прошивку залил вот эту https://github.com/arendst/Sonoff-MQTT-OTA-Arduino
Подскажите где проблема? `
А вот эту прошивку не пробовали? https://wifi-iot.com Я себе собрал управляемую розетку на esp + реле на 15А, работает и переключается. Правда MQTT клиент входит в платную подписку, но она блага стоит копейки. -
А вот эту прошивку не пробовали? https://wifi-iot.com Я себе собрал управляемую розетку на esp + реле на 15А, работает и переключается. Правда MQTT клиент входит в платную подписку, но она блага стоит копейки. `
Пробывал. Там что-то тоже засада.. вот что в логе:
` > mqtt-0 2016-04-21 17:15:03 error Cannot parse {"system":{"hostname":"ESP000CD343","uptime":3,"rssi":-57,"freemem":33720},"sensors":},"gpio":{"12":0,"13":0}}
mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] subscribes on topic "timestamp"
mqtt-0 2016-04-21 17:15:03 info publishOnSubscribe send all known states
mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] subscribes on "ESP000CD343.#" with regex /^mqtt.0.ESP000CD343..*/
mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] subscribes on "ESP000CD343.#" with regex /^ESP000CD343..*/
mqtt-0 2016-04-21 17:15:03 info Client [ESP8266000cd343] connected
mqtt-0 2016-04-21 17:11:51 info Starting MQTT server on port 1883
mqtt-0 2016-04-21 17:11:50 info starting. Version 0.5.0 in /opt/iobroker/node_modules/iobroker.mqtt `
В настройка wifi-Iоt только пины GPIO прописывается и включается клиент mqtt, в ioBroker-е не прописывается заголовок на переключение релюшки.
-
А какое SDK используете и как давно прошивку собирали? И чип памяти там на сколько? Сегодня проверил прошивку на SDK 1.3.0 с 2 подключенными GPIO проблем не возникает, все в MQTT создалось и на вкладке "объекты" и "состояние" доступны.
-
А какое SDK используете и как давно прошивку собирали? И чип памяти там на сколько? Сегодня проверил прошивку на SDK 1.3.0 с 2 подключенными GPIO проблем не возникает, все в MQTT создалось и на вкладке "объекты" и "состояние" доступны. `
На SDK 1.5.1 собирал (последнюю, вчера). Чип на 1мб.
Вчера наткнулся на один проект https://github.com/h42i/sonoff-switch/b … sonoff.cpp прошил и сним нормально релюшка переключает, единственный минус при переключении на самом Sonoff не отсылается состояние на MQTT сервер, а так вполне работоспособный вариант.
-
Сегодня проверил прошивку на SDK 1.3.0 с 2 подключенными GPIO проблем не возникает, все в MQTT создалось и на вкладке "объекты" и "состояние" доступны. `
Вчера проверил с SDK 1.4.0 >> полёт нормальный, ошибок в логе нет, все переменныe создались, релюшка переключается. Спасибо за подсказку
-
добрый вечер всем нашёл этот скетч и обрадовался потому что это то что я и хотел но не тут было ни как не могу скомпилировать этот скетч , постоянно какие то ошибки сначала с библиотеками были вроде решил потом со строками
EthernetClient ethClient; //ЗДЕСЬ КОМЕНТИРУЮ И КОПИРУЮ В ДРУГОЕ МЕСТО НИЖЕ
PubSubClient client(server, 1883, callback, ethClient);
перенёс их ниже как подсказали эта ошибка исчезла и вот теперь уже несколько дней мучаюсь с ошибкой 58 строка
DHT DHT; ошибка no matching function for call to 'DHT::DHT()'
я думаю что проблема с библиотекой но я несколько установил проблема не исчезла . IDE 16.6
но пробовал и другие если кому не сложно выложите библиотеку DHT с которой этот скетч компилируется ну и заодно свой скетч и версию IDE. сейчас у меня ват такой скетч
! #include <spi.h>// Ethernet shield
! #include <ethernet.h>// Ethernet shield
! #include <pubsubclient.h>// MQTT
! #include <servo.h>#include <dht.h>#include <onewire.h>#include <dallastemperature.h>Servo servo;
! byte mac[] = { 0xC1, 0x7C, 0x38, 0x41, 0x89, 0x12 };
! byte server[] = { 192, 168, 1, 190 }; //IP Брокера
! byte ip[] = { 192, 168, 1, 167 }; //IP Клиента (Arduino)
! //EthernetClient ethClient; //ЗДЕСЬ КОМЕНТИРУЮ И КОПИРУЮ В ДРУГОЕ МЕСТО НИЖЕ
! //PubSubClient client(server, 1883, callback, ethClient);
! #define id_connect "myhome-kitchen"
! #define Prefix_subscribe "myhome/Kitchen/"
! ///////////////Объявляем порты ввода-вывода
! #define ServoPin 3 //Порт к которому подключен сервопривод
! const int start_DI_pin [] = {2, 4, 5}; // Порты Ввода
! int n_DI_pin = sizeof(start_DI_pin) / sizeof(start_DI_pin[0]) - 1; //Вычисляем длинну массива
! const int start_DO_pin [] = {6, 7}; //Порты Вывода
! int n_DO_pin = sizeof(start_DO_pin) / sizeof(start_DO_pin[0]) - 1; //Вычисляем длинну массива
! int DI[] = {0, 0, 0};
! int old_DI[] = {0, 0};
! ///////////////////////////Переменные для работы с освещением//////////////////////////////////////
! int ServoAngle = 100; //Угол сервопривода при включении
! int flag = 0;
! int flag2 = 0;
! int pause = 0;
! //–----------------------------------------- Sensors -------------------------------------------//
! const int MQ7_Pin = A0; // Куда подключили MQ7
! //int MQ7Value = 0;
! int MQ7Value = analogRead(MQ7_Pin);
! const int foto_Pin = A1; // устанавливаем входную ногу для Фоторезистора
! //unsigned int fotoValue = 0; // цифровое значение фоторезистора
! unsigned int fotoValue = analogRead(foto_Pin);
! #define ONE_WIRE_BUS 8
! OneWire oneWire(ONE_WIRE_BUS);
! DallasTemperature DS_sensors(&oneWire);
! // 28 FF F2 5C 53 15 2 97
! DeviceAddress addr_T1 = { 0x28, 0xFF, 0xF2, 0x5C, 0x53, 0x15, 0x02, 0x97 };
! float T1 = 0;
! DHT DHT;
! #define DHT22_PIN 9
! float Hout = 0;
! float Tout = 0;
! //#define DHTPIN 2 // Номер пина, к которому подсоединен датчик
! //#define DHTTYPE DHT22 // Задаём тип DHT датчика
! //DHT dht(DHTPIN, DHTTYPE);
! ////////////////////////////////////////////////////////////////////////////
! void callback(char* topic, byte* payload, unsigned int length) {
! payload[length] = '\0';
! // Serial.print(topic);
! // Serial.print("=");
! String strTopic = String(topic);
! String strPayload = String((char*)payload);
! // Serial.println(strPayload);
! callback_iobroker(strTopic, strPayload);
! }
! EthernetClient ethClient; //ЗДЕСЬ КОМЕНТИРУЮ И КОПИРУЮ В ДРУГОЕ МЕСТО НИЖЕ
! PubSubClient client(server, 1883, callback, ethClient);
! ////////////////////////////////////////////////////////////////////////////
! void setup() {
! //Serial.begin(57600);
! // Serial.println("start");
! //Объявляем порты Digital inputs/outputs
! for (int i = 0 ; i <= n_DI_pin; i++) {
! pinMode (start_DI_pin __, INPUT);
! }
! digitalWrite(5, HIGH); //Окно
! digitalWrite(4, HIGH); //Объемник
! for (int i = 0 ; i <= n_DO_pin; i++) {
! pinMode (start_DO_pin __, OUTPUT);
! }
! Ethernet.begin(mac, ip);
! if (client.connect(id_connect)) {
! getSensors();
! control();
! // client.publish("myhome/Kitchen/Change_Counter", "0");
! // client.publish("myhome/Kitchen/Temp_room", "0");
! // client.publish("myhome/Kitchen/Humidity_room", "0");
! // client.publish("myhome/Kitchen/Temp_radiator", "0");
! // client.publish("myhome/Kitchen/Temp_in", "0");
! // client.publish("myhome/Kitchen/Lux", "0");
! // client.publish("myhome/Kitchen/Servo", "0");
! // client.publish("myhome/Kitchen/MQ7", "0");
! client.subscribe("myhome/Kitchen/#");
! }
! }
! /////////////////////////////////////////////////////////////////////////
! void loop() {
! client.loop();
! control();
! getSensors();
! if (!client.connected()) {
! if (client.connect(id_connect)) {
! control();
! getSensors();
! client.subscribe("myhome/Kitchen/#");
! }
! }
! }____</dallastemperature.h></onewire.h></dht.h></servo.h></pubsubclient.h></ethernet.h></spi.h> __и отдельно Functions! /////////////////////////////////От Брокера//////////////////////////////////////////////
! void callback_iobroker(String strTopic, String strPayload){
! if (strTopic == "myhome/Kitchen/Servo"){
! ServoAngle=strPayload.toInt();
! if (ServoAngle >= 0 && ServoAngle <= 255){
! servo.attach(ServoPin);
! //delay(200); //ждем 2 секунды
! servo.write(ServoAngle); //ставим вал под 0
! delay(1000); //ждем 2 секунды
! //client.publish("myhome/Kitchen/Servo", b);
! servo.detach();
! }
! }
! }
! ////////////////////////////////////Брокеру/////////////////////////////////////
! void control(){
! if(digitalRead(5)==HIGH && flag==0) { //если окно открыто
! client.publish("myhome/Kitchen/Window", "1");
! flag=1;
! }
! if(digitalRead(5)==LOW && flag==1){//если окно закрыто
! client.publish("myhome/Kitchen/Window", "0");
! flag=0;//обнуляем переменную flag
! }
! if(digitalRead(4)==HIGH && flag2==0) { // Если есть движение
! client.publish("myhome/Kitchen/Motion", "1");
! flag2=1;
! }
! if(digitalRead(4)==LOW && flag2==1){// Если нет движения
! client.publish("myhome/Kitchen/Motion", "0");
! flag2=0;//обнуляем переменную flag
! }
! }
! ///////////////////////////////Данные сенсоров////////////////////////////////////
! void getSensors () {
! MQ7Value = analogRead(MQ7_Pin);
! fotoValue = analogRead(foto_Pin); // считываем значение с фоторезистора
! // ServoAngle = analogRead(2);
! //Обработка данных датчика DHT22. Подключение к порту цифровому P9 Arduino
! //Глобальные переменные Hout и Tout типа флоат - влажность (%) и температура (град. С)
! if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
! Hout = DHT.humidity;
! Tout = DHT.temperature;
! }
! if (Hout == 0 || Tout == 0){
! delay (1000);
! if (DHT.read22(DHT22_PIN)== DHTLIB_OK) {
! Hout = DHT.humidity;
! Tout = DHT.temperature;
! }
! }
! //Обработка данных цифровых датчиков температуры типа DS18B20.
! //Шина 1-Wire на цифровой пин P8 Arduino.
! //Подключено 2 датчика температуры, адреса задаются в секции глобальных констант "Sensors"
! //Три значение температуры T1, T2, типа float (град. С).
! DS_sensors.requestTemperatures();
! T1 = DS_sensors.getTempC(addr_T1);
! ///////////////////////Паблик данных сенсоров////////////////////////
! if (pause == 50 || pause == 0){
! char b[5];
! String char_Hout = String(Hout);
! char_Hout.toCharArray(b,5);
! client.publish("myhome/Kitchen/Humidity_room", b);
! String char_Tout = String(Tout);
! char_Tout.toCharArray(b,5);
! client.publish("myhome/Kitchen/Temp_room", b);
! String char_T1 = String(T1);
! char_T1.toCharArray(b,5);
! client.publish("myhome/Kitchen/Temp_radiator", b);
! String char_fotoValue = String(fotoValue);
! char_fotoValue.toCharArray(b,4);
! client.publish("myhome/Kitchen/Lux", b);
! String char_ServoAngle = String(ServoAngle);
! char_ServoAngle.toCharArray(b,4);
! client.publish("myhome/Kitchen/Servo", b);
! String char_MQ7Value = String(MQ7Value);
! char_MQ7Value.toCharArray(b,4);
! client.publish("myhome/Kitchen/MQ7", b);
! pause = 1;
! }
! else pause++;
! } Заранее всем спасибо жду ответов__ -
> я думаю что проблема с библиотекой но я несколько установил проблема не исчезла .
проблема не в библиотеке. Перепиши код под свою библиотеку