mysensors

Ujin778
Сообщения: 62
Зарегистрирован: Вт апр 28, 2015 8:26 pm
Благодарил (а): 14 раз
Поблагодарили: 2 раза

Re: mysensors

Сообщение Ujin778 » Чт апр 30, 2015 12:40 pm

cabat писал(а):
Ujin778 писал(а):Я разобрался с сериалгейтом - оказывается не подключил выход прерывания от радиомодуля
Вроде на форуме mysensors.org писали, что сейчас IRQ не используется: http://forum.mysensors.org/topic/510/mi ... oughts/190
Не работало - факт. Версия mysensors у меня последняя. Это в MQTT и ethernet гейтах не написано что его надо подключить, а во всех остальных случаях нарисовано подключение
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: mysensors

Сообщение Ivan » Чт апр 30, 2015 12:40 pm

255 это бруткаст. Скорей всего не может получить адрес. Радио модуль не правильно подключен
За это сообщение автора Ivan поблагодарил:
Ujin778 (Чт апр 30, 2015 1:06 pm)
Рейтинг: 1.16%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: mysensors

Сообщение Ivan » Чт апр 30, 2015 12:41 pm

Смотрите на статус. Скорей всего он у вас faild
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: mysensors

Сообщение Ivan » Чт апр 30, 2015 12:42 pm

Irq не используется уже с версии 1.2
За это сообщение автора Ivan поблагодарил:
Ujin778 (Чт апр 30, 2015 4:28 pm)
Рейтинг: 1.16%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ujin778
Сообщения: 62
Зарегистрирован: Вт апр 28, 2015 8:26 pm
Благодарил (а): 14 раз
Поблагодарили: 2 раза

Re: mysensors

Сообщение Ujin778 » Чт апр 30, 2015 1:09 pm

Ivan писал(а):255 это бруткаст. Скорей всего не может получить адрес. Радио модуль не правильно подключен
Когда радио неправильно подключено то в отладку об этом пишет, а тут связь с гейтом есть.
Ujin778
Сообщения: 62
Зарегистрирован: Вт апр 28, 2015 8:26 pm
Благодарил (а): 14 раз
Поблагодарили: 2 раза

Re: mysensors

Сообщение Ujin778 » Чт апр 30, 2015 1:10 pm

Ivan писал(а):Смотрите на статус. Скорей всего он у вас faild
А где это смотреть?
Ujin778
Сообщения: 62
Зарегистрирован: Вт апр 28, 2015 8:26 pm
Благодарил (а): 14 раз
Поблагодарили: 2 раза

Re: mysensors

Сообщение Ujin778 » Чт апр 30, 2015 2:26 pm

Ivan писал(а):Irq не используется уже с версии 1.2
Я ещё менял инициализацию библиотеки, там было с кучей параметров а я сделал все по умолчанию как в примерах нод сделано. Может в этом дело было.
Anton_kulibin
Сообщения: 354
Зарегистрирован: Вт окт 09, 2012 8:05 am
Откуда: Луза Кировская обл. Россия
Благодарил (а): 20 раз
Поблагодарили: 35 раз

Re: mysensors

Сообщение Anton_kulibin » Вс июн 14, 2015 9:33 pm

Коллеги есть MQtt gate на базе Uno+wiz5100. Может кто подскажет как управлять V_light. Создан объект, свойство привязано к Mqtt параметру. Но гейт не передает параметры ноде. Все скетчи с mysensors.
Linux версия. Ubuntu Server 16.04+2xArduinoMega+Eth_GW_Mysensors_10node+WeatherStation+Xiaomi
CONNECT
Alien
Сообщения: 191
Зарегистрирован: Пт дек 20, 2013 4:46 pm
Благодарил (а): 72 раза
Поблагодарили: 38 раз

Re: mysensors

Сообщение Alien » Пн июн 15, 2015 8:48 am

Я поборол эту проблему. Помогло одно из двух :)
Во-первых я все-таки немного изменял код от mysensors.
Ну и второе, думаю помогло именно это. Я заметил разницу между библиотеками которые у меня были в IDE и идущими с mysensors. Заменил библиотеки - все работает. Со времени моего последнего поста ни зависаний, ни пропаданий.
На всякий случай приложу код ноды с датчиками движения, температуры\влажности, реле. Репитер, шлет температуру каждые 5 минут.
/**
Sensor version 3:
Motion
Temperature
Humidity
Relay
Repeater
*/

