Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
RobertR

Robert

@Robert
About
Posts
13
Topics
6
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Suspending the node
    RobertR Robert

    Which bootloader should I use? Is it necessary in my case? Does users mysensors change the bootloader?

    Troubleshooting

  • Suspending the node
    RobertR Robert

    Joints should be ok, use thermal glue. I don't know what the bootloader is. This is the arduino pro mini. Atmega 328P 5v 16mhz processor. AVrisp mkII programmer

    Troubleshooting

  • Suspending the node
    RobertR Robert

    I have 10 DHT sensors. From time to time a few lost suggestion, each time the same. In one of them I uploaded a watchdog, it worked a bit and also crashed. The one with the watchdog causes errors. Compilation is going well.

    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 2
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    // Enable this if RS485 is connected to a hardware serial port
    //#define MY_RS485_HWSERIAL Serial1
    #define MY_NODE_ID 2
    #include <SPI.h>
    #include <MySensors.h>  
    #include <DHT.h>  
    #include <avr/wdt.h>
    
    // Set this to the pin you connected the DHT's data pin to
    #define DHT_DATA_PIN 3
    unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
    
    #define CHILD_ID_HUM 1
    #define CHILD_ID_TEMP 2
    
    DHT dht;
    float lastTemp;
    float lastHum;
    boolean metric = true; 
    
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
    
    void presentation()  
    { 
      // Send the sketch version information to the gateway
      sendSketchInfo("TemperatureAndHumidity", "1.1");
      
      // Register all sensors to gw (they will be created as child devices)
      present(CHILD_ID_HUM, S_HUM);
      present(CHILD_ID_TEMP, S_TEMP);
    }
    
    void setup()  
    { 
      dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor 
      metric = getControllerConfig().isMetric;
      wdt_enable(WDTO_2S);
      // Setup locally attached sensors
    }
    
    void loop()      
    {  
      delay(dht.getMinimumSamplingPeriod());
    
      float temperature = dht.getTemperature();
      if (isnan(temperature)) {
          Serial.println("Failed reading temperature from DHT");
      } else if (temperature != lastTemp) {
        lastTemp = temperature;
        if (!metric) {
          temperature = dht.toFahrenheit(temperature);
        }
        send(msgTemp.set(temperature, 1));
        Serial.print("T: ");
        Serial.println(temperature);
      }
      
      float humidity = dht.getHumidity();
      if (isnan(humidity)) {
          Serial.println("Failed reading humidity from DHT");
      } else if (humidity != lastHum) {
          lastHum = humidity;
          send(msgHum.set(humidity, 1));
          Serial.print("H: ");
          Serial.println(humidity);
      }
    
      sleep(SLEEP_TIME); //sleep a bit
      wdt_reset();
      // Send locally attached sensor data here
    }
    
    Troubleshooting

  • Multiple relay arduino nano
    RobertR Robert

    Hi.
    I would like to connect an 8 channel relays to arduino nano. I use rs485 communication. Rs485 uses pins 2,8,9. How to make 2,3,4 used? I miss pins.
    Thx.

    General Discussion

  • Problem with libraries
    RobertR Robert

    I think that after arduino upgrade to 1.8.10 there were problems with libraries. I have a problem running Air Humidity - DHT. Its standard code.

    Arduino: 1.8.10 (Windows 10), Board: "Arduino Nano, ATmega328P"
    
    sketch_nov14a:74:5: error: no matching function for call to 'DHT::DHT()'
    
     DHT dht;
    
         ^~~
    
    In file included from D:\Arduino_temp\sketch_nov14a\sketch_nov14a.ino:44:0:
    
    D:\Arduino_temp\libraries\DHT-sensor-library-master/DHT.h:49:4: note: candidate: DHT::DHT(uint8_t, uint8_t, uint8_t)
    
        DHT(uint8_t pin, uint8_t type, uint8_t count=6);
    
        ^~~
    
    D:\Arduino_temp\libraries\DHT-sensor-library-master/DHT.h:49:4: note:   candidate expects 3 arguments, 0 provided
    
    D:\Arduino_temp\libraries\DHT-sensor-library-master/DHT.h:47:7: note: candidate: constexpr DHT::DHT(const DHT&)
    
     class DHT {
    
           ^~~
    
    D:\Arduino_temp\libraries\DHT-sensor-library-master/DHT.h:47:7: note:   candidate expects 1 argument, 0 provided
    
    D:\Arduino_temp\libraries\DHT-sensor-library-master/DHT.h:47:7: note: candidate: constexpr DHT::DHT(DHT&&)
    
    D:\Arduino_temp\libraries\DHT-sensor-library-master/DHT.h:47:7: note:   candidate expects 1 argument, 0 provided
    
    D:\Arduino_temp\sketch_nov14a\sketch_nov14a.ino: In function 'void setup()':
    
    sketch_nov14a:92:7: error: 'class DHT' has no member named 'setup'
    
       dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
    
           ^~~~~
    
    sketch_nov14a:93:30: error: 'class DHT' has no member named 'getMinimumSamplingPeriod'
    
       if (UPDATE_INTERVAL <= dht.getMinimumSamplingPeriod()) {
    
                                  ^~~~~~~~~~~~~~~~~~~~~~~~
    
    sketch_nov14a:98:13: error: 'class DHT' has no member named 'getMinimumSamplingPeriod'
    
       sleep(dht.getMinimumSamplingPeriod());
    
                 ^~~~~~~~~~~~~~~~~~~~~~~~
    
    D:\Arduino_temp\sketch_nov14a\sketch_nov14a.ino: In function 'void loop()':
    
    sketch_nov14a:105:7: error: 'class DHT' has no member named 'readSensor'
    
       dht.readSensor(true);
    
           ^~~~~~~~~~
    
    sketch_nov14a:108:27: error: 'class DHT' has no member named 'getTemperature'; did you mean 'readTemperature'?
    
       float temperature = dht.getTemperature();
    
                               ^~~~~~~~~~~~~~
    
                               readTemperature
    
    sketch_nov14a:119:25: error: 'class DHT' has no member named 'toFahrenheit'
    
           temperature = dht.toFahrenheit(temperature);
    
                             ^~~~~~~~~~~~
    
    sketch_nov14a:135:24: error: 'class DHT' has no member named 'getHumidity'; did you mean 'readHumidity'?
    
       float humidity = dht.getHumidity();
    
                            ^~~~~~~~~~~
    
                            readHumidity
    
    Multiple libraries were found for "SPI.h"
     Used: D:\Arduino\hardware\arduino\avr\libraries\SPI
    Multiple libraries were found for "MySensors.h"
     Used: D:\Arduino_temp\libraries\MySensors-master
    Multiple libraries were found for "DHT.h"
     Used: D:\Arduino_temp\libraries\DHT-sensor-library-master
     Not used: D:\Arduino_temp\libraries\arduino-DHT-master
    Multiple libraries were found for "Adafruit_Sensor.h"
     Used: D:\Arduino_temp\libraries\Adafruit_Unified_Sensor
    exit status 1
    no matching function for call to 'DHT::DHT()'
    
    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.
    
    
    General Discussion

  • Only a hard reset works.
    RobertR Robert

    It did not help. I still have to press the reset. I have domoticz for windows for testing. Could this be a problem?

    sensor<=NUMBER_OF_RELAYS; 
    

    Did I type here the number of relays?

    General Discussion

  • Only a hard reset works.
    RobertR Robert

    Can anyone help? Please.

    General Discussion

  • Only a hard reset works.
    RobertR Robert

    It's my debug code:

    0;255;3;0;9;0 MCO:BGN:INIT GW,CP=RSNGA---,VER=2.3.0
    0;255;3;0;9;4 TSM:INIT
    0;255;3;0;9;6 TSF:WUR:MS=0
    0;255;3;0;9;9 TSM:INIT:TSP OK
    0;255;3;0;9;11 TSM:INIT:GW MODE
    0;255;3;0;9;14 TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;18 MCO:REG:NOT NEEDED
    0;255;3;0;14;Gateway startup complete.
    0;255;0;0;18;2.3.0
    0;255;3;0;9;22 MCO:BGN:STP
    0;255;3;0;9;28 MCO:BGN:INIT OK,TSP=1
    

    And when push button on node:

    0;255;3;0;9;0 MCO:BGN:INIT GW,CP=RSNGA---,VER=2.3.0
    0;255;3;0;9;4 TSM:INIT
    0;255;3;0;9;6 TSF:WUR:MS=0
    0;255;3;0;9;9 TSM:INIT:TSP OK
    0;255;3;0;9;11 TSM:INIT:GW MODE
    0;255;3;0;9;14 TSM:READY:ID=0,PAR=0,DIS=0
    0;255;3;0;9;18 MCO:REG:NOT NEEDED
    0;255;3;0;14;Gateway startup complete.
    0;255;0;0;18;2.3.0
    0;255;3;0;9;22 MCO:BGN:STP
    0;255;3;0;9;28 MCO:BGN:INIT OK,TSP=1
    0;255;3;0;9;135435 TSF:MSG:READ,10-10-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
    0;255;3;0;9;135441 TSF:MSG:BC
    0;255;3;0;9;135444 TSF:MSG:FPAR REQ,ID=10
    0;255;3;0;9;135447 TSF:PNG:SEND,TO=0
    0;255;3;0;9;135451 TSF:CKU:OK
    0;255;3;0;9;135453 TSF:MSG:GWL OK
    0;255;3;0;9;135762 TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
    0;255;3;0;9;137466 TSF:MSG:READ,10-10-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
    0;255;3;0;9;137473 TSF:MSG:PINGED,ID=10,HP=1
    0;255;3;0;9;137494 TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=OK:1
    0;255;3;0;9;137525 TSF:MSG:READ,10-10-0,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
    0;255;3;0;9;137550 TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
    0;255;3;0;9;137578 TSF:MSG:READ,10-10-0,s=255,c=0,t=18,pt=0,l=5,sg=0:2.3.0
    10;255;0;0;18;2.3.0
    0;255;3;0;9;137603 TSF:MSG:READ,10-10-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
    10;255;3;0;6;0
    0;255;3;0;9;139631 TSF:MSG:READ,10-10-0,s=255,c=3,t=11,pt=0,l=5,sg=0:Relay
    10;255;3;0;11;Relay
    0;255;3;0;9;139657 TSF:MSG:READ,10-10-0,s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
    10;255;3;0;12;1.0
    0;255;3;0;9;139680 TSF:MSG:READ,10-10-0,s=1,c=0,t=3,pt=0,l=0,sg=0:
    10;1;0;0;3;
    0;255;3;0;9;139703 TSF:MSG:READ,10-10-0,s=2,c=0,t=3,pt=0,l=0,sg=0:
    10;2;0;0;3;
    0;255;3;0;9;139725 TSF:MSG:READ,10-10-0,s=3,c=0,t=3,pt=0,l=0,sg=0:
    10;3;0;0;3;
    0;255;3;0;9;139749 TSF:MSG:READ,10-10-0,s=4,c=0,t=3,pt=0,l=0,sg=0:
    10;4;0;0;3;
    0;255;3;0;9;139771 TSF:MSG:READ,10-10-0,s=5,c=0,t=3,pt=0,l=0,sg=0:
    10;5;0;0;3;
    0;255;3;0;9;139794 TSF:MSG:READ,10-10-0,s=6,c=0,t=3,pt=0,l=0,sg=0:
    10;6;0;0;3;
    0;255;3;0;9;139820 TSF:MSG:READ,10-10-0,s=255,c=3,t=26,pt=1,l=1,sg=0:2
    0;255;3;0;9;139843 TSF:MSG:SEND,0-0-10-10,s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=OK:1
    
    General Discussion

  • Only a hard reset works.
    RobertR Robert

    I have a gateway rs-485. After connecting to domoticz, he reports without a problem. The relay module is connected to it. He does not start automatically. You have to do the restet with the button. I have a watchdog, but it does not help.

    /**
     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     *
     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
     *
     * Documentation: http://www.mysensors.org
     * Support Forum: http://forum.mysensors.org
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     *
     *******************************
     *
     * REVISION HISTORY
     * Version 1.0 - Henrik Ekblad
     *
     * DESCRIPTION
     * Example sketch showing how to control physical relays.
     * This example will remember relay state after power failure.
     * http://www.mysensors.org/build/relay
     */
    
    // Enable debug prints to serial monitor
    #define MY_DEBUG 
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 12
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    #include <avr/wdt.h>
    
    // Enable repeater functionality for this node
    #define MY_REPEATER_FEATURE
    #define MY_NODE_ID 10
    #include <MySensors.h>
    
    #define RELAY_PIN 2  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
    #define NUMBER_OF_RELAYS 6 // Total number of attached relays
    #define RELAY_ON 1  // GPIO value to write to turn on attached relay
    #define RELAY_OFF 0 // GPIO value to write to turn off attached relay
    
    
    void before()
    {
    	for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
    		// Then set relay pins in output mode
    		pinMode(pin, OUTPUT);
    		// Set relay to last known state (using eeprom storage)
    		digitalWrite(pin, loadState(sensor)?RELAY_ON:RELAY_OFF);
    	}
    }
    
    void setup()
    {
     wdt_enable(WDTO_4S);
    }
    
    void presentation()
    {
    	// Send the sketch version information to the gateway and Controller
    	sendSketchInfo("Relay", "1.0");
    
    	for (int sensor=1, pin=RELAY_PIN; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
    		// Register all sensors to gw (they will be created as child devices)
    		present(sensor, S_BINARY);
    	}
    }
    
    
    void loop()
    {
    //do stuff here
    wdt_reset();
    }
    
    void receive(const MyMessage &message)
    {
    	// We only expect one type of message from controller. But we better check anyway.
    	if (message.type==V_STATUS) {
    		// Change relay state
    		digitalWrite(message.sensor-1+RELAY_PIN, message.getBool()?RELAY_ON:RELAY_OFF);
    		// Store state in eeprom
    		saveState(message.sensor, message.getBool());
    		// Write some debug info
    		Serial.print("Incoming change for sensor:");
    		Serial.print(message.sensor);
    		Serial.print(", New status: ");
    		Serial.println(message.getBool());
    	}
    }
    

    And gateway:

    /**
    * The MySensors Arduino library handles the wireless radio link and protocol
    * between your home built sensors/actuators and HA controller of choice.
    * The sensors forms a self healing radio network with optional repeaters. Each
    * repeater and gateway builds a routing tables in EEPROM which keeps track of the
    * network topology allowing messages to be routed to nodes.
    *
    * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
    * Copyright (C) 2013-2015 Sensnology AB
    * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
    *
    * Documentation: http://www.mysensors.org
    * Support Forum: http://forum.mysensors.org
    *
    * This program is free software; you can redistribute it and/or
    * modify it under the terms of the GNU General Public License
    * version 2 as published by the Free Software Foundation.
    *
    *******************************
    *
    * DESCRIPTION
    * The RS485 Gateway prints data received from sensors on the serial link.
    * The gateway accepts input on seral which will be sent out on
    * the RS485 link.
    *
    * Wire connections (OPTIONAL):
    * - Inclusion button should be connected between digital pin 3 and GND
    * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
    *
    * LEDs (OPTIONAL):
    * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
    * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
    * - ERR (red) - fast blink on error during transmission error or recieve crc error
    *
    * If your Arduino board has additional serial ports
    * you can use to connect the RS485 module.
    * Otherwise, the gateway uses AltSoftSerial to handle two serial
    * links on one Arduino. Use the following pins for RS485 link
    *
    *  Board          Transmit  Receive   PWM Unusable
    * -----          --------  -------   ------------
    * Teensy 3.0 & 3.1  21        20         22
    * Teensy 2.0         9        10       (none)
    * Teensy++ 2.0      25         4       26, 27
    * Arduino Uno        9         8         10
    * Arduino Leonardo   5        13       (none)
    * Arduino Mega      46        48       44, 45
    * Wiring-S           5         6          4
    * Sanguino          13        14         12
    *
    */
    
    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable RS485 transport layer
    #define MY_RS485
    
    // Define this to enables DE-pin management on defined pin
    #define MY_RS485_DE_PIN 2
    
    // Set RS485 baud rate to use
    #define MY_RS485_BAUD_RATE 9600
    
    // Enable this if RS485 is connected to a hardware serial port
    //#define MY_RS485_HWSERIAL Serial1
    
    // Enable serial gateway
    #define MY_GATEWAY_SERIAL
    
    
    // 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
    #define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
    #define MY_DEFAULT_RX_LED_PIN  5  // Receive led pin
    #define MY_DEFAULT_TX_LED_PIN  6  // the PCB, on board LED
    
    #include <MySensors.h>
    
    void setup()
    {
    	// Setup locally attached sensors
    }
    
    void presentation()
    {
    	// Present locally attached sensors
    }
    
    void loop()
    {
    	// Send locally attached sensor data here
    }```
    
    

    Thx for help

    General Discussion

  • Rs_485 change pins
    RobertR Robert
    It might be possibe by using SoftwareSerial and defining MY_RS485_HWSERIAL to use the SoftwareSerial instance.``````
    Insert Code Here
    

    Its too hard to me.
    Thanks for help.

    General Discussion

  • Rs_485 change pins
    RobertR Robert

    Hello.
    Is it possible to change the default pins 8 and 9 on rs_485? I need to change them on 10 and 11

    General Discussion

  • Roller Shutter
    RobertR Robert

    @scalz Does the NOD works with domoticz? Is it possible to communicate with rs485?

    Hardware

  • I can not add sensors
    RobertR Robert

    I have a smart home prototype. Everything is visible in domoticz. But I can not deal with adding them as sensors.![alt text](<a href="https://www.fotosik.pl/zdjecie/a22c0588c8c12904" target="_blank"><img src="https://images83.fotosik.pl/1116/a22c0588c8c12904.jpg" border="0" alt="" /></a>)

    Domoticz
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular