Skip to content
  • MySensors
  • 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
  1. Home
  2. Development
  3. battery level doesn't appear ?

battery level doesn't appear ?

Scheduled Pinned Locked Moved Development
25 Posts 6 Posters 6.0k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    flopp
    wrote on last edited by
    #14

    You can also restart your Node and then it will send all data again like, Sketchname, version and also all childs

    1 Reply Last reply
    0
    • flylowgofastF Offline
      flylowgofastF Offline
      flylowgofast
      wrote on last edited by
      #15

      my loop(){}

      // the loop routine runs over and over again forever:
      void loop() {
      
        // Process incoming messages (like config from server)
        gw.process();  
      
        //---------------Lecture des ouvertures de porte------------------
        doorOpenOffState = digitalRead(HALLOFFICEDOOR); // lecture à chaque cycle (urgence)
        if (doorOpenOffState != doorOpenOffChange){
          gw.send(msgDoorOffice.setSensor(OFFICEDOOR).set(doorOpenOffState));
          doorOpenOffChange = doorOpenOffState;
        }
      
        doorOpenBedState = digitalRead(HALLBEDROOMDOOR); // lecture à chaque cycle (urgence)
        if (doorOpenBedState != doorOpenBedChange){
          gw.send(msgDoorBedroom.setSensor(BEDROOMDOOR).set(doorOpenBedState));
          doorOpenBedChange = doorOpenBedState;
        }
        
        if (digitalRead(ECLEXT) != oldInterExt){
          oldInterExt = !oldInterExt;
          eclState = !eclState;
          gw.send(msgLightSwitch.set(eclState));
        }
      
        //---------------Envoi du niveau de batterie !! pour rester eveillé------------------
        /*if ((millis() - myTime) > 10000) { // toutes les dix secondes
          myTime = millis();
          gw.sendBatteryLevel(97,1);
        } else {
          if ((millis() - myTime) < 0) {
            myTime = millis();
          }
        }*/
        gw.sendBatteryLevel(97,1);
      
      // ---------------Traitement volet 1-----------------
        analogUpV1 = analogRead(UPV1);
        if ((analogUpV1 <25) && !manOnV1) { //analogUp proche de zéro et ancienne valeur niveau haut (en l'air)
          digitalWrite(TRIAC5, HIGH);
          digitalWrite(TRIAC2, LOW);
          triacTempoV1 = millis();
          triacManPriorityV1 = true;
          manOnV1 = true;
          memoStopV1 = false;
        } else {
          analogDownV1 = analogRead(DOWNV1);
          if ((analogDownV1 <25) && !manOnV1) { //proche de zéro
            digitalWrite(TRIAC5, LOW);
            digitalWrite(TRIAC2, HIGH);
            triacTempoV1 = millis();
            triacManPriorityV1 = true;
            manOnV1 = true;
            memoStopV1 = false;
          } else {
            if (analogUpV1 > 800 && analogDownV1 > 800 && !memoStopV1){ // les deux fils en l'air
              digitalWrite(TRIAC5, LOW);
              digitalWrite(TRIAC2, LOW);
              triacManPriorityV1 = false;
              manOnV1 = false;
              memoStopV1 = true;
            } else {
              if (!triacManPriorityV1){
                if (shutterOff1State && shutterOff2State) {
                  shutterOff1State = false;
                  shutterOff2State = false;
                  digitalWrite(TRIAC5, LOW);
                  digitalWrite(TRIAC2, LOW);
                } else {
                  if (shutterOff1State) {
                    shutterOff1State = false;
                    digitalWrite(TRIAC5, HIGH);
                    digitalWrite(TRIAC2, LOW);
                    triacTempoV1 = millis();
                  } else {
                    if (shutterOff2State) {
                      shutterOff2State = false;
                      digitalWrite(TRIAC5, LOW);
                      digitalWrite(TRIAC2, HIGH);
                      triacTempoV1 = millis();
                    }
                  }
                }
              }
            }
          }
        }
        if (((triacTempoV1 + TEMPOOPENV1) < millis())) {
          digitalWrite(TRIAC5, LOW);
          digitalWrite(TRIAC2, LOW);
          triacManPriorityV1 = false;
        }
      
      // --------------------------Traitement volet 2------------------------
        analogUpV2 = analogRead(UPV2);
        if ((analogUpV2 <25) && !manOnV2) { //analogUp proche de zéro et ancienne valeur niveau haut (en l'air)
          digitalWrite(TRIAC3, HIGH);
          digitalWrite(TRIAC4, LOW);
          triacTempoV2 = millis();
          triacManPriorityV2 = true;
          manOnV2 = true;
          memoStopV2 = false;
        } else {
          analogDownV2 = analogRead(DOWNV2);
          if ((analogDownV2 <25) && !manOnV2) { //proche de zéro
            digitalWrite(TRIAC3, LOW);
            digitalWrite(TRIAC4, HIGH);      
            triacTempoV2 = millis();
            triacManPriorityV2 = true;
            manOnV2 = true;
            memoStopV2 = false;
          } else {
            if (analogUpV2 > 800 && analogDownV2 > 800 && !memoStopV2){ // les deux fils en l'air
              digitalWrite(TRIAC3, LOW);
              digitalWrite(TRIAC4, LOW);        
              //triac3 = false;
              //triac4 = false;
              triacManPriorityV2 = false;
              manOnV2 = false;
              memoStopV2 = true;
            } else {
              if (!triacManPriorityV2){
                if (shutterBed1State && shutterBed2State) {
                  shutterBed1State = false;
                  shutterBed2State = false;
                  digitalWrite(TRIAC3, LOW);
                  digitalWrite(TRIAC4, LOW);            
                } else {
                  if (shutterBed1State) {
                    shutterBed1State = false;
                    digitalWrite(TRIAC3, HIGH);
                    digitalWrite(TRIAC4, LOW);              
                    triacTempoV2 = millis();
                  } else {
                    if (shutterBed2State) {
                      shutterBed2State = false;
                      digitalWrite(TRIAC3, LOW);
                      digitalWrite(TRIAC4, HIGH);                
                      triacTempoV2 = millis();
                    }
                  }
                }
              }
            }
          }
        }
        if (((triacTempoV2 + TEMPOOPENV2) < millis())) {
          digitalWrite(TRIAC3, LOW);
          digitalWrite(TRIAC4, LOW);      
          triacManPriorityV2 = false;
        }
      }
      
      F 1 Reply Last reply
      0
      • flylowgofastF flylowgofast

        my loop(){}

        // the loop routine runs over and over again forever:
        void loop() {
        
          // Process incoming messages (like config from server)
          gw.process();  
        
          //---------------Lecture des ouvertures de porte------------------
          doorOpenOffState = digitalRead(HALLOFFICEDOOR); // lecture à chaque cycle (urgence)
          if (doorOpenOffState != doorOpenOffChange){
            gw.send(msgDoorOffice.setSensor(OFFICEDOOR).set(doorOpenOffState));
            doorOpenOffChange = doorOpenOffState;
          }
        
          doorOpenBedState = digitalRead(HALLBEDROOMDOOR); // lecture à chaque cycle (urgence)
          if (doorOpenBedState != doorOpenBedChange){
            gw.send(msgDoorBedroom.setSensor(BEDROOMDOOR).set(doorOpenBedState));
            doorOpenBedChange = doorOpenBedState;
          }
          
          if (digitalRead(ECLEXT) != oldInterExt){
            oldInterExt = !oldInterExt;
            eclState = !eclState;
            gw.send(msgLightSwitch.set(eclState));
          }
        
          //---------------Envoi du niveau de batterie !! pour rester eveillé------------------
          /*if ((millis() - myTime) > 10000) { // toutes les dix secondes
            myTime = millis();
            gw.sendBatteryLevel(97,1);
          } else {
            if ((millis() - myTime) < 0) {
              myTime = millis();
            }
          }*/
          gw.sendBatteryLevel(97,1);
        
        // ---------------Traitement volet 1-----------------
          analogUpV1 = analogRead(UPV1);
          if ((analogUpV1 <25) && !manOnV1) { //analogUp proche de zéro et ancienne valeur niveau haut (en l'air)
            digitalWrite(TRIAC5, HIGH);
            digitalWrite(TRIAC2, LOW);
            triacTempoV1 = millis();
            triacManPriorityV1 = true;
            manOnV1 = true;
            memoStopV1 = false;
          } else {
            analogDownV1 = analogRead(DOWNV1);
            if ((analogDownV1 <25) && !manOnV1) { //proche de zéro
              digitalWrite(TRIAC5, LOW);
              digitalWrite(TRIAC2, HIGH);
              triacTempoV1 = millis();
              triacManPriorityV1 = true;
              manOnV1 = true;
              memoStopV1 = false;
            } else {
              if (analogUpV1 > 800 && analogDownV1 > 800 && !memoStopV1){ // les deux fils en l'air
                digitalWrite(TRIAC5, LOW);
                digitalWrite(TRIAC2, LOW);
                triacManPriorityV1 = false;
                manOnV1 = false;
                memoStopV1 = true;
              } else {
                if (!triacManPriorityV1){
                  if (shutterOff1State && shutterOff2State) {
                    shutterOff1State = false;
                    shutterOff2State = false;
                    digitalWrite(TRIAC5, LOW);
                    digitalWrite(TRIAC2, LOW);
                  } else {
                    if (shutterOff1State) {
                      shutterOff1State = false;
                      digitalWrite(TRIAC5, HIGH);
                      digitalWrite(TRIAC2, LOW);
                      triacTempoV1 = millis();
                    } else {
                      if (shutterOff2State) {
                        shutterOff2State = false;
                        digitalWrite(TRIAC5, LOW);
                        digitalWrite(TRIAC2, HIGH);
                        triacTempoV1 = millis();
                      }
                    }
                  }
                }
              }
            }
          }
          if (((triacTempoV1 + TEMPOOPENV1) < millis())) {
            digitalWrite(TRIAC5, LOW);
            digitalWrite(TRIAC2, LOW);
            triacManPriorityV1 = false;
          }
        
        // --------------------------Traitement volet 2------------------------
          analogUpV2 = analogRead(UPV2);
          if ((analogUpV2 <25) && !manOnV2) { //analogUp proche de zéro et ancienne valeur niveau haut (en l'air)
            digitalWrite(TRIAC3, HIGH);
            digitalWrite(TRIAC4, LOW);
            triacTempoV2 = millis();
            triacManPriorityV2 = true;
            manOnV2 = true;
            memoStopV2 = false;
          } else {
            analogDownV2 = analogRead(DOWNV2);
            if ((analogDownV2 <25) && !manOnV2) { //proche de zéro
              digitalWrite(TRIAC3, LOW);
              digitalWrite(TRIAC4, HIGH);      
              triacTempoV2 = millis();
              triacManPriorityV2 = true;
              manOnV2 = true;
              memoStopV2 = false;
            } else {
              if (analogUpV2 > 800 && analogDownV2 > 800 && !memoStopV2){ // les deux fils en l'air
                digitalWrite(TRIAC3, LOW);
                digitalWrite(TRIAC4, LOW);        
                //triac3 = false;
                //triac4 = false;
                triacManPriorityV2 = false;
                manOnV2 = false;
                memoStopV2 = true;
              } else {
                if (!triacManPriorityV2){
                  if (shutterBed1State && shutterBed2State) {
                    shutterBed1State = false;
                    shutterBed2State = false;
                    digitalWrite(TRIAC3, LOW);
                    digitalWrite(TRIAC4, LOW);            
                  } else {
                    if (shutterBed1State) {
                      shutterBed1State = false;
                      digitalWrite(TRIAC3, HIGH);
                      digitalWrite(TRIAC4, LOW);              
                      triacTempoV2 = millis();
                    } else {
                      if (shutterBed2State) {
                        shutterBed2State = false;
                        digitalWrite(TRIAC3, LOW);
                        digitalWrite(TRIAC4, HIGH);                
                        triacTempoV2 = millis();
                      }
                    }
                  }
                }
              }
            }
          }
          if (((triacTempoV2 + TEMPOOPENV2) < millis())) {
            digitalWrite(TRIAC3, LOW);
            digitalWrite(TRIAC4, LOW);      
            triacManPriorityV2 = false;
          }
        }
        
        F Offline
        F Offline
        flopp
        wrote on last edited by
        #16

        @flylowgofast
        Look ok

        1 Reply Last reply
        0
        • flylowgofastF flylowgofast

          hello,
          here is logs from gateway

          2;4;1;1;3;70;0;3;0;9;send: 0-0-2-2 s=4,c=1,t=3,pt=0,l=1,sg=0,st=fail:7
          Finished
          0;0;3;0;18;PINGFinished
          2;4;1;1;3;70;0;3;0;9;send: 0-0-2-2 s=4,c=1,t=3,pt=0,l=1,sg=0,st=fail:7
          0;0;3;0;9;read: 1-1-0 s=255,c=3,t=0,pt=1,l=1,sg=0:97
          0;0;3;0;9;send: 0-0-1-1 s=255,c=3,t=0,pt=1,l=1,sg=0,st=ok:97
          1;255;3;0;0;97
          Finished
          0;0;3;0;18;PING0;0;3;0;9;read: 65-65-0 s=255,c=3,t=0,pt=1,l=1,sg=0:99
          0;0;3;0;9;send: 0-0-65-65 s=255,c=3,t=0,pt=1,l=1,sg=0,st=fail:99
          65;255;3;0;0;99
          0;0;3;0;9;read: 1-1-0 s=255,c=3,t=0,pt=1,l=1,sg=0:97
          0;0;3;0;9;send: 0-0-1-1 s=255,c=3,t=0,pt=1,l=1,sg=0,st=ok:97
          1;255;3;0;0;97
          Finished
          

          Is there a documentation to understand better ?

          thanks

          AWIA Offline
          AWIA Offline
          AWI
          Hero Member
          wrote on last edited by
          #17

          @flylowgofast for information on the logs take a look at the debug topic

          1 Reply Last reply
          0
          • flylowgofastF Offline
            flylowgofastF Offline
            flylowgofast
            wrote on last edited by
            #18

            My real problem is not to send battery level. I try to do that because after 24 or 48 hours my node stop sending messages . So, I hoped that was a way to make it awake !

            AWIA F 2 Replies Last reply
            0
            • flylowgofastF flylowgofast

              My real problem is not to send battery level. I try to do that because after 24 or 48 hours my node stop sending messages . So, I hoped that was a way to make it awake !

              AWIA Offline
              AWIA Offline
              AWI
              Hero Member
              wrote on last edited by
              #19

              @flylowgofast From what I read from your sketch you seem to do some high voltage / current switching. Especially the radio doesn't like all kinds of electronic disturbances (emc etc.) To avoid lockups you need to pay special attention/separate power supplies (if you haven't done already).

              1 Reply Last reply
              0
              • flylowgofastF Offline
                flylowgofastF Offline
                flylowgofast
                wrote on last edited by
                #20

                Hello AWI,

                Thanks for your reply, yes my node trigs 5 triacs. I use snubber, regulator, capacitor. And ond the other hand, all commands to the node work properly ? just battery level doesn't work and after several hours NRF24L01 stop to work.
                I would like to reset NRF24L01 but with MySensors we don't have direct access to it anymore. Perhaps there is a way to reset the sketch globaly ?

                thanks for your help

                1 Reply Last reply
                0
                • flylowgofastF flylowgofast

                  My real problem is not to send battery level. I try to do that because after 24 or 48 hours my node stop sending messages . So, I hoped that was a way to make it awake !

                  F Offline
                  F Offline
                  flopp
                  wrote on last edited by flopp
                  #21

                  @flylowgofast said:

                  My real problem is not to send battery level. I try to do that because after 24 or 48 hours my node stop sending messages . So, I hoped that was a way to make it awake !

                  It would have been nice if you had wrote this in your first post.:disappointed:
                  So everyone could focus on the main problem

                  1 Reply Last reply
                  0
                  • flylowgofastF Offline
                    flylowgofastF Offline
                    flylowgofast
                    wrote on last edited by
                    #22

                    Hello @flopp ,

                    Sorry I was myself focus on this second problem that's interesting to solve too ?
                    At the end twice aren't solve ! :disappointed:

                    1 Reply Last reply
                    0
                    • flylowgofastF Offline
                      flylowgofastF Offline
                      flylowgofast
                      wrote on last edited by
                      #23

                      Hello all,

                      At the end, I choose to do a software reset every 24 hours. This solution is very bad for me but it works !!

                      bye

                      1 Reply Last reply
                      0
                      • sundberg84S Offline
                        sundberg84S Offline
                        sundberg84
                        Hardware Contributor
                        wrote on last edited by
                        #24

                        @flylowgofast One simple thing can be to move the radio away a bit and see if that helps. Its as AWI said probably interferance power-radio.

                        Controller: Proxmox VM - Home Assistant
                        MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
                        MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
                        RFLink GW - Arduino Mega + RFLink Shield, 433mhz

                        flylowgofastF 1 Reply Last reply
                        0
                        • sundberg84S sundberg84

                          @flylowgofast One simple thing can be to move the radio away a bit and see if that helps. Its as AWI said probably interferance power-radio.

                          flylowgofastF Offline
                          flylowgofastF Offline
                          flylowgofast
                          wrote on last edited by
                          #25

                          Hello @sundberg84,
                          I already considered this idea but my node have been running perfectly for two days before failed. So I think, power consideration are not the problem. I can trigg on and off my shutters many and many times without problem.

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          17

                          Online

                          11.7k

                          Users

                          11.2k

                          Topics

                          113.0k

                          Posts


                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                          • Login

                          • Don't have an account? Register

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