#include <SPI.h>
#include <MySensor.h>  
#include <DHT.h>  

#define CHILD_ID_MOT 0   // Id of the sensor child
#define CHILD_ID_HUM 1
#define CHILD_ID_TEMP 2
#define CHILD_ID_RELAY 3

#define HUMIDITY_SENSOR_DIGITAL_PIN 4

#define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
#define INTERRUPT DIGITAL_INPUT_SENSOR-2 // Usually the interrupt = pin -2 (on uno/nano anyway)

#define RELAY_1  5  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define NUMBER_OF_RELAYS 2 // Total number of attached relays
#define RELAY_ON 0  // GPIO value to write to turn on attached relay
#define RELAY_OFF 1 // GPIO value to write to turn off attached relay

unsigned long SEND_FREQUENCY = 300; // Minimum time between send (in seconds). We don't want to spam the gateway.
long previousMillis = 0;

MySensor gw;
boolean ReqAck = false;  //Request ack

DHT dht;

boolean lastTrip;

MyMessage msgMot(CHILD_ID_MOT, V_TRIPPED);
MyMessage msgHum(CHILD_ID_HUM, V_HUM);
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);

void setup()  

  // The third argument enables repeater mode.
  gw.begin(incomingMessage, AUTO, true);
  dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN); 

  // Send the Sketch Version Information to the Gateway
  gw.sendSketchInfo("AHSSensor3""1.0");

  // Register all sensors to gw (they will be created as child devices)
  gw.present(CHILD_ID_MOT, S_MOTION, ReqAck);
  gw.present(CHILD_ID_HUM, S_HUM, ReqAck);
  gw.present(CHILD_ID_TEMP, S_TEMP, ReqAck);

  // Fetch relay status
  for (int sensor=CHILD_ID_RELAY, pin=RELAY_1; sensor<=CHILD_ID_RELAY+NUMBER_OF_RELAYS;sensor++, pin++) {
    // Register all relay to gw (they will be created as child devices)
    gw.present(sensor, S_LIGHT, ReqAck);
    // Then set relay pins in output mode
    pinMode(pin, OUTPUT);   
    // Set relay to last known state (using eeprom storage) 
    digitalWrite(pin, gw.loadState(sensor)?RELAY_ON:RELAY_OFF);
  }

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

}

void loop()      


  unsigned long currentMillis = millis();

  // By calling process() you route messages in the background
  gw.process();

  // Read digital motion value
  boolean tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH;
  if (tripped != lastTrip) {      
    lastTrip = tripped;
    Serial.print("Tripped: ");
    Serial.println(tripped);
    gw.send(msgMot.set(tripped?"1":"0"));  // Send tripped value to gw 
  }

  if(currentMillis - previousMillis > SEND_FREQUENCY *1000) {
    previousMillis = currentMillis;   
    delay(dht.getMinimumSamplingPeriod());
    sendTemp();
    sendHum();
  }
}

void incomingMessage(const MyMessage &message) {
  // We only expect one type of message from controller. But we better check anyway.
  if (message.type==V_LIGHT) {
    // Change relay state
    digitalWrite(message.sensor-3+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
    // Store state in eeprom
    gw.saveState(message.sensor, message.getBool());
    // Write some debug info
    Serial.print("Incoming change for relay:");
    Serial.print(message.sensor);
    Serial.print(", New status: ");
    Serial.println(message.getBool());
  } 
}

void sendTemp() {
  float temperature = dht.getTemperature();
  if (isnan(temperature)) {
    Serial.println("Failed reading temperature from DHT");
  } 
  else {
    gw.send(msgTemp.set(temperature, 1));
    Serial.print("Temperature: ");
    Serial.println(temperature);
  }
}

void sendHum() {
  float humidity = dht.getHumidity();
  if (isnan(humidity)) {
    Serial.println("Failed reading humidity from DHT");
  } 
  else {
    gw.send(msgHum.set(humidity, 1));
    Serial.print("Humidity: ");
    Serial.println(humidity);
  }

}




За это сообщение автора Alien поблагодарил:
mirsum (Пн июл 04, 2016 7:46 am)
Рейтинг: 1.16%
Ubuntu на Banana pi M2U Connect
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: mysensors

Сообщение slgeo » Чт июл 16, 2015 1:38 am

А библиотеки Mysensors для RaspberryPi с поддержкой MQTT не существует? Получается придется городить к малинке EthernetGateway?
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
Ответить