Navigation

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

    Posts made by Tim76

    • RE: Combining relay and temperature sketch

      @gohan
      Due to work related schedule problems I won't be able to work on this code for a few weeks...... 😠

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan hey Gohan,
      I will not be able to continue to work on my code till after the weekend....😑

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan oh.... ok..... pretty new at coding, but I guess you allready figured that out.....;-)

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan output of the serial port

      0 MCO:BGN:INIT NODE,CP=RNNNA--,VER=2.1.1
      3 MCO:BGN:BFR
      144 TSM:INIT
      145 TSF:WUR:MS=0
      153 TSM:INIT:TSP OK
      154 TSM:INIT:STATID=51
      157 TSF:SID:OK,ID=51
      158 TSM:FPAR
      195 TSF:MSG:SEND,51-51-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
      986 TSF:MSG:READ,0-0-51,s=255,c=3,t=8,pt=1,l=1,sg=0:0
      990 TSF:MSG:FPAR OK,ID=0,D=1
      2202 TSM:FPAR:OK
      2203 TSM:ID
      2204 TSM:ID:OK
      2206 TSM:UPL
      2211 TSF:MSG:SEND,51-51-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
      2232 TSF:MSG:READ,0-0-51,s=255,c=3,t=25,pt=1,l=1,sg=0:1
      2237 TSF:MSG:PONG RECV,HP=1
      2240 TSM:UPL:OK
      2241 TSM:READY:ID=51,PAR=0,DIS=1
      2246 TSF:MSG:SEND,51-51-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
      2284 TSF:MSG:READ,0-0-51,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
      2291 TSF:MSG:SEND,51-51-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.1.1
      2301 TSF:MSG:SEND,51-51-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
      4329 TSF:MSG:SEND,51-51-0-0,s=255,c=3,t=11,pt=0,l=25,sg=0,ft=0,st=OK:Greenhouse main controlle
      4340 TSF:MSG:SEND,51-51-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
      4350 TSF:MSG:SEND,51-51-0-0,s=17,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=OK:
      4359 TSF:MSG:SEND,51-51-0-0,s=18,c=0,t=6,pt=0,l=0,sg=0,ft=0,st=OK:
      4369 TSF:MSG:SEND,51-51-0-0,s=1,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4376 TSF:MSG:SEND,51-51-0-0,s=2,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4384 TSF:MSG:SEND,51-51-0-0,s=3,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4397 TSF:MSG:SEND,51-51-0-0,s=4,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4407 TSF:MSG:SEND,51-51-0-0,s=5,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4418 TSF:MSG:SEND,51-51-0-0,s=6,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4434 TSF:MSG:SEND,51-51-0-0,s=7,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4449 TSF:MSG:SEND,51-51-0-0,s=8,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4459 TSF:MSG:SEND,51-51-0-0,s=9,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4489 TSF:MSG:SEND,51-51-0-0,s=10,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4505 TSF:MSG:SEND,51-51-0-0,s=11,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4515 TSF:MSG:SEND,51-51-0-0,s=12,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4528 TSF:MSG:SEND,51-51-0-0,s=13,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4540 TSF:MSG:SEND,51-51-0-0,s=14,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4556 TSF:MSG:SEND,51-51-0-0,s=15,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4564 TSF:MSG:SEND,51-51-0-0,s=16,c=0,t=3,pt=0,l=0,sg=0,ft=0,st=OK:
      4571 MCO:REG:REQ
      4576 TSF:MSG:SEND,51-51-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
      4583 TSF:MSG:READ,0-0-51,s=255,c=3,t=27,pt=1,l=1,sg=0:1
      4588 MCO:PIM:NODE REG=1
      4590 MCO:BGN:STP
      4591 MCO:BGN:INIT OK,TSP=1
      4596 MCO:SLP:MS=750,SMS=0,I1=255,M1=255,I2=255,M2=255
      4601 MCO:SLP:TPD
      4602 MCO:SLP:WUP=-1
      4636 TSF:MSG:SEND,51-51-0-0,s=0,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=OK:20.2
      4690 TSF:MSG:SEND,51-51-0-0,s=1,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=OK:20.5
      4755 TSF:MSG:SEND,51-51-0-0,s=2,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=OK:20.4
      7763 MCO:SLP:MS=750,SMS=0,I1=255,M1=255,I2=255,M2=255
      7768 MCO:SLP:TPD
      7770 MCO:SLP:WUP=-1
      10898 MCO:SLP:MS=750,SMS=0,I1=255,M1=255,I2=255,M2=255
      10902 MCO:SLP:TPD
      10904 MCO:SLP:WUP=-1

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan so I fixed that....... and now I get this in Domoticz....

      0 Unknown! #1. V_TEMP (20.7) true 2017-05-10 11:44:39
      1 S_LIGHT/S_BINARY #1. V_TEMP (20.7) true 2017-05-10 11:44:43
      2 S_LIGHT/S_BINARY #1. V_TEMP (20.9) true 2017-05-10 11:44:04
      3 S_LIGHT/S_BINARY true 2017-05-10 11:34:13
      4 S_LIGHT/S_BINARY true 2017-05-10 11:34:14
      5 S_LIGHT/S_BINARY true 2017-05-10 11:34:15
      6 S_LIGHT/S_BINARY true 2017-05-10 11:34:15
      7 S_LIGHT/S_BINARY true 2017-05-10 11:34:16
      8 S_LIGHT/S_BINARY true 2017-05-10 11:34:17
      9 S_LIGHT/S_BINARY true 2017-05-10 11:34:17
      10 S_LIGHT/S_BINARY true 2017-05-10 11:34:18
      11 S_LIGHT/S_BINARY true 2017-05-10 11:34:18
      12 S_LIGHT/S_BINARY true 2017-05-10 11:34:19
      13 S_LIGHT/S_BINARY true 2017-05-10 11:34:19
      14 S_LIGHT/S_BINARY true 2017-05-10 11:34:20
      15 S_LIGHT/S_BINARY true 2017-05-10 11:34:20
      16 S_LIGHT/S_BINARY true 2017-05-10 11:34:21
      17 S_TEMP true 2017-05-10 11:34:12
      18 S_TEMP true 2017-05-10 11:34:12
      255 S_ARDUINO_NODE 2.1.1 false 2017-05-10 11:34:12

      so it seems I do get temp Id's from 17 to 32, but the values stay in 0,1,2 where the relays 1 and 2 don't work.....

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan 😳😳😳 seems like it's only early for one of us...... I,ll change it later today.....

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan seems like it's early for both of us.....;-)

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan no I didn't...

        // Present all sensors to controller
        for (int i=17; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
           present(i, S_TEMP);
        }
        for (int sensor=1, pin=RELAY_1; 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);
        }
      }```
      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      here's the complete code as she is right now...

      
      // Enable debug prints to serial monitor
      #define MY_DEBUG 
      #define MY_RF24_CE_PIN 49
      #define MY_RF24_CS_PIN 53
      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      #define MY_NODE_ID 30
      
      #include <SPI.h>
      #include <MySensors.h>  
      #include <DallasTemperature.h>
      #include <OneWire.h>
      
      
      
      #define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No
      
      #define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
      #define MAX_ATTACHED_DS18B20 16
      OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
      DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature. 
      float lastTemperature[MAX_ATTACHED_DS18B20];
      int numSensors=0;
      bool receivedConfig = false;
      bool metric = true;
      // Initialize temperature message
      MyMessage msgTemp(0,V_TEMP);
      
      
      #define RELAY_1  30  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
      #define NUMBER_OF_RELAYS 16 // 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
      
      void before()
      {
        // Startup up the OneWire library
        sensors.begin();
      }
      
      void setup()  
      { 
        // requestTemperatures() will not block current thread
        sensors.setWaitForConversion(false);
      }
      
      void presentation() {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Greenhouse main controller", "1.0");
      
        // Fetch the number of attached temperature sensors  
        numSensors = sensors.getDeviceCount();
      
        // Present all sensors to controller
        for (int i=17; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
           present(i, S_TEMP);
        }
        for (int sensor=1, pin=RELAY_1; 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 loop()     
      {     
        // Fetch temperatures from Dallas sensors
        sensors.requestTemperatures();
      
        // query conversion time and sleep until conversion completed
        int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
        // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
        sleep(conversionTime);
      
        // Read temperatures and send them to controller 
        for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
      
          // Fetch and round temperature to one decimal
          float temperature = static_cast<float>(static_cast<int>((getControllerConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
      
          // Only send data if temperature has changed and no error
          #if COMPARE_TEMP == 1
          if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
          #else
          if (temperature != -127.00 && temperature != 85.00) {
          #endif
      
            // Send in the new temperature
            send(msgTemp.setSensor(i).set(temperature,1));
            // Save new temperatures for next compare
            lastTemperature[i]=temperature;
          }
        }
        wait(3000);
        }
        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_1, 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());
        }
      }```
      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan tried this again...... same result.....

      
        // Fetch the number of attached temperature sensors  
        numSensors = sensors.getDeviceCount();
      
        // Present all sensors to controller
        for (int i=17; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
           present(i, S_TEMP);
        }
        for (int sensor=1, pin=RELAY_1; 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);
        }
      }
      
      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan soooooo...... I tried this:

      void presentation() {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Temperature Sensor", "1.1");
      
        // Fetch the number of attached temperature sensors  
        numSensors = sensors.getDeviceCount();
      
        // Present all sensors to controller
        for (int i=1; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
           present(i+16, S_TEMP);
        }
        for (int sensor=1, pin=RELAY_1; 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);
        }
      }
      
      

      now I get the temp sensors with child id's 1 to 16 and no relays at all

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan aha! Will be trying that later tonight..... I'll keep you posted! 😊 Thx man!

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan both sketches work perfectly stand alone.... but I think the problem lies within the assingment of the child id's...
      James Bruce talks about this "bug" in his video on how to combine sketches.....
      They relay sketch assigns from 1 to 16
      And the temp sketch assigns from 0 to 15
      So they both try to use the same id's for their children when you try to combine them....
      I need a way to get around that and have relays on 1-16 and temp on 17 to 32......
      Or there might just be the same "bug" in the temperature sketch.....😬😬 wich might mean that they can't be combined for now......😒😒

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan ok

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan modfied my code..... still the same.... I get 16 children (relays) and no temp...... I have 4 ds18b20's connected.....
      And I get the error switch command on the relays....😑😑

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan apparently..... 😂😂😉

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan again, thx for your fast reply,

      How could I miss that...😳😳 lol...
      I'll try it later today....

      Thx upfront!

      Timu

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      hereby the code that doesn't seem to work...

      // Enable debug prints to serial monitor
      //#define MY_DEBUG 
      
      #define MY_RF24_CE_PIN 49
      #define MY_RF24_CS_PIN 53
      
      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      #define MY_NODE_ID 5
      #include <SPI.h>
      #include <MySensors.h>  
      #include <DallasTemperature.h>
      #include <OneWire.h>
      
      #define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No
      
      #define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
      #define MAX_ATTACHED_DS18B20 16
      unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
      OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
      DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature. 
      float lastTemperature[MAX_ATTACHED_DS18B20];
      int numSensors=0;
      bool receivedConfig = false;
      bool metric = true;
      // Initialize temperature message
      MyMessage msg(0,V_TEMP);
      
      #define RELAY_1  30  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
      #define NUMBER_OF_RELAYS 16 // 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()
      {
        // Startup up the OneWire library
        sensors.begin();
        for (int sensor=1, pin=RELAY_1; 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()  
      { 
        // requestTemperatures() will not block current thread
        sensors.setWaitForConversion(false);
      }
      
      void presentation() {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Temperature Sensor", "1.1");
      
        // Fetch the number of attached temperature sensors  
        numSensors = sensors.getDeviceCount();
      
        // Present all sensors to controller
        for (int i=17; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
           present(i, S_TEMP);
           
        for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
         // Register all sensors to gw (they will be created as child devices)
          present(sensor, S_BINARY);
        }
        }
      }
      
      void loop()     
      {     
        // Fetch temperatures from Dallas sensors
        sensors.requestTemperatures();
      
        // query conversion time and sleep until conversion completed
        int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
        // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
        sleep(conversionTime);
      
        // Read temperatures and send them to controller 
        for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
      
          // Fetch and round temperature to one decimal
          float temperature = static_cast<float>(static_cast<int>((getControllerConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
      
          // Only send data if temperature has changed and no error
          #if COMPARE_TEMP == 1
          if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
          #else
          if (temperature != -127.00 && temperature != 85.00) {
          #endif
      
            // Send in the new temperature
            send(msg.setSensor(i).set(temperature,1));
            // Save new temperatures for next compare
            lastTemperature[i]=temperature;
          }
        }
       
      }
      
      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_1, 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());
        }
         sleep(SLEEP_TIME);
      }
      
      posted in Troubleshooting
      Tim76
      Tim76
    • RE: Combining relay and temperature sketch

      @gohan thx for your fast reply...
      I wasn't anywhere near my laptop, so I couldn't post the code.

      the reason for that many sensors is:

      pretty big greenhouse with a few aquaponics and hydroponics systems.
      for instance, I have 4 vertical towers from wich I want to monitor the water temp and the temp inside the pvs towers.
      that alone are allready 2 temp sensors and a relay for the pump.....

      posted in Troubleshooting
      Tim76
      Tim76
    • Combining relay and temperature sketch

      Hey guys!
      Question....
      I'm trying to combine the temperature and relay sketch from the build section on the website, but for some reason I only see the relays showing up in Domotics.
      I understand that there is a bug in the relay sketch so I have that starting spawning childs at adress 1 till 16. Now I would like to have the temp sensors starting at 17 till 32, but for some reason I can't get it to work......
      Not able to upload my sketch for now.... hoping to get this solved quickly...... Purpose is to automate my greenhouse with aquaponics and hydroponics systems so I need to have 16 relays and 16 ds18b's to monitor the whole process....

      posted in Troubleshooting
      Tim76
      Tim76
    • RE: One adruino four soil moisture sensors

      @damien
      Is there an update for this sketch to use in V2?

      posted in Development
      Tim76
      Tim76
    • RE: Node does not get an ID: !TSM:ID:FAIL

      @ascanious Had the same problem......replaced the radio on the node..... problem solved......

      posted in Troubleshooting
      Tim76
      Tim76