Navigation

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

    Posts made by iguaan

    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      If anyone is getting "Property 'bootloader.tool.' is undefined" error with arduino 2.x when trying to burn bootloader, then you just have to add another row in bold below to boards.txt file

      MYSBL.upload.tool=avrdude
      MYSBL.upload.protocol=arduino
      MYSBL.upload.maximum_size=30720
      MYSBL.upload.maximum_data_size=2048
      MYSBL.bootloader.tool=avrdude
      MYSBL.bootloader.tool.default=avrdude

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      Today I couldn't get it to work again unless I blocked all ports, ran program and then unblock again (to access GW).
      Solution was to block myscontroller from accessing only that remote IP on all ports, letting me still connect to gateway without any fiddling in firewall settings on every program start.

      Hope this solution stays for good 🙂

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @iguaan said in MYSBootloader 1.3 pre-release & MYSController 1.0.0beta:

      @nfj25 said in MYSBootloader 1.3 pre-release & MYSController 1.0.0beta:

      om acessing the network in the Windows Firewall and... it works! Only block TCP port 80 if you are connecting to a MySensors TCP gateway.

      Can't get it working that way, even if i block all the traffic on Myscontroller.

      Got it working, I have program on onedrive and seemed that automatically generated path in rules didn't work:
      "%USERPROFILE%\OneDrive\MYSController\MYSController.exe"
      Had to change it to "C:\Users\user\OneDrive\MYSController" and it works now, great success.

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      @nfj25 said in MYSBootloader 1.3 pre-release & MYSController 1.0.0beta:

      om acessing the network in the Windows Firewall and... it works! Only block TCP port 80 if you are connecting to a MySensors TCP gateway.

      Can't get it working that way, even if i block all the traffic on Myscontroller.

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      There's another somewhat way around:

      you just need to open prog and then close when it gets stuck and then clik try to restore or wait button few times:
      https://pasteboard.co/GQTHDnaQsawY.png
      then you should get this screen at some point and then press ok/ignore and it works
      (https://pasteboard.co/9iuz1LC7kgWC.png

      needs several tries.

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3 pre-release & MYSController 1.0.0beta

      Anyone else experiencing crashing of the application after about 10seconds?

      posted in Development
      iguaan
      iguaan
    • RE: Question with regards to NRF24 antenna folding

      You might wanna try to wrap the module in plastic tape and then alu foil around it and then ground the foil.
      Or set PA level to LOW

      posted in Troubleshooting
      iguaan
      iguaan
    • RE: Best way to power nano and relay?

      Is your relay coil connected directly to Arduino pin?
      It draws too much current, this needs to be powered through transistor or use ready made module:
      https://thesolaruniverse.files.wordpress.com/2020/10/079_relay_fig_01_96_dpi.png

      posted in Hardware
      iguaan
      iguaan
    • RE: How to get the bad status (red) for Temperature Node

      Select temp sensor and click notifications, then:
      Screenshot_2021-11-07-21-45-21-620_com.android.chrome.jpg

      posted in Domoticz
      iguaan
      iguaan
    • RE: Removed childs not being recognised again

      Restarting domoticz might help next time, when you have original code running on that node again.
      Also some PIR cause radio interference, if i remember correctly, then hc sr501 should be ok.

      posted in Domoticz
      iguaan
      iguaan
    • RE: 💬 Building a Raspberry Pi Gateway

      In case someone has similar issue:
      Running everything latest up to date.

      Raspberry pi zero w with nrf24 connected directly on GPIO and domoticz. Had to have startup delay on mysgw service since domoticz wouldn't or couldn't start automatically on boot.
      So i added to:
      sudo nano /etc/systemd/system/mysgw.service

      [Service]
      ExecStartPre=/bin/sleep 10

      Maybe 10 seconds is overkill, but at least it works now.
      With raspberry pi 3b+ there wasn't that issue.

      Also in domoticz had to use raspi ip address, when setting up mysensors LAN gateway address, instead of localhost 127.0.0.1

      And myscontroller OTA updates are working too.🙂

      posted in Announcements
      iguaan
      iguaan
    • RE: PCB verification request for latching valve controller

      Nrf is long range model?
      PA/LNA module.

      posted in Hardware
      iguaan
      iguaan
    • RE: MYSBootloader 1.3.0-beta.3

      @cabat said in MYSBootloader 1.3.0-beta.3:

      @iguaan Try to set MY_RF24_PA_LEVEL to RF24_PA_MIN on gateway then use NRF24L01+PA+LNA module - in my case the OTA begin work perfect!

      Well finally got time to try it out and it worked like a charm, thank you!
      Also no problem with a node that is about 1,5m away from GW.
      LOW also worked, but OTA was slow.

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3.0-beta.3

      Well found the problem.
      I had also changed gw nrf module to NRF24L01+PA+LNA 2.4GHz:
      511ec8a3-c017-4878-831f-ac176dbf5707-image.png and it seems to be the issue.
      Although regular traffic monitoring etc is working ok.
      Changed back to usual nrf24l01+ module and updates are working again.
      Both variants are ali merchandise.

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3.0-beta.3

      That's the problem, i don't know what exactly happened/caused this. That's why i'm asking for working solutions/versions so i can try to trace back what might be wrong with my setup.

      Also now i remembered that i had to renew gateway with esp8266 since previous broke down. I don't know for sure that i had previously ota feature for gateway enabled.
      GW sketch:

      // Enable debug prints to serial monitor
      #define MY_DEBUG
      
      // kui lae peale ei jõua
      #define MY_SIGNING_WEAK_SECURITY  //!<  Nodes that present themselves as not requiring signing or whitelisting will be cleared of this requirement at the receiving end.
      //#define MY_DEBUG_VERBOSE_SIGNING //!< Enable signing related debug prints to serial monitor
      //#define MY_SIGNING_SOFT //!< Software signing
      //#define MY_SIGNING_REQUEST_SIGNATURES // Enable this if you want destination node to sign all messages sent to this node.
      //#define MY_SIGNING_SOFT_RANDOMSEED_PIN A0 //!< Unconnected analog pin for random seed
      
      #define MY_RADIO_RF24
      #define MY_GATEWAY_ESP8266
      #define MY_WIFI_SSID "hidden"
      #define MY_WIFI_PASSWORD "hidden"
      
      // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
      #define MY_IP_ADDRESS hidden
      //#define MY_CONTROLLER_URL_ADDRESS "my.controller.org"
      #define MY_HOSTNAME "hidden"
      // If using static ip you need to define Gateway and Subnet address as well
      #define MY_IP_GATEWAY_ADDRESS hidden
      #define MY_IP_SUBNET_ADDRESS hidden
      
      // The port to keep open on node server mode
      #define MY_PORT hidden
      
      // How many clients should be able to connect to this gateway (default 1)
      #define MY_GATEWAY_MAX_CLIENTS 2
      
      #include <ArduinoOTA.h>
      #include <MySensors.h>
      
                                    
      void setup()
      {
          Serial.begin(115200);
        // Setup locally attached sensors
        ArduinoOTA.onStart([]() {
          Serial.println("ArduinoOTA start");
        });
        ArduinoOTA.onEnd([]() {
          Serial.println("\nArduinoOTA end");
        });
        ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
          Serial.printf("OTA Progress: %u%%\r", (progress / (total / 100)));
        });
        ArduinoOTA.onError([](ota_error_t error) {
          Serial.printf("Error[%u]: ", error);
          if (error == OTA_AUTH_ERROR) {
            Serial.println("Auth Failed");
          } else if (error == OTA_BEGIN_ERROR) {
            Serial.println("Begin Failed");
          } else if (error == OTA_CONNECT_ERROR) {
            Serial.println("Connect Failed");
          } else if (error == OTA_RECEIVE_ERROR) {
            Serial.println("Receive Failed");
          } else if (error == OTA_END_ERROR) {
            Serial.println("End Failed");
          }
        });
        ArduinoOTA.begin();
      }
      
      
      void presentation()
      {
        sendSketchInfo("GW", "1"); // Present locally attached sensors here
       
      }
      
      
      void loop()
      {
          // Send locally attached sensors data here
        ArduinoOTA.handle();
      }
      

      I remember when i got it first working year(s) ago i tried also different bootloaders, fiddled with fuse settings and eventually got it working perfectly, but now (since i've updated arduino) maybe my board settings are incorrect.

      posted in Development
      iguaan
      iguaan
    • RE: MYSBootloader 1.3.0-beta.3

      Hi, have been using myscontroller more than a year now and at some point i couldn't use OTA on devices, all the sensor data is coming in nicely. I don't know if it was due to updated arduino or i messed up something in my doards.txt or something else...
      So question is if someone can give me versions/links to working solution?
      https://github.com/mysensors/MySensorsBootloaderRF24/tree/development doesn't work.

      I'm using ProMini 16Mhz with external oscillator. Arduino is 1.8.13, MySensors 2.2.2,
      Myscontroller 1.0.0beta:b3316.

      posted in Development
      iguaan
      iguaan
    • Domoticz weather sensor presentation

      I have created a weather sensor which has hum, temp, baro, predicition and lux.
      Aslo i have attached there another ds temp sensor (for node internal temp).
      Problem is that when i update fw over ota or reboot node, it'll occasionally detect sensors all mixed up:
      temp/hum, temp, baro/temp/hum etc... Also when it does that, not all the data will be updated on combined sensros.
      Is there a way to present the sensors to domticz so, that it recognises 1 combined weather sensor and then others.
      I have tried with all different Sensor ID's 1-4, lux id5 and internal temp id6.
      Also tried with giving same sensor ID number to hum, temp, baro and predicition.
      Domoticz detects it as a combined sensor, but it doesn't update all values after initial value has been sent.
      If i monitor the data on myscontroller, all the variables are updating on the node.

      posted in Domoticz
      iguaan
      iguaan
    • RE: Problem with dimmable LED actuator with encoder

      Hi,
      i have similar problem with domoticz and mysensors.
      Firstly, i can't get current dim level from domoticz on startup.
      Secondly if i start arduino and controll it over domoticz only, dimming and on/off works. If i turn the rotary knob, domoticz commands won't work.
      In serial monitor i see that new dim value has been received:

          Serial.print("Fading level: ");
          Serial.println(dimValue);
      

      but output doesn't change. If i turn knob on rotary, value in domoticz changes.
      I removed eeprom writes and rotary button. Only dims to off/on or domoticz commands off/on.
      Domoticz 4.10171, Mysensors 2.3.1, ide 1.8.10

      
      // Enable debug prints to serial monitor
      #define MY_DEBUG
      #define MY_RADIO_RF24
      #define MY_NODE_ID 10
      #define MY_REPEATER_FEATURE
      #define MY_TRANSPORT_WAIT_READY_MS 10      //ajaviide ms, kuni läheb tööle ilma serverita
      
      
      #include <MySensors.h>
      
      #include <Encoder.h>
      #define KNOB_ENC_PIN_1 5    // Rotary encoder input pin 1
      #define KNOB_ENC_PIN_2 4    // Rotary encoder input pin 2
      #define SEND_THROTTLE_DELAY 500 // Number of milliseconds before sending after user stops turning knob
      
      #define CHILD_ID_Light 1
      #define SN "DimmableLED"
      #define SV "1.1"
      #define LED_PIN 3      // Arduino pin attached to MOSFET Gate pin
      #define FADE_DELAY 10  // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim)
      
      int dimValue;
      int fadeTo;
      int fadeDelta;
      bool changedByKnob = false;
      bool sendDimValue = false;
      unsigned long lastFadeStep;
      unsigned long sendDimTimeout;
      
      //char convBuffer[10];
      
      
      static int16_t currentLevel ;  // Current dim level...
      MyMessage dimmerMsg(CHILD_ID_Light, V_DIMMER);
      MyMessage lightMsg(CHILD_ID_Light, V_LIGHT);
      
      Encoder knob(KNOB_ENC_PIN_1, KNOB_ENC_PIN_2);
      
      /***
         Dimmable LED initialization method
      */
      void setup()
      {
        // Pull the gateway's current dim level - restore light level upon node power-up
        request( CHILD_ID_Light, V_DIMMER);
        // wait(3000);
      
      }
      
      void presentation()
      {
        // Register the LED Dimmable Light with the gateway
        present(CHILD_ID_Light, S_DIMMER );
      
        sendSketchInfo(SN, SV);
      }
      
      /***
          Dimmable LED main processing loop
      */
      void loop()
      {
        // Check if someone turned the rotary encode
        checkRotaryEncoder();
      
      
        // Fade light to new dim value
        fadeStep();
      }
      
      void receive(const MyMessage &message)
      {
        if (message.type == V_STATUS || message.type == V_PERCENTAGE) {
      
          //  Retrieve the power or dim level from the incoming request message
          fadeTo = atoi( message.data );
      
          // Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on]
          fadeTo *= ( message.type == V_LIGHT ? 100 : 1 );
      
          // Clip incoming level to valid range of 0 to 100
          fadeTo = fadeTo > 100 ? 100 : fadeTo;
          fadeTo = fadeTo < 0   ? 0   : fadeTo;
          //startFade();
          Serial.print("New light level received: ");
          Serial.println(fadeTo);
      
          if (!changedByKnob)
            knob.write(fadeTo << 1);           //### need to multiply by two (using Shift left)
      
          // Cancel send if user turns knob while message comes in
          changedByKnob = false;
          sendDimValue = false;
      
          // Stard fading to new light level
          startFade();
      
          //		// Inform the gateway of the current DimmableLED's SwitchPower1 and LoadLevelStatus value...
          //		send(lightMsg.set(dimValue > 0));
          //
          //		// hek comment: Is this really nessesary?
          //		send( dimmerMsg.set(dimValue) );
      
      
        }
      }
      
      void checkRotaryEncoder() {
        long encoderValue = knob.read() >> 1 ;    //### Divide by 2 (using shift right)
      
        if (encoderValue > 100) {
          encoderValue = 100;
          knob.write(200);                        //### max value now 200 due to divide by 2
        } else if (encoderValue < 0) {
          encoderValue = 0;
          knob.write(0);
        }
      
        if (encoderValue != fadeTo) {
          fadeTo = encoderValue;
          changedByKnob = true;
          startFade();
        }
      }
      
      void startFade() {
        fadeDelta = ( fadeTo - dimValue ) < 0 ? -1 : 1;
        lastFadeStep = millis();
      }
      
      // This method provides a graceful none-blocking fade up/down effect
      void fadeStep() {
        unsigned long currentTime  = millis();
        if ( dimValue != fadeTo && currentTime > lastFadeStep + FADE_DELAY) {
          dimValue += fadeDelta;
          analogWrite( LED_PIN, (int)(dimValue / 100. * 255 ) );
          lastFadeStep = currentTime;
      
          Serial.print("Fading level: ");
          Serial.println(dimValue);
      
          if (fadeTo == dimValue && changedByKnob) {
            sendDimValue = true;
            sendDimTimeout = currentTime;
          }
        }
        // Wait a few millisecs before sending in new value (if user still turns the knob)
        if (sendDimValue && currentTime > sendDimTimeout + SEND_THROTTLE_DELAY)  {
          // We're done fading.. send in new dim-value to controller.
          // Send in new dim value with ack (will be picked up in incomingMessage)
          send(dimmerMsg.set(dimValue)); // Send new dimmer value and request ack back
          sendDimValue = false;
        }
      }```
      posted in Development
      iguaan
      iguaan
    • RE: Presenting and controlling variables in domoticz

      @pjr said in Presenting and controlling variables in domoticz:

      Cannot get the point what you exactly mean but I think you should check for what child the message is for:
      if(message.sensor == CHILD_ID_aeg2** && message.type == ...) { ..do suff.. }

      Thank you, message.sensor was the thing i needed. Browsed cpp and h files in mysensors library and googled, but couldn't find variables to use with message.*.
      😃

      posted in Domoticz
      iguaan
      iguaan
    • RE: Presenting and controlling variables in domoticz

      I cannot use multiple V_PERCENTAGE values. Because if a change a value in domo, both are changing (dime delay(aeg2)) and RGB dimmer..

      posted in Domoticz
      iguaan
      iguaan
    • Presenting and controlling variables in domoticz

      Hello,

      having trouble controling multiple actuators in domoticz.
      I have made arduino sketch with preloaded setpoints for outside light controlling, in case domoticz is offline or unreachable after power outage etc.
      I have switch on/off setpoints and time delay for switch off

      When i activate present(RGB_RGBChild, S_RGB_LIGHT, "Ees RGB valik") then also time-delay is automatically adjusted by it.

      MyMessage msgTe1(CHILD_ID_Te1, V_TEMP);
      MyMessage msgSp21(CHILD_ID_Sp21, V_HVAC_SETPOINT_HEAT);         //seadearvu muutmine kaugelt
      MyMessage msgSp22(CHILD_ID_Sp22, V_HVAC_SETPOINT_COOL);
      MyMessage msgvalgus(CHILD_ID_valgus, V_LEVEL);
      MyMessage msgaeg2(CHILD_ID_aeg2, V_PERCENTAGE);
      
      void presentation()  {
        sendSketchInfo("Valgus", "1.0");  // seadme nimi, versioon domoticzile
        present(CHILD_ID_Te1, S_TEMP, "Pooningul");        //anname anduri id, liigi, nime domoticzile
        present(CHILD_ID_valgus, S_LIGHT_LEVEL, "Valgustugevus"); //current level lux
        present(CHILD_ID_Sp21, S_LIGHT_LEVEL, "Valgus sisse"); // light on
        present(CHILD_ID_Sp22, S_LIGHT_LEVEL, "Valgus valja"); // light off
        present(CHILD_ID_aeg2, S_DIMMER, "Valguse viide valja");  // time delay off 
      

      When i added ws2812 RGB switch everything got mixed up, especially time delay feature, but also switching in domoticz activated CHILD_ID_Sp21 and CHILD_ID_Sp22(no values were changed)

      MyMessage msgTe1(CHILD_ID_Te1, V_TEMP);
      MyMessage msgSp21(CHILD_ID_Sp21, V_HVAC_SETPOINT_HEAT);         //seadearvu muutmine kaugelt
      MyMessage msgSp22(CHILD_ID_Sp22, V_HVAC_SETPOINT_COOL);
      MyMessage msgvalgus(CHILD_ID_valgus, V_LEVEL);
      MyMessage msgaeg2(CHILD_ID_aeg2, V_PERCENTAGE);
      
      
      
      MyMessage lightRGBMsg(RGB_LightChild,  V_RGB);        // standard messages, light
        MyMessage lightdimmerMsG(RGB_LightChild ,V_DIMMER); 
      MyMessage lightOnOffMessage(RGB_LightChild, V_STATUS);
      
      void presentation()  {
        sendSketchInfo("Valgus", "1.0");  // seadme nimi, versioon domoticzile
        present(CHILD_ID_Te1, S_TEMP, "Pooningul");        //anname anduri id, liigi, nime domoticzile
        present(CHILD_ID_valgus, S_LIGHT_LEVEL, "Valgustugevus"); //current level lux
        present(CHILD_ID_Sp21, S_LIGHT_LEVEL, "Valgus sisse"); // light on
        present(CHILD_ID_Sp22, S_LIGHT_LEVEL, "Valgus valja"); // light off
        present(CHILD_ID_aeg2, S_DIMMER, "Valguse viide valja");  // time delay off 
      
        present(RGB_RGBChild, S_RGB_LIGHT, "Ees RGB valik");// present to controller
        present(RGB_LightChild, S_LIGHT, "Ees on/off/dim ");
        present(RGB_SolidColorChild, S_LIGHT, "Ees on/off värv" );
        present(RGB_TextColorChild, S_INFO, "Ees värvi tekst" );  
        present(RGB_AlarmPatternChild, S_BINARY, "Ees vilkuv pu/va" );
        present(RGB_NextPatternChild, S_DIMMER, "Ees RGB muster" );
      

      Each child is presented in domoticz correctly with correct name.
      Is there even a way to use multiple same type actuators in a sketch?

      To update preloaded setpoints from arduino to domoticz, i have this added (which might be the problem?)

      void receive(const MyMessage &message) {
      
        if (message.type == V_HVAC_SETPOINT_HEAT) {
          Sp21 = message.getFloat();
        }
        if (message.type == V_HVAC_SETPOINT_COOL) {
          Sp22 = message.getFloat();
        }
      
        if (message.type == V_PERCENTAGE) {
          aeg2 = message.getFloat();
        }
        sendNewStateToGateway();
      

      and

      void sendNewStateToGateway() {
      
        send(msgSp21.set(Sp21));
        send(msgSp22.set(Sp22));
        send(msgaeg2.set(aeg2));
      
      }
      

      Have googled and searched mysensors/domoticz forums but no results. I'm more like hobby programmer if that's the word and self somewhat learned by google for a few years now.

      posted in Domoticz
      iguaan
      iguaan