MySensors для новичков

Roman_13j
Сообщения: 32
Зарегистрирован: Пт мар 25, 2016 11:34 pm
Благодарил (а): 5 раз
Поблагодарили: 0

MySensors для новичков

Сообщение Roman_13j » Чт мар 02, 2017 12:22 am

Привет, друзья! Столкнулся с массой проблем при попытке сделать умный дом на mysensors. Я новичек в этой теме. Уважаемые знатоки, не могли б вы поделиться опытом по построении умного дома на mysensors. Интересует именно Ethernet-шлюз. Было б хорошо, если б в этой теме вы могли поделиться рабочими скетчами шлюза (желательно ethernet, но можно и mqtt) и хотя бы пару нод (датчик движения, датчик температуры и влажности), а также какие настройки нужно провести в модуле mysensors для получения данных в majordomo. Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!!!
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

Re: MySensors для новичков

Сообщение DimSun75 » Чт мар 02, 2017 12:50 am

Roman_13j писал(а):Привет, друзья! Столкнулся с массой проблем при попытке сделать умный дом на mysensors. Я новичек в этой теме. Уважаемые знатоки, не могли б вы поделиться опытом по построении умного дома на mysensors. Интересует именно Ethernet-шлюз. Было б хорошо, если б в этой теме вы могли поделиться рабочими скетчами шлюза (желательно ethernet, но можно и mqtt) и хотя бы пару нод (датчик движения, датчик температуры и влажности), а также какие настройки нужно провести в модуле mysensors для получения данных в majordomo. Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!!!
https://www.mysensors.org/ читали? Там вроде все достаточно красиво расписано. https://www.mysensors.org/build/ethernet_gateway тут про шлюз расписано, код рабочий. Да и в примерах библиотеки это код есть, как и коды для нод. Что непонятно - спрашивайте, попробуем объяснить.
Аватара пользователя
lanket
Сообщения: 1163
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 256 раз
Поблагодарили: 163 раза

Re: MySensors для новичков

Сообщение lanket » Чт мар 02, 2017 7:31 am

DimSun75 писал(а):
Roman_13j писал(а):Привет, друзья! Столкнулся с массой проблем при попытке сделать умный дом на mysensors. Я новичек в этой теме. Уважаемые знатоки, не могли б вы поделиться опытом по построении умного дома на mysensors. Интересует именно Ethernet-шлюз. Было б хорошо, если б в этой теме вы могли поделиться рабочими скетчами шлюза (желательно ethernet, но можно и mqtt) и хотя бы пару нод (датчик движения, датчик температуры и влажности), а также какие настройки нужно провести в модуле mysensors для получения данных в majordomo. Всем откликнувшимся заранее ОГРОМНОЕ СПАСИБО!!!
https://www.mysensors.org/ читали? Там вроде все достаточно красиво расписано. https://www.mysensors.org/build/ethernet_gateway тут про шлюз расписано, код рабочий. Да и в примерах библиотеки это код есть, как и коды для нод. Что непонятно - спрашивайте, попробуем объяснить.
Полностью согласен с предыдущим оратором.

Добавлю что Ivan выкладывал здесь ссылки на свой гитхаб со своими скетчами нод. Считаю эти скетчи высшим пилотажем. Их имеет смысл использовать как эталон. А для ознакомления, более простые скетчи но ассортимент побольше , MySensors.org

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Roman_13j
Сообщения: 32
Зарегистрирован: Пт мар 25, 2016 11:34 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: MySensors для новичков

Сообщение Roman_13j » Ср мар 08, 2017 5:31 pm

mysensors.org читал, но не особо понятно, я с английским не очень. Правильно, ли я делаю, нужно взять стандартный скетч для EhernetGateway, в нем включить режим клиента #define MY_CONTROLLER_IP_ADDRESS 192, 168, 0, 101. Вот скетч, который использую для шлюза
СпойлерПоказать

Код: Выделить всё

// Enable debug prints to serial monitor
#define MY_DEBUG

// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69

// Enable gateway ethernet module type
#define MY_GATEWAY_W5100

// W5100 Ethernet module SPI enable (optional if using a shield/module that manages SPI_EN signal)
//#define MY_W5100_SPI_EN 4

