Skip to content
  • 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
edsteveE

edsteve

@edsteve
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store
About
Posts
42
Topics
11
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • MOSFET as relay to keep ESP on until GPIO is low
    edsteveE edsteve

    Thx for the link.
    For more info about the solution in this video perfectly explained:
    https://www.youtube.com/watch?v=nbMfb0dIvYc&t=266s

    He uses a NDP6020 for Mosfet. The datasheet says:
    Vgs(th) (Max) @ id: 1V @250uA
    Gate Charge (Qg) @ Vgs:35nC @ 5V

    Is 1V the max i can connect to the Gate? That can't be true!?

    Hardware

  • MOSFET as relay to keep ESP on until GPIO is low
    edsteveE edsteve

    @kimot
    Do you have a common P-Channel Mosfet in mind which works for this project? I am struggling finding the right one.

    Hardware

  • MOSFET as relay to keep ESP on until GPIO is low
    edsteveE edsteve

    Hmm... it worked for a while with the 10K resistor but now not any more.
    I guess i have to change the Mosfet to a P-Channel version.

    Hardware

  • MOSFET as relay to keep ESP on until GPIO is low
    edsteveE edsteve

    Thanks. I understand that my MOSFET is not the best choice. But that's the only one i have here right now.

    The 10K resistor solved my problem. Works great. Thanks for the tip.

    Hardware

  • MOSFET as relay to keep ESP on until GPIO is low
    edsteveE edsteve

    Hi,

    Aim:
    When a door contact reed switch is triggered it should turn ON the Wemos D1, send some data to IFTTT and turn itself OFF after that.

    Function:
    So the Wemos D1 is OFF all the time (to save battery) till the reed switch (SW) turns on the Wemos D1. When the Wemos is ON it triggers the MOSFET by setting GPIO5 to HIGH and keeps itself alive (even without the reed switch) until GIOP5 is set to LOW which turns off the Wemos.

    Problems:
    But i get strange behavior. In general it works. But after the GPIO is set to LOW the hole thing still draws 0,03Amps. And sometimes it draws 0.1Amps and i have no idea why.

    Did i use the right parts? Should i add a resistor somewhere?

    Here is my code (which only explains the function) and some schematics.

    int SWITCH = 5;
    
    void setup() {
    
      pinMode(SWITCH, OUTPUT);
      digitalWrite(SWITCH, HIGH);   // Trigger the MOSFET to stay ON
    
      // Do stuff.... for example send data to IFTT with the ESP8266_To_IFTTT 
    
      digitalWrite(SWITCH, LOW);    // Turn off the Wemos D1
    }
    
    // the loop function runs over and over again forever
    void loop() {
    yield();                      // do nothing
    }
    

    alt text

    Hardware

  • Domoticz V_TEXT sensor now bidirectional
    edsteveE edsteve

    Thanks. Found it.

    Domoticz

  • Domoticz V_TEXT sensor now bidirectional
    edsteveE edsteve

    Hey,

    yes. I think that has to do with this error i am getting since i updated Domoticz:

    2018-07-07 10:56:10.962 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 10:56:12.638 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 10:56:14.307 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:06:06.240 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:06:08.005 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:06:09.660 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:16:01.821 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:16:03.607 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:16:05.250 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:25:54.471 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:25:56.130 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:25:57.782 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:35:51.868 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:35:53.537 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:35:55.196 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:45:47.051 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:45:48.865 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:45:50.579 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:55:47.429 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:55:49.137 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    2018-07-07 11:55:50.788 Error: MySensors: Text update received for unknown node_id: 2, child_id: 87
    

    I don't know which sensor is involved with that Error.
    How do i debug that if i don't know my node-ID's? ;)

    Domoticz

  • HC-SR04 (Distance) only sends data with connected serial converter?
    edsteveE edsteve

    Thanks for your reply.
    I was dealing with it for 3 hours now. Grml. But as usual i figured it out right after this post. The trigger pin was connected to the wrong Arduino pin (4 instead of 6). Of course i didin't check it, because it still worked with connected serial converter. How strange.

    So i guess this post can be deleted due to waste of space.

    Cheeers
    ED

    Troubleshooting

  • HC-SR04 (Distance) only sends data with connected serial converter?
    edsteveE edsteve

    Hallo,

    Hardware:
    i have an Arduino pro mini 5V connected to a HC-SR04 sensor and using the standard mysensors code unchanged. It runs on a 3,7V battery with a stepUp Buck converter to 5V (LM2596) which i use in many projects. The data is sent via NRF24L01+ which has it's own converter.

    It works flawless when the USB to Serial adapter (FT232BL) is connected. Every 5 seconds a reading.
    But when i let the sensor "run by itself" i can see that the sensor gets registered in Domoticz, but Domoticz does not receive any data. When i plug in the serial converter. Domoticz gets all the data as it should be.

    I also unplugged the power wires from the serial converter to see if it is a power issue. But same result.
    I do actually get a reading sometimes. Maybe every 2 minutes or so instead of every 5 seconds. But even that has the wrong values (always 0cm)

    Drives me crazy. What is that?

    Thx for thinking with me
    ED

    Troubleshooting

  • Battery status does not show in Domoticz
    edsteveE edsteve

    Sorry guys. Not at home lately. I will report if and what solved my problem when i am back.

    Domoticz

  • Battery status does not show in Domoticz
    edsteveE edsteve

    @gohan
    I also have that info from the domoticz forum and i tried it. Tailing the new log file... still no more details. I give up...
    Maaaybe... when i have motivation again i will try to read about @sunberg84 solution. But i am just not a linux expert.

    Grml... never like it to live with an unsolved problem. But thx for the effort everyone.

    Here is the link to the domoticz forum about the logging problem

    Domoticz

  • Battery status does not show in Domoticz
    edsteveE edsteve

    That's another question i have since a while now:
    How can i change the domoticz log to more debugging details? Hard to find that information. I can't find any values in the standard-log.

    Domoticz

  • Battery status does not show in Domoticz
    edsteveE edsteve

    Thanks for replies.
    Yes it can handle out of range. My weather sensor works just fine with 120% :-)

    Where would you start digging for the reason? A log file I can check?

    Domoticz

  • Battery status does not show in Domoticz
    edsteveE edsteve

    Hi,

    i was on the way building a relay node with battery status report. The Node sends the data as you can see from the serial monitor:

    Incoming change for sensor:1, New status: 1
    TSP:MSG:READ 0-0-5 s=1,c=1,t=2,pt=0,l=1,sg=0:0
    Incoming change for sensor:1, New status: 0
    Battery voltage: 4137 mV
    Battery percent: 104 %
    TSP:MSG:SEND 5-5-0-0 s=255,c=3,t=0,pt=1,l=1,sg=0,ft=0,st=ok:104
    TSP:SANCHK:OK
    

    But it does not show in Domoticz:
    0_1499628978651_Capture.PNG

    This is my sensor sketch:

    // Enable debug prints to serial monitor
    #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_NRF24
    //#define MY_RADIO_RFM69
    
    // Enable repeater functionality for this node
    #define MY_REPEATER_FEATURE
    
    #include <MySensors.h>
    
    #define RELAY_1  3  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
    #define NUMBER_OF_RELAYS 1 // 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
    
    #define BATTERY_REPORT_CYCLE 2
    #define VMIN 3200           // Min Battery level
    #define VMAX 4100           // Max Battery level
    
    int batteryReportCounter = BATTERY_REPORT_CYCLE - 1;
    
    void before()
    {
        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()
    {
    }
    
    void presentation()
    {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo("Relay", "1.0");
    
        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()
    {
    }
    
    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());
        }
        
        batteryReportCounter ++;
        bool forceTransmit = true;
       // Check battery
       if (batteryReportCounter >= BATTERY_REPORT_CYCLE) {
        long batteryVolt = readVcc();
        Serial.print("Battery voltage: "); Serial.print(batteryVolt); Serial.println(" mV");
        uint8_t batteryPcnt = constrain(map(batteryVolt,VMIN,VMAX,0,100),0,255);   
        Serial.print("Battery percent: "); Serial.print(batteryPcnt); Serial.println(" %");
        sendBatteryLevel(batteryPcnt);
        batteryReportCounter = 0;
       }
    }
    
    long readVcc() {
      // set the reference to Vcc and the measurement to the internal 1.1V reference
      ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
      delay(2); // Wait for Vref to settle
      ADCSRA |= _BV(ADSC); // Start conversion
      while (bit_is_set(ADCSRA,ADSC)); // measuring
      uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
      uint8_t high = ADCH; // unlocks both
      long result = (high<<8) | low;
      result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
      return result; // Vcc in millivolts
    }
    

    Can't figure it out :(
    Hope someone can point me in the right direction.

    Domoticz

  • openHAB 2.0 binding
    edsteveE edsteve

    @TimO
    I use Nano Neo as Hardware with Armbian Linux and OpenHabian on top. The bundle:list showed me mysensors.
    I don't find any Things. Where do i have to put this info: /dev/ttyUSB0 or /dev/ttyACM0?? In which config file?
    Now i get an error with karaf saying "connection refused" when i try:

    ssh -p 8101 openhab@localhost
    

    Yesterday it worked... the karaf thing make it even more difficult.

    EDIT: I just found out that i have to make a demo.things file with the code for the serial gateway.... And for sure that was not the last file which needs manual editing. I go back to Domoticz. Till OpenHab becomes same easy.

    OpenHAB

  • openHAB 2.0 binding
    edsteveE edsteve

    Hi,

    just a quick question:
    OpenHab2 can be used without touching any code right?
    I use mysensors serial gateway. Tried to set it up all day yesterday from skratch. Also with OpenHabian. But no success.
    So it seems i still have to edit files and folders manually in order to get it running right?

    I got Domoticz working after short time. Was expecting OpenHab2 makes it even more easy :/

    OpenHAB

  • <SOLVED>Domoticz adds constantly new devices when using manual DeviceAddress for DS18B20
    edsteveE edsteve

    Yeahaa. Thanks so much. I really appreciate it!
    Some small changes with temp4 and works like a charm. If you don't accept my offer. Then the transfer goes to mysensors community :)

    Here the working code IF someone need it or i loose mine ;)

    #define MY_RADIO_NRF24
    #define MY_DEBUG
    #include <MySensors.h>
    #include <SPI.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    // Data wire is plugged into port 2 on the Arduino 
    #define ONE_WIRE_BUS 4 
    #define TEMPERATURE_PRECISION 10 
     
    // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) 
    OneWire oneWire(ONE_WIRE_BUS); 
    
    // Pass our oneWire reference to Dallas Temperature. 
    DallasTemperature sensors(&oneWire); 
    
    #define NODE_ID 1
    #define CHILD_ID_WIND 1
    #define CHILD_ID_TEMP1 3
    #define CHILD_ID_TEMP2 4
    #define CHILD_ID_TEMP3 5
    #define CHILD_ID_TEMP4 6
    #define CHILD_ID_TEMP5 7
    
    unsigned int val_wspeed;
    unsigned int val_wgust;
    unsigned int val_wdirection;
    
    
    unsigned int last_wspeed;
    unsigned int last_wgust;
    unsigned int last_wdirection;
    
    
    DeviceAddress  temp1 = { 0x28, 0xEE, 0xB6, 0xB1, 0x27, 0x16, 0x01, 0x1F };
    DeviceAddress  temp2 = { 0x28, 0xEE, 0xE1, 0x20, 0x28, 0x16, 0x01, 0xEA };
    DeviceAddress  temp3 = { 0x28, 0xEE, 0x0D, 0xAA, 0x24, 0x16, 0x02, 0x8A };
    DeviceAddress  temp4 = { 0x28, 0xEE, 0x7D, 0xA8, 0x24, 0x16, 0x02, 0xE0 };
    DeviceAddress  temp5 = { 0x28, 0xFF, 0xF6, 0x8F, 0x62, 0x16, 0x03, 0x7F };
    
    
    
    MyMessage msgWSpeed(CHILD_ID_WIND, V_WIND);
    MyMessage msgWGust(CHILD_ID_WIND, V_GUST);
    MyMessage msgWDirection(CHILD_ID_WIND, V_DIRECTION);
    MyMessage msg(0,V_TEMP);
    
    void setup(void) 
    {
      // start serial port
      Serial.begin(115200);
      Serial.println("Dallas Temperature IC Control Library Demo");
    
      // Start up the library
      sensors.begin();
    
      // report parasite power requirements
      Serial.print("Parasite power is: "); 
      if (sensors.isParasitePowerMode()) Serial.println("ON");
      else Serial.println("OFF");
    
      // set the resolution to 9 bit
      sensors.setResolution(temp1, TEMPERATURE_PRECISION);
      sensors.setResolution(temp2, TEMPERATURE_PRECISION);
      sensors.setResolution(temp3, TEMPERATURE_PRECISION);
      sensors.setResolution(temp4, TEMPERATURE_PRECISION);
      sensors.setResolution(temp5, TEMPERATURE_PRECISION);
    
    }
    
    void presentation()
    {
        present(CHILD_ID_WIND, S_WIND);
        present(CHILD_ID_TEMP1, S_TEMP);
        present(CHILD_ID_TEMP2, S_TEMP);
        present(CHILD_ID_TEMP3, S_TEMP);
        present(CHILD_ID_TEMP4, S_TEMP);
        present(CHILD_ID_TEMP5, S_TEMP);
    }
    
    void loop()
    {  
      // call sensors.requestTemperatures() to issue a global temperature 
      // request to all devices on the bus
      Serial.print("Requesting temperatures...");
      sensors.requestTemperatures();
      Serial.println("DONE");
    
      // print the device information
      float east = sensors.getTempC(temp1);
      Serial.print("East C: ");
      Serial.println(east);
      send(msg.setSensor(CHILD_ID_TEMP1).set(east,1));
    
      float north = sensors.getTempC(temp2);
      Serial.print("North  C: ");
      Serial.println(north);
      send(msg.setSensor(CHILD_ID_TEMP2).set(north,1));
    
      float west = sensors.getTempC(temp5);
      Serial.print("West  C: ");
      Serial.println(west);
      send(msg.setSensor(CHILD_ID_TEMP5).set(west,1));
    
      float south = sensors.getTempC(temp3);
      Serial.print("South C: ");
      Serial.println(south);
      send(msg.setSensor(CHILD_ID_TEMP3).set(south,1));
    
      float out = sensors.getTempC(temp4);
      Serial.print("Test  C: ");
      Serial.println(out); 
      send(msg.setSensor(CHILD_ID_TEMP4).set(out,1)); 
      
      // calculating wind direction form temperature differences
        if (north > south && north > west && north > east ) {
        Serial.println("SOUTH");
        unsigned int val_wdirection = 180; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    
        if (east > north && east > west && east > south ) {
        Serial.println("WEST");
        unsigned int val_wdirection = 280; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    
         if (south > north && south > west && south > east ) {
        Serial.println("NORTH");
        unsigned int val_wdirection = 0; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    
        if (west > north && west > south && west > east ) {
        Serial.println("EAST");
        unsigned int val_wdirection = 90; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
      
      //domoticz must see speed and gust so i give random numbers for testing
      unsigned int val_wspeed = 17; 
        if(last_wspeed != val_wspeed)
        { 
           last_wspeed = val_wspeed;
           send(msgWSpeed.set(val_wspeed, 1));
           Serial.print("WS: ");
           Serial.println(val_wspeed);
        }
        
        unsigned int val_wgust = 5; 
        if(last_wgust != val_wgust)
        { 
           last_wgust = val_wgust;
           send(msgWGust.set(val_wgust, 1));
           Serial.print("WG: ");
           Serial.println(val_wgust);
        }
    
          delay (5000);
    }
    
    Domoticz

  • <SOLVED>Domoticz adds constantly new devices when using manual DeviceAddress for DS18B20
    edsteveE edsteve

    I understand what you mean. Thanks for your answer.
    But i still have trouble to write your solution into code. If it's not too much work for you. Can you help me out?

    If that solves the problem. Please send me your paypal email.

    Domoticz

  • <SOLVED>Domoticz adds constantly new devices when using manual DeviceAddress for DS18B20
    edsteveE edsteve

    Hi,

    after two days testing and trying i give up. BUT i am a programming noob. So i am sure the error is in the code easy to spot for others.

    Situation:
    Arduino Pro Mini has fife DS18B20 sensors attached. Sending data via serial gateway to domoticz which runs on NanoPi (Raspberry compatible). When i use the mysensors temp sketch all works well without problems.
    But i can't use the "standard sketch" because the mysensors code is not assigning DeviceAdreses manually which i need for this project.

    So here is my code:

    #define MY_RADIO_NRF24
    #define MY_DEBUG
    #include <MySensors.h>
    #include <SPI.h>
    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    // Data wire is plugged into port 2 on the Arduino 
    #define ONE_WIRE_BUS 4 
    #define TEMPERATURE_PRECISION 10 
     
    // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) 
    OneWire oneWire(ONE_WIRE_BUS); 
    
    // Pass our oneWire reference to Dallas Temperature. 
    DallasTemperature sensors(&oneWire); 
    
    #define NODE_ID 1
    #define CHILD_ID_WIND 1
    #define CHILD_ID_TEMP 3
    
    unsigned int val_wspeed;
    unsigned int val_wgust;
    unsigned int val_wdirection;
    
    
    unsigned int last_wspeed;
    unsigned int last_wgust;
    unsigned int last_wdirection;
    
    DeviceAddress  temp1 = { 0x28, 0xEE, 0xB6, 0xB1, 0x27, 0x16, 0x01, 0x1F };
    DeviceAddress  temp2 = { 0x28, 0xEE, 0xE1, 0x20, 0x28, 0x16, 0x01, 0xEA };
    DeviceAddress  temp3 = { 0x28, 0xEE, 0x0D, 0xAA, 0x24, 0x16, 0x02, 0x8A };
    DeviceAddress  temp4 = { 0x28, 0xEE, 0x7D, 0xA8, 0x24, 0x16, 0x02, 0xE0 };
    DeviceAddress  temp5 = { 0x28, 0xFF, 0xF6, 0x8F, 0x62, 0x16, 0x03, 0x7F };
    
    
    MyMessage msgWSpeed(CHILD_ID_WIND, V_WIND);
    MyMessage msgWGust(CHILD_ID_WIND, V_GUST);
    MyMessage msgWDirection(CHILD_ID_WIND, V_DIRECTION);
    MyMessage msg(CHILD_ID_TEMP,V_TEMP);
    
    void setup(void) 
    {
      // start serial port
      Serial.begin(115200);
      Serial.println("Dallas Temperature IC Control Library Demo");
    
      // Start up the library
      sensors.begin();
    
      // report parasite power requirements
      Serial.print("Parasite power is: "); 
      if (sensors.isParasitePowerMode()) Serial.println("ON");
      else Serial.println("OFF");
    
      // set the resolution to 9 bit
      sensors.setResolution(temp1, TEMPERATURE_PRECISION);
      sensors.setResolution(temp2, TEMPERATURE_PRECISION);
      sensors.setResolution(temp3, TEMPERATURE_PRECISION);
      sensors.setResolution(temp4, TEMPERATURE_PRECISION);
      sensors.setResolution(temp5, TEMPERATURE_PRECISION);
    
    }
    
    void presentation()
    {
        present(CHILD_ID_WIND, S_WIND);
        present(CHILD_ID_TEMP, S_WIND);
    }
    
    void loop()
    {  
      // call sensors.requestTemperatures() to issue a global temperature 
      // request to all devices on the bus
      Serial.print("Requesting temperatures...");
      sensors.requestTemperatures();
      Serial.println("DONE");
    
      // print the device information
      float east = sensors.getTempC(temp1);
      Serial.print("East C: ");
      Serial.println(east);
      send(msg.setSensor(temp1).set(east,1));
    
      float north = sensors.getTempC(temp2);
      Serial.print("North  C: ");
      Serial.println(north);
      send(msg.setSensor(temp2).set(north,1));
    
      float west = sensors.getTempC(temp5);
      Serial.print("West  C: ");
      Serial.println(west);
      send(msg.setSensor(temp4).set(west,1));
    
      float south = sensors.getTempC(temp3);
      Serial.print("South C: ");
      Serial.println(south);
      send(msg.setSensor(temp5).set(south,1));
    
      float temp33 = sensors.getTempC(temp4);
      Serial.print("Test  C: ");
      Serial.println(temp33); 
      send(msg.setSensor(temp33).set(temp33,1)); 
      
      // calculating wind direction form temperature differences
        if (north > south && north > west && north > east ) {
        Serial.println("SOUTH");
        unsigned int val_wdirection = 180; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    
        if (east > north && east > west && east > south ) {
        Serial.println("WEST");
        unsigned int val_wdirection = 280; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    
         if (south > north && south > west && south > east ) {
        Serial.println("NORTH");
        unsigned int val_wdirection = 0; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    
        if (west > north && west > south && west > east ) {
        Serial.println("EAST");
        unsigned int val_wdirection = 90; 
           send(msgWDirection.set(val_wdirection));
           Serial.print("WD: ");
           Serial.println(val_wdirection);
        }
    	
    	//domoticz must see speed and gust so i give random numbers for testing
    	unsigned int val_wspeed = 17; 
        if(last_wspeed != val_wspeed)
        { 
           last_wspeed = val_wspeed;
           send(msgWSpeed.set(val_wspeed, 1));
           Serial.print("WS: ");
           Serial.println(val_wspeed);
        }
        
        unsigned int val_wgust = 5; 
        if(last_wgust != val_wgust)
        { 
           last_wgust = val_wgust;
           send(msgWGust.set(val_wgust, 1));
           Serial.print("WG: ");
           Serial.println(val_wgust);
        }
    
          delay (5000);
    }
    

    Problem:
    Domoticz adds more and more temp sensors in the Device List. Randomly i would say. Sometimes fife new devices within 10 minutes. Sometimes none for one hour.
    What is causing that?

    I get this compiling warning from Arduino IDE which i don't know how to solve. Is that the problem?

    C:\Users\ed\Documents\Arduino\Wind-Test\Wind-Test-incl-temp\Wind-Test-incl-temp.ino: In function 'void loop()':
    
    C:\Users\ed\Documents\Arduino\Wind-Test\Wind-Test-incl-temp\Wind-Test-incl-temp.ino:122:27: warning: invalid conversion from 'uint8_t* {aka unsigned char*}' to 'uint8_t {aka unsigned char}' [-fpermissive]
    
       send(msg.setSensor(temp1).set(east,1));
    
                               ^
    
    In file included from C:\Users\ed\Documents\Arduino\libraries\MySensors/MySensors.h:333:0,
    
                     from C:\Users\ed\Documents\Arduino\Wind-Test\Wind-Test-incl-temp\Wind-Test-incl-temp.ino:3:
    
    C:\Users\ed\Documents\Arduino\libraries\MySensors/core/MyMessage.cpp:217:12: note: initializing argument 1 of 'MyMessage& MyMessage::setSensor(uint8_t)'
    
     MyMessage& MyMessage::setSensor(uint8_t _sensor)
    

    What i tried on hardware side:

    • Changed Arduino
    • Changed 4 out of 5 temp sensors
    • Changed Radio

    Here newly added temp-sensors for the last 20 minutes
    alt text

    Any ideas, hints or even solutions?
    15USD for solution. Totally worth it :)

    Cheers
    ED

    Domoticz

  • <SOLVED> What is wrong with my S_Wind V_Direction value? Never changes...
    edsteveE edsteve

    Thanks for still coping with me. Tried playing with your suggestions but no success as well.
    But i found the problem.

    SOLUTION:
    I just gave the wind-sensor-node a different NODE_ID manually and now it updates the direction value.
    Seems there was some problems with old data when i used this arduino as a temp sensor.

    Domoticz
  • Login

  • Don't have an account? Register

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