Skip to content

Development

Discuss Arduino programming, library tips, share example sketches and post your general programming questions.
1.5k Topics 13.5k Posts

Subcategories


  • 56 578
    56 Topics
    578 Posts
    HJ_SKH
    Hi2All! Surprising is here. After about 24hours I refresh HA and suddenly my motion sensor was integrated. There is also second entity > battery : 0 , have to look deeper into that for understanding. Need to change little in the sketch, because don't want every short time 'no movement' so only when there is motion and maybe once a hour indication sensor is alive. Meantime I found 3 other good threats: https://forum.mysensors.org/topic/11200/finally-progress-evidence-based-radio-testing-method-and-capacitors https://forum.mysensors.org/topic/1664/which-are-the-best-nrf24l01-modules/27 https://forum.mysensors.org/topic/9550/build-a-reliable-power-supply-chain Very usefull for me also finally progress because of lacking time in the past. Great jobs are done here! Thanks for this all of you guys or girls!
  • Happy Standby Node :)

    3
    0 Votes
    3 Posts
    2k Views
    berkseoB
    @crankycoder https://translate.google.com/translate?sl=ru&tl=en&js=y&prev=_t&hl=ru&ie=UTF-8&u=http%3A%2F%2Fmysensors.ru%2Fforum%2Fviewtopic.php%3Ff%3D5%26t%3D380&edit-text=
  • ESP8266 MQTT gateway SSL connection

    1
    3 Votes
    1 Posts
    3k Views
    No one has replied
  • Secure gateway with sms receiver: stability?

    17
    0 Votes
    17 Posts
    2k Views
    alowhumA
    So I created a gateway with the 800L.. and as predicted it used too much power. I've now put it on a separate node, and seems to work fine.
  • 16 relay with arduino. Change many at the same time

    2
    1 Votes
    2 Posts
    3k Views
    fusion_manF
    @ferpando Hi, I am installing your HomeRelay_1 program (16 relay with Arduino) and would like the MyBuffer.h and MyBuffer.cpp. The only ones I have found have (sensor, type) for buffer.push where you actually have (sensor, type,string data). The program will not compile on v1.6.5. Thank you for all that you do for the community!
  • Lots of Repeater nodes? (new info December 2017 requested)

    6
    0 Votes
    6 Posts
    1k Views
    alowhumA
    So, what's the answer? For those finding the thread: If you are not using battery sensors, then it's fine to make all of them repeaters. After 20 failures to send, nodes will try looking for other pathways. In that case having multiple repeaters is useful if a node fails. It might be that it takes some more space/memory on your arduino?
  • MySensors 2.2 Release

    2
    2 Votes
    2 Posts
    846 Views
    alowhumA
    @ian-bishop I also notices there hasn't been much change in a week. Has is become stable?
  • Need help with ESP8266 Node in MQTT Network

    6
    0 Votes
    6 Posts
    2k Views
    siodS
    Hi guys, thanks to both of you! Thanks @TimO for the general information and thanks to @kimot for finding the exact solution for what I was looking for. Awesome!! I will give it a try as soon as possible...
  • Power sensors stopped working

    openhab2
    13
    0 Votes
    13 Posts
    2k Views
    sundberg84S
    Without any evidence - yes. I have not made that much tests yet since I waited for my logger. I have made some posts about this on the forum. I dont want to make any conclusions yet. @gohan
  • (newbie) Pin confusion between example and board pins

    1
    0 Votes
    1 Posts
    397 Views
    No one has replied
  • Custom broadcast requests (from node to node group)

    1
    1 Votes
    1 Posts
    630 Views
    No one has replied
  • which sensor and msg type for switch/dimmer node (sender only)?

    9
    0 Votes
    9 Posts
    1k Views
    Boots33B
    @andrew At the moment any data enforcing you require will need to be coded in your sketch and as I have said there are ways to determine the data type required. I am not sure as to why it is not present in the MySensors library, it may be worthwhile to start another thread on this and see what other information you can get.
  • How to set NodeID in 2.1.1

    5
    0 Votes
    5 Posts
    908 Views
    jocke4uJ
    Thanks - works just fine
  • No matching function for call 'DHT::DHT()'

    6
    0 Votes
    6 Posts
    8k Views
    mfalkviddM
    @dick great. Thanks for reporting back.
  • Xod IDE

    6
    0 Votes
    6 Posts
    2k Views
    gohanG
    Well, it would need to be a mysensors project since it requires specific functions to be added in code; it is not as easy as adding code for a potentiometer or a servo motor.
  • Return value of bool send(MyMessage &msg, const bool ack = false);

    6
    0 Votes
    6 Posts
    2k Views
    B
    @mfalkvidd said in Return value of bool send(MyMessage &msg, const bool ack = false);: @bilbolodz just to check: are you sure there are no repeaters or other gateways within range? I've to check more thoroughly but rather not.
  • 4 Votes
    90 Posts
    143k Views
    I
    @gohan sorry, my bad, nothing to do with vcc library ... just realized that vcc lib allows me to measure vcc without resistor divider:-)
  • A mesh network for use with ESP8266 and MQTT

    mesh mqtt esp8266
    9
    1 Votes
    9 Posts
    15k Views
    S
    I am not able to install the Library . I am getting Error Invalid library found in C:\Documents and Settings\User\My Documents\Arduino\libraries\ESP8266MQTTMesh: C:\Documents and Settings\User\My Documents\Arduino\libraries\ESP8266MQTTMesh. I changed the name of the zipped file to ESP8266MQTTMesh as the name of .cpp file ESP8266MQTTMesh.cpp. Still it is saying Invalid Library found in .... What could be the problem.
  • Watchdog timer

    9
    0 Votes
    9 Posts
    2k Views
    I
    @gohan Yep, that did it. Thank you so much.
  • help to pass version 2 mysensors

    4
    0 Votes
    4 Posts
    725 Views
    zrom69Z
    @gohan you can check i add module rain // Example sketch för a "light switch" where you can control light or something // else from both vera and a local physical button (connected between digital // pin 3 and GND). // This node also works as a repeader for other nodes // Enable debug prints to serial monitor #define MY_DEBUG // Enable and select radio type attached #define MY_RADIO_NRF24 //#define MY_RADIO_RFM69 #define MY_NODE_ID 2 #define MY_PARENT_NODE_ID 0 #define MY_PARENT_NODE_IS_STATIC #include <MySensors.h> #include <SPI.h> #include <DHT.h> unsigned long SLEEP_TIME = 120000; // Sleep time between reports (in milliseconds) //pin sensori #define PIR_PIN 6 // The digital input you attached your motion sensor. (Only 2 and 3 generates interrupt!) #define HUMIDITY_TEMPERATURE_PIN 3 // sensore temperatura umidita #define RELAY_PIN 4 // relay pin #define DIGITAL_INPUT_RAIN_SENSOR 5 int BATTERY_SENSE_PIN = A1; // Pin carica batteria o pannello solare int FOTORESIST_SENSE_PIN = A2; // Pin fotoresistenza //interupt per sleep arduino #define INTERRUPT PIR_PIN-6 // Usually the interrupt = pin -2 (on uno/nano anyway) #define INTERRUPT DIGITAL_INPUT_RAIN_SENSOR-2 //id per vera #define CHILD_ID_RELE 1 // Id relay #define CHILD_ID_HUM 2 // id temperatura #define CHILD_ID_TEMP 3 // id umidita #define CHILD_ID_PIR 4 // Id pir #define CHILD_ID_LIGHT 5 // Id luminosita (fotoresistenza) #define CHILD_ID_RAIN 6 //definizione per nodo vera #define NODE_ID 10 #define SN "meteo station" #define SV "1.4" //variabili bool state_relay; //stato relay float batt_valore; //dichiaro la variabile valore che memorizzerà il valore della batteria dal pin analogico float batt_volt; //volt batteria float batt_charged_percent; //percentuale carica batteria float last_batt_charged_percent; //percentuale carica batteria precedente float batt_min_voltage = 0.5; //tensione minima batteria float batt_max_voltage = 5; //tensione massima batteria float fotoresistenza_valore; //dichiaro la variabile valore che memorizzerà il valore della fotoresistenza dal pin analogico float last_fotoresistenza_valore; //dichiaro la variabile valore precedente int lastRainValue = -1; int nRainVal; boolean bIsRaining = false; String strRaining = "NO"; int lux_vera; //valore luminosita da inviare a vera // sensore temperatura umidita DHT dht_int; float lastTemp_int = -1; float lastHum_int = -1; boolean metric = true; MyMessage msgRelay(CHILD_ID_RELE,V_LIGHT); MyMessage msgHum(CHILD_ID_HUM, V_HUM); MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP); MyMessage msgPir(CHILD_ID_PIR, V_TRIPPED); MyMessage msgLux(CHILD_ID_LIGHT, V_LIGHT_LEVEL); MyMessage msgRain(CHILD_ID_RAIN, V_TRIPPED); void setup() { metric = getControllerConfig().isMetric; // Then set relay pins in output mode pinMode(RELAY_PIN, OUTPUT); pinMode(DIGITAL_INPUT_RAIN_SENSOR, INPUT); //PIR pinMode(PIR_PIN, INPUT); state_relay = 0; //GestisciRelay(); digitalWrite(RELAY_PIN, LOW); send(msgRelay.set(state_relay)); } void presentation() { sendSketchInfo(SN, SV); //Sensore umidita temperatura dht_int.setup(HUMIDITY_TEMPERATURE_PIN); present(CHILD_ID_RELE, S_LIGHT); //light vera present(CHILD_ID_HUM, S_HUM); //umidity vera present(CHILD_ID_TEMP, S_TEMP); // temp vera present(CHILD_ID_PIR, S_MOTION); // motion vera present(CHILD_ID_LIGHT, S_LIGHT_LEVEL); //light level (fotoresistenza) present(CHILD_ID_RAIN, S_MOTION, "WS Rain"); } void loop() { //sensore temperatura umidita delay(dht_int.getMinimumSamplingPeriod()); float temperature_int = dht_int.getTemperature(); if (isnan(temperature_int)) { lastTemp_int = -1; Serial.println("Failed reading temperature from DHT"); } else if (temperature_int != lastTemp_int) { lastTemp_int = temperature_int; if (!metric) { temperature_int = dht_int.toFahrenheit(temperature_int); } send(msgTemp.set(temperature_int, 1)); Serial.print("T int: "); Serial.println(temperature_int); } float humidity_int = dht_int.getHumidity(); if (isnan(humidity_int)) { lastHum_int = -1; Serial.println("Failed reading humidity from DHT"); } else if (humidity_int != lastHum_int) { lastHum_int = humidity_int; send(msgHum.set(humidity_int, 1)); Serial.print("H int: "); Serial.println(humidity_int); } //sensore temperatura umidita //fotoresistenza for(int i=0;i<150;i++) { fotoresistenza_valore += analogRead(FOTORESIST_SENSE_PIN); //read the input voltage from battery or solar panel delay(2); } fotoresistenza_valore = fotoresistenza_valore / 150; Serial.print ("fotoresistenza: "); Serial.println(fotoresistenza_valore); if (fotoresistenza_valore != last_fotoresistenza_valore) { lux_vera = (int) fotoresistenza_valore; send(msgLux.set(lux_vera)); last_fotoresistenza_valore = fotoresistenza_valore; } //fotoresistenza //pir relay // Read digital motion value boolean tripped = digitalRead(PIR_PIN) == HIGH; Serial.println("pir:"); Serial.println(tripped); send(msgPir.set(tripped?"1":"0")); // Send tripped value to gw //accende la luce con il buio if (fotoresistenza_valore < 200) //poca luce { if (tripped == 1) { state_relay = 1; } else { state_relay = 0; } } //accende la luce con il buio GestisciRelay(); //pir relay //battery for(int i=0;i<150;i++) { batt_valore += analogRead(BATTERY_SENSE_PIN); //read the input voltage from battery or solar panel delay(2); } batt_valore = batt_valore / 150; Serial.print ("batt_valore: "); Serial.println(batt_valore); batt_volt = (batt_valore / 1024) * batt_max_voltage; Serial.print ("batt_volt: "); Serial.println(batt_volt); //////////////////////////////////////////////// //The map() function uses integer math so will not generate fractions // so I multiply battery voltage with 10 to convert float into a intiger value // when battery voltage is 6.0volt it is totally discharged ( 6*10 =60) // when battery voltage is 7.2volt it is fully charged (7.2*10=72) // 6.0v =0% and 7.2v =100% //batt_charged_percent = batt_volt*10; //batt_charged_percent = map(batt_volt*10, 60 , 72, 0, 100); batt_charged_percent = batt_volt * 10; batt_charged_percent = map(batt_volt * 10, batt_min_voltage * 10 , batt_max_voltage * 10, 0, 100); //batt_charged_percent = (batt_volt / batt_max_voltage) * 100; Serial.print ("batt_charged_percent: "); Serial.println(batt_charged_percent); if (last_batt_charged_percent != batt_charged_percent) { sendBatteryLevel(batt_charged_percent); last_batt_charged_percent = batt_charged_percent; } bIsRaining = !(digitalRead(DIGITAL_INPUT_RAIN_SENSOR)); if(bIsRaining){ strRaining = "YES"; } else{ strRaining = "NO"; } //Serial.print("Raining?: "); //Serial.print(strRaining); //Serial.print("\t Moisture Level: "); //Serial.println(nRainVal); //http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-rain-sensor-module-guide-and-tutorial/ send(msgRain.set(bIsRaining, 1)); //battery delay(50); // Sleep until interrupt comes in on motion sensor. Send update every two minute. sleep(INTERRUPT, CHANGE, SLEEP_TIME); } void incomingMessage(const MyMessage &message) { // We only expect one type of message from controller. But we better check anyway. if (message.isAck()) { Serial.println("This is an ack from gateway"); } if (message.type == V_LIGHT) { // Change relay state_relay state_relay = message.getBool(); GestisciRelay(); // Write some debug info Serial.print("Incoming change for sensor:"); Serial.print(message.sensor); Serial.print(", New status: "); Serial.println(message.getBool()); } } void GestisciRelay() { //Serial.print(" GestisciRelay state_relay:"); //Serial.println(state_relay); if (state_relay == 0) { digitalWrite(RELAY_PIN, LOW); send(msgRelay.set(state_relay)); //Serial.println("SPENTO RELAY"); } else { digitalWrite(RELAY_PIN, HIGH); send(msgRelay.set(state_relay)); //Serial.println("ACCESO RELAY"); } }
  • heartbeat? monitor?

    raspberry gateway monitoring
    3
    0 Votes
    3 Posts
    1k Views
    CrankyCoderC
    any idea how often heartbeat messages would be sent?

12

Online

11.7k

Users

11.2k

Topics

113.0k

Posts