// Enable Soft SPI for NRF radio (note different radio wiring is required)
// The W5100 ethernet module seems to have a hard time co-operate with
// radio on the same spi bus.
#if !defined(MY_W5100_SPI_EN) && !defined(ARDUINO_ARCH_SAMD)
#define MY_SOFTSPI
#define MY_SOFT_SPI_SCK_PIN 14
#define MY_SOFT_SPI_MISO_PIN 16
#define MY_SOFT_SPI_MOSI_PIN 15
#endif

// When W5100 is connected we have to move CE/CSN pins for NRF radio
#ifndef MY_RF24_CE_PIN
#define MY_RF24_CE_PIN 5
#endif
#ifndef MY_RF24_CS_PIN
#define MY_RF24_CS_PIN 6
#endif

// Enable to UDP
//#define MY_USE_UDP

#define MY_IP_ADDRESS 192,168,0,120   // If this is disabled, DHCP is used to retrieve address
// Renewal period if using DHCP
//#define MY_IP_RENEWAL_INTERVAL 60000
// The port to keep open on node server mode / or port to contact in client mode
#define MY_PORT 5003

// Controller ip address. Enables client mode (default is "server" mode).
// Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere.
#define MY_CONTROLLER_IP_ADDRESS 192, 168, 0, 101

// The MAC address can be anything you want but should be unique on your network.
// Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use.
// Note that most of the Ardunio examples use  "DEAD BEEF FEED" for the MAC address.
#define MY_MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED

// Enable inclusion mode
#define MY_INCLUSION_MODE_FEATURE
// Enable Inclusion mode button on gateway
//#define MY_INCLUSION_BUTTON_FEATURE
// Set inclusion mode duration (in seconds)
#define MY_INCLUSION_MODE_DURATION 60
// Digital pin used for inclusion mode button
//#define MY_INCLUSION_MODE_BUTTON_PIN  3

// Set blinking period
#define MY_DEFAULT_LED_BLINK_PERIOD 300

// Flash leds on rx/tx/err
// Uncomment to override default HW configurations
//#define MY_DEFAULT_ERR_LED_PIN 7  // Error led pin
//#define MY_DEFAULT_RX_LED_PIN  8  // Receive led pin
//#define MY_DEFAULT_TX_LED_PIN  9  // Transmit led pin


#if defined(MY_USE_UDP)
#include <EthernetUdp.h>
#endif
#include <Ethernet.h>
#include <MySensors.h>


void setup()
{
}

void loop()
{
} 
После можно залить скетч для датчика движения в другую ардуино:
СпойлерПоказать

Код: Выделить всё

// Enable debug prints
#define MY_DEBUG

// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69

#include <MySensors.h>

unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds)
#define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
#define CHILD_ID 1   // Id of the sensor child

// Initialize motion message
MyMessage msg(CHILD_ID, V_TRIPPED);

void setup()
{
    pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
}

void presentation()
{
    // Send the sketch version information to the gateway and Controller
    sendSketchInfo("Motion Sensor", "1.0");

    // Register all sensors to gw (they will be created as child devices)
    present(CHILD_ID, S_MOTION);
}

void loop()
{
    // Read digital motion value
    bool tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH;

    Serial.println(tripped);
    send(msg.set(tripped?"1":"0"));  // Send tripped value to gw

    // Sleep until interrupt comes in on motion sensor. Send update every two minute.
    sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
} 
После в модуле Mysensors прописать в настройках адрес, который задавали для шлюза.
СпойлерПоказать
Изображение
После этих действий у меня никакие данные не появляются в majordomo. Что я пропустил или делаю не так? Модуль w5100 работает, проверял. Буду очень благодарен за помощь!
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 324 раза

Re: MySensors для новичков

Сообщение Ivan » Ср мар 08, 2017 6:48 pm

После настроек нужно перезапустить циклы.
Также можно проверить программой myscontrol. Ищите на их сайта. Сейчас готовлю плащадку для рускоязычного сообщества mysensors. Где будет русское описание
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: MySensors для новичков

Сообщение ipz » Ср мар 08, 2017 7:51 pm

Смотрите в `Панель управления->Устройства -> MySensor->История событий` пошли ли данные. Должно быть что-то вида:

Код: Выделить всё

2017-03-08 19:44:45 Set: Node:15; Sensor:254; Ack:0; Sub:27; Msg:425462556
2017-03-08 19:44:43 Set: Node:14; Sensor:1; Ack:0; Sub:0; Msg:-19.4
2017-03-08 19:44:43 Set: Node:14; Sensor:0; Ack:0; Sub:0; Msg:10.1
2017-03-08 19:44:40 Set: Node:17; Sensor:254; Ack:0; Sub:27; Msg:127080136
2017-03-08 19:44:37 Set: Node:1; Sensor:254; Ack:0; Sub:27; Msg:209461782
Если данные пошли, то тогда в настройках у каждой ноды, на закладке `Сенсоры`, задаете Связанный объект и Связанное свойство, тем самым указав куда в МДМ будут сохранятся данные.
Дальше эти данные, через объекты МДМ, можно использовать по своему усмотрению.

Если данные не пошли, надо смотреть что конкретно выводится в Истории событий...
SolarW
Сообщения: 179
Зарегистрирован: Вс июл 31, 2016 11:24 pm
Благодарил (а): 35 раз
Поблагодарили: 24 раза

Re: MySensors для новичков

Сообщение SolarW » Ср мар 08, 2017 10:58 pm

Roman_13j писал(а):mysensors.org читал, но не особо понятно, я с английским не очень.
Кстати да, очень сдерживает... Английский со словарем не даёт полного понимания о чем собственно речь идёт.
Чувствую что что-то очень интересное - а что именно не понятно.
Ivan писал(а):Сейчас готовлю плащадку для рускоязычного сообщества mysensors. Где будет русское описание
Это будет крайне замечательно!
Roman_13j
Сообщения: 32
Зарегистрирован: Пт мар 25, 2016 11:34 pm
Благодарил (а): 5 раз
Поблагодарили: 0

Re: MySensors для новичков

Сообщение Roman_13j » Чт мар 09, 2017 9:12 am

Русскоязычный форум по mysensors это было б круто!
Вот, что в истории событий выдает после перезапуска циклов: http://prntscr.com/ehq3wz
Также скрин из myscontroller: http://prntscr.com/ehq5li
Я так понимаю, что шлюз коннектиться, но потом сразу отваливается?!
Alien
Сообщения: 190
Зарегистрирован: Пт дек 20, 2013 4:46 pm
Благодарил (а): 71 раз
Поблагодарили: 37 раз

Re: MySensors для новичков

Сообщение Alien » Чт мар 09, 2017 10:09 am

Для самого начала я бы порекомендовал подключить шлюз через сериал без w5100. Во-первых сразу будет видно логи в консоли, во-вторых отметутся всякие подозрения на питание, сам w5100, сеть и прочее.
А далее по обстоятельствам. Заработает сеть mysensors - можно так и оставить либо искать баг дальше.
Из собственных граблей в этом направлении:
1. w5100 отказался работать на гигабите - перевел на сотку.
2. проблемы в питании. ардуина подключается к сети и работает, но как только идут пакеты mysensors - перегружается.
И все это в разных вариациях при использовании разных arduino, версий IDE и mysensors.
В конечном счете у меня стабильно работает на UNO и на NANO через serial, IDE 1.6.8, mysensors 2.1.1
Ubuntu на Banana pi M2U Connect
DimSun75
Сообщения: 318
Зарегистрирован: Вс янв 01, 2017 8:32 pm
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 44 раза

Re: MySensors для новичков

Сообщение DimSun75 » Чт мар 09, 2017 10:27 am

Roman_13j писал(а):mysensors.org читал, но не особо понятно, я с английским не очень.
Английский нужно учить. Ну и там не такое сложное обсуждение, да и по картинкам все понятно.
Правильно, ли я делаю, нужно взять стандартный скетч для EhernetGateway, в нем включить режим клиента #define MY_CONTROLLER_IP_ADDRESS 192, 168, 0, 101.
Это зачем? Нужно указать желаемый IP в MY_IP_ADDRESS, ну или вообще ее за коментировать, чтобы получать IP по DHCP. Далее загружаем и смотрим, что шлюз выдает в терминал
Ответить