Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. sindrome73
    3. Topics
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Topics created by sindrome73

    • sindrome73

      Pjon Script
      General Discussion • • sindrome73  

      3
      0
      Votes
      3
      Posts
      21
      Views

      mfalkvidd

      Thers is actually support for pjon as transport in MySensors: https://github.com/mysensors/MySensors/pull/1278 I don’t know how it works though.
    • sindrome73

      986/5000 first steps with battery node
      Troubleshooting • • sindrome73  

      6
      0
      Votes
      6
      Posts
      56
      Views

      niclas

      @sindrome73 Like @BearWithBeard wrote, reading Nick Gammons guide is a must! I read it and used most of the stuff in there when I was making my battery node. The analog converter is super easy to turn of, ADCSRA = 0 does it. It's also in the guide by Gammon. Regarding the Minicore definitions, see here: https://github.com/MCUdude/MiniCore Just follow the "how to install" and when it's added in Arduino IDE you select the relevant options in the Tools menu under "board". Then select your programmer (also in tools menu) and finally "Burn bootloader". Edit: Did a quick google on the sensor. Found this: https://www.iot-experiments.com/pir-sensors-hc-sr501/ I just took a quick glance but it seems relevant.
    • sindrome73

      Motion sensor increase Time high status via software
      Feature Requests • • sindrome73  

      11
      0
      Votes
      11
      Posts
      906
      Views

      sindrome73

      @skywatch said in Motion sensor increase Time high status via software: ti sei Hello and sorry, if I gave the idea of being courteous !! sorry again I didn't publish the code because I really don't know where to start, but now that I understand WAIT, that in MySensors and a separate thing, I also understand your example, and I thank you for helping me !! But then again I didn't know that this WAIT, was something different from DELAY I answer little, because I'm a little busy these days ..... But anyway for now thanks again for help
    • sindrome73

      Strange problem with OTA
      Troubleshooting • • sindrome73  

      2
      0
      Votes
      2
      Posts
      403
      Views

      sindrome73

      Hi, no one knows how to help me
    • sindrome73

      Help for Signature and OTA on the same node, How To
      Feature Requests • • sindrome73  

      1
      0
      Votes
      1
      Posts
      390
      Views

      No one has replied

    • sindrome73

      Request data from Domoticz
      Feature Requests • • sindrome73  

      15
      0
      Votes
      15
      Posts
      2189
      Views

      sindrome73

      this is a good place to start and start to understand. I'm not a lot of diggers, however I start reading something, and in case I'll ask for help In a lot of thanks
    • sindrome73

      I encounter OTA MYSBootloader problems
      Troubleshooting • • sindrome73  

      7
      0
      Votes
      7
      Posts
      1283
      Views

      fac13

      @sindrome73 You say you don't think the problem is with MYSbootloader, and you think the problem is with the .HEX files that write the new Bootloader. Those .HEX files are MYSbootloader. Channel 76 is hard-coded in them. You can’t get round this by changing anything in your controller. If you want to create and load MYSbootloader .HEX files for a different channel then you need to modify the configuration files you mention, then compile new .HEX files. That is not a simple task, it involves multiple steps including the installation of various tools. My advice would be to get FOTA working using the default channel 76 before trying anything else.
    • sindrome73

      Possible Bug version 2.2.0
      Bug Reports • • sindrome73  

      38
      0
      Votes
      38
      Posts
      3442
      Views

      mickecarlsson

      Test if this reduces your memory consumption. This is what I have added Disable the splash screen with: #define MY_SPLASH_SCREEN_DISABLED // This saves a couple of bytes Then for every serial.print I have embedded those with #ifdef MY_DEBUG/#endif There is no need to serial print when running in silent mode. I have also embedded the missing serial.print with the F("string") function. This saves memory by storing strings in flash instead of memory. I could not get the code to compile as I don't have the proper DHT library. // ---- - Stazione Meteo Francy Ver 1 - ---- // Enable debug prints // #define MY_DEBUG #define MY_SPLASH_SCREEN_DISABLED // This saves a couple of bytes // Enable and select radio type attached #define MY_RADIO_NRF24 #define MY_PARENT_NODE_ID 0 #define MY_PARENT_NODE_IS_STATIC #define MY_RF24_CHANNEL 84 #define MY_SIGNING_SOFT #define MY_SIGNING_SOFT_RANDOMSEED_PIN 7 #define MY_SIGNING_REQUEST_SIGNATURES // Definisco il Nodo #define MY_NODE_ID 66 // Nomino i figli del Nodo #define CHILD_ID_TEMP 1 #define CHILD_ID_aaaa 2 #define CHILD_ID_HUMI 3 #define CHILD_ID_bbbb 4 #define CHILD_ID_BARO 5 #define CHILD_ID_LIGHT 6 #define LIGHT_SENSOR_ANALOG_PIN 0 const float ALTITUDE = 335; //----------------------------- Pressione //float pressione = 1017; //int forecast = 4; const char *weather[] = { "stable", "sunny", "cloudy", "unstable", "thunderstorm", "unknown" }; enum FORECAST { STABLE = 0, // "Stable Weather Pattern" SUNNY = 1, // "Slowly rising Good Weather", "Clear/Sunny " CLOUDY = 2, // "Slowly falling L-Pressure ", "Cloudy/Rain " UNSTABLE = 3, // "Quickly rising H-Press", "Not Stable" THUNDERSTORM = 4, // "Quickly falling L-Press", "Thunderstorm" UNKNOWN = 5 // "Unknown (More Time needed) }; //----------------------------------------- #include <SPI.h> #include <MySensors.h> #include <DHT.h> #include <Wire.h> #include <Adafruit_BMP085.h> DHT dht; //----------------------------- Adafruit_BMP085 bmp = Adafruit_BMP085(); // Digital Pressure Sensor float lastPressure = -1; float lastTemp = -1; int lastForecast = -1; const int LAST_SAMPLES_COUNT = 5; float lastPressureSamples[LAST_SAMPLES_COUNT]; // this CONVERSION_FACTOR is used to convert from Pa to kPa in forecast algorithm // get kPa/h be dividing hPa by 10 #define CONVERSION_FACTOR (1.0/10.0) int minuteCount = 0; bool firstRound = true; // average value is used in forecast algorithm. float pressureAvg; // average after 2 hours is used as reference value for the next iteration. float pressureAvg2; float dP_dt; bool metric; //----------------------------- //Dichiarazioni per pause dei diversi blocchi unsigned long int time; unsigned long int lettura_Press; unsigned long int lettura_Temp; unsigned long int letturaluce_time; //------------------------------ int lastLightLevel; //Dichiarazione Luminosita float temperatureDTH2; void presentation() { sendSketchInfo("Temp e Umidita", "3"); present(CHILD_ID_TEMP, S_TEMP); present(CHILD_ID_aaaa, S_LIGHT); present(CHILD_ID_HUMI, S_HUM); present(CHILD_ID_bbbb, S_LIGHT); present(CHILD_ID_BARO, S_BARO); present(CHILD_ID_LIGHT, S_LIGHT_LEVEL); } MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP); MyMessage msgaaaa(CHILD_ID_HUMI, V_LIGHT); MyMessage msgHumi(CHILD_ID_HUMI, V_HUM); MyMessage msgbbbb(CHILD_ID_HUMI, V_LIGHT); MyMessage msgPres(CHILD_ID_BARO, V_PRESSURE); MyMessage msgForecast(CHILD_ID_BARO, V_FORECAST); MyMessage msg4(CHILD_ID_LIGHT, V_LIGHT_LEVEL); void setup() { // Setto il Pin dove e collegato il sensore di Temperatura DHT22 dht.setup(3); #ifdef MY_DEBUG //Settaggi del BMP180 if (!bmp.begin()) { Serial.println(F("Could not find a valid BMP085 sensor, check wiring!")); while (1) {} } #endif metric = getControllerConfig().isMetric; //Fine settaggi BMP180 //-- Setup Variabili MILLIS per sensore di Pressione time=millis(); lettura_Press = millis(); lettura_Temp = millis(); letturaluce_time = millis(); } void loop() { //Attivo Time MILLIS time=millis(); //----------- Inizio DHT22 ------------------------ if(time>lettura_Temp+12000){ delay(dht.getMinimumSamplingPeriod()); #ifdef MY_DEBUG Serial.println(F("--- Temperatura --- ")); #endif float temperatureDTH; float humidity = dht.getHumidity(); float temperatureDHT = dht.getTemperature(); temperatureDTH2 = temperatureDTH; //Invio la lettura della Temperatura send(msgTemp.set(temperatureDHT, 1)); //delay(6000); // Faccio una pausa ed invio altra lettura //Invio lettura Umidita send(msgHumi.set(humidity, 1)); //delay(4000); lettura_Temp=millis(); } //---------- Inizio Pressione --------------------------- if(time>lettura_Press+11000){ #ifdef MY_DEBUG Serial.println(F("--- Tempo passato lego la Pressione--- ")); #endif float temperatureDHT2; float pressure = bmp.readSealevelPressure(ALTITUDE) / 100.0; float temperature = temperatureDHT2; if (!metric) { // Convert to fahrenheit temperature = temperature * 9.0 / 5.0 + 32.0; } int forecast = sample(pressure); #ifdef MY_DEBUG Serial.print(F("Pressione = ")); Serial.print(pressure); Serial.println(F(" hPa")); Serial.print(F("Forecast = ")); Serial.println(weather[forecast]); #endif if (pressure != lastPressure) { send(msgPres.set(pressure, 0)); lastPressure = pressure; } if (forecast != lastForecast) { send(msgForecast.set(weather[forecast])); lastForecast = forecast; } lettura_Press=millis(); } //-------------- Inizio Luminosita -------------------------- if(time>letturaluce_time+10000){ #ifdef MY_DEBUG Serial.print(F("Tempo passato lego la Luce: ")); #endif int16_t lightLevel = (1023-analogRead(LIGHT_SENSOR_ANALOG_PIN))/10.23; #ifdef MY_DEBUG Serial.println(lightLevel); #endif //delay(1000); if (lightLevel != lastLightLevel) { if(lightLevel > lastLightLevel + 7 || lightLevel < lastLightLevel - 7){ send(msg4.set(lightLevel)); #ifdef MY_DEBUG Serial.print(F("Invio nuova lettura LUX: ")); Serial.println(lightLevel); #endif lastLightLevel = lightLevel; } } letturaluce_time=millis(); } //Fine Luminosita //--------- Eventuale 4 Modulo ------------------------- // Chiusura Loop } //------------ Aggiuntivo Previsione del Barometro --------------------- float getLastPressureSamplesAverage() { float lastPressureSamplesAverage = 0; for (int i = 0; i < LAST_SAMPLES_COUNT; i++) { lastPressureSamplesAverage += lastPressureSamples[i]; } lastPressureSamplesAverage /= LAST_SAMPLES_COUNT; return lastPressureSamplesAverage; } // Algorithm found here // http://www.freescale.com/files/sensors/doc/app_note/AN3914.pdf // Pressure in hPa --> forecast done by calculating kPa/h int sample(float pressure) { // Calculate the average of the last n minutes. int index = minuteCount % LAST_SAMPLES_COUNT; lastPressureSamples[index] = pressure; minuteCount++; if (minuteCount > 185) { minuteCount = 6; } if (minuteCount == 5) { pressureAvg = getLastPressureSamplesAverage(); } else if (minuteCount == 35) { float lastPressureAvg = getLastPressureSamplesAverage(); float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR; if (firstRound) // first time initial 3 hour { dP_dt = change * 2; // note this is for t = 0.5hour } else { dP_dt = change / 1.5; // divide by 1.5 as this is the difference in time from 0 value. } } else if (minuteCount == 65) { float lastPressureAvg = getLastPressureSamplesAverage(); float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR; if (firstRound) //first time initial 3 hour { dP_dt = change; //note this is for t = 1 hour } else { dP_dt = change / 2; //divide by 2 as this is the difference in time from 0 value } } else if (minuteCount == 95) { float lastPressureAvg = getLastPressureSamplesAverage(); float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR; if (firstRound) // first time initial 3 hour { dP_dt = change / 1.5; // note this is for t = 1.5 hour } else { dP_dt = change / 2.5; // divide by 2.5 as this is the difference in time from 0 value } } else if (minuteCount == 125) { float lastPressureAvg = getLastPressureSamplesAverage(); pressureAvg2 = lastPressureAvg; // store for later use. float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR; if (firstRound) // first time initial 3 hour { dP_dt = change / 2; // note this is for t = 2 hour } else { dP_dt = change / 3; // divide by 3 as this is the difference in time from 0 value } } else if (minuteCount == 155) { float lastPressureAvg = getLastPressureSamplesAverage(); float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR; if (firstRound) // first time initial 3 hour { dP_dt = change / 2.5; // note this is for t = 2.5 hour } else { dP_dt = change / 3.5; // divide by 3.5 as this is the difference in time from 0 value } } else if (minuteCount == 185) { float lastPressureAvg = getLastPressureSamplesAverage(); float change = (lastPressureAvg - pressureAvg) * CONVERSION_FACTOR; if (firstRound) // first time initial 3 hour { dP_dt = change / 3; // note this is for t = 3 hour } else { dP_dt = change / 4; // divide by 4 as this is the difference in time from 0 value } pressureAvg = pressureAvg2; // Equating the pressure at 0 to the pressure at 2 hour after 3 hours have past. firstRound = false; // flag to let you know that this is on the past 3 hour mark. Initialized to 0 outside main loop. } int forecast = UNKNOWN; if (minuteCount < 35 && firstRound) //if time is less than 35 min on the first 3 hour interval. { forecast = UNKNOWN; } else if (dP_dt < (-0.25)) { forecast = THUNDERSTORM; } else if (dP_dt > 0.25) { forecast = UNSTABLE; } else if ((dP_dt > (-0.25)) && (dP_dt < (-0.05))) { forecast = CLOUDY; } else if ((dP_dt > 0.05) && (dP_dt < 0.25)) { forecast = SUNNY; } else if ((dP_dt >(-0.05)) && (dP_dt < 0.05)) { forecast = STABLE; } else { forecast = UNKNOWN; } // uncomment when debugging #ifdef MY_DEBUG Serial.print(F("Forecast at minute ")); Serial.print(minuteCount); Serial.print(F(" dP/dt = ")); Serial.print(dP_dt); Serial.print(F("kPa/h --> ")); Serial.println(weather[forecast]); #endif return forecast; }```
    • sindrome73

      Which procedure for signature
      Troubleshooting • • sindrome73  

      2
      0
      Votes
      2
      Posts
      481
      Views

      gohan

      That is what I did, I created the keys on the rpi gateway and added them to the securitypersonalyzer
    • sindrome73

      Clarifications on MY_SIGNING_WEAK_SECURITY
      Troubleshooting • • sindrome73  

      13
      0
      Votes
      13
      Posts
      1156
      Views

      Anticimex

      We will address the communications overhead for security 3.0 but it will not be completely eliminated. Some handshaking will always be needed but there will be a ttl counter so one established token can be reused for a limited time/uses. Keep a look out on github if you want to follow the development for this. There will soon be tickets for the various features planned. Users are welcome to provide constructive feedback to these tickets, but the core team reserve the right of deciding
    • sindrome73

      MYSController help for beginners
      General Discussion • • sindrome73  

      3
      0
      Votes
      3
      Posts
      945
      Views

      sindrome73

      Cabbage!!
    • sindrome73

      Help. Domoticz combines the DHT and BMP180 sensors
      General Discussion • • sindrome73  

      12
      0
      Votes
      12
      Posts
      2003
      Views

      pjr

      Have you found/read these? https://github.com/domoticz/domoticz/pull/847 https://github.com/domoticz/domoticz/issues/276
    • sindrome73

      Help to Build a Sensor with Arduino Pro 3V
      Troubleshooting • • sindrome73  

      5
      0
      Votes
      5
      Posts
      1246
      Views

      sindrome73

      Discovered the problem !! I fed through the "RAW" pin while feeding through the VCC Ok is now working
    • sindrome73

      Help Signing
      Troubleshooting • • sindrome73  

      21
      0
      Votes
      21
      Posts
      3017
      Views

      Anticimex

      @sindrome73 assuming you have executed the personalizer sketch with your generated keys on both the gateway and the node(s), then yes. You can always see in the log if signing is being used. There is a parser for the log on the homepage.
    • sindrome73

      Two Gateway MQTT
      Troubleshooting • • sindrome73  

      1
      0
      Votes
      1
      Posts
      475
      Views

      No one has replied

    • sindrome73

      Exploit the mysensors network
      Feature Requests • • sindrome73  

      6
      0
      Votes
      6
      Posts
      1871
      Views

      gohan

      Yes, that's what I use it. Just connect gateway to domoticz and you have all data from the sensors
    • sindrome73

      Using two gateways MQTT
      Troubleshooting • • sindrome73  

      9
      0
      Votes
      9
      Posts
      1596
      Views

      gohan

      The problem is that domoticz only works with its own fixed topics. It may be worth trying to see if adding a unique sub topic for each gateway, the controller can still recognize the mysensors protocol
    • sindrome73

      Relay with finder and asc 712
      Troubleshooting • • sindrome73  

      5
      0
      Votes
      5
      Posts
      2154
      Views

      sindrome73

      I beg your pardon, but my English is very bad. In the evening load my sketch, so it is more clear ...... Thanks for your patience for now ......