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.
  • sundberg84S Offline
    sundberg84S Offline
    sundberg84
    Hardware Contributor
    wrote on last edited by
    #10

    I have several nodes reporting battery level to Domoticz.

    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

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

      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 1 Reply Last reply
      0
      • F Offline
        F Offline
        flopp
        wrote on last edited by
        #12

        Can you post your sketch here?

        1 Reply Last reply
        0
        • F Offline
          F Offline
          flopp
          wrote on last edited by flopp
          #13

          This is from my GW

          0;0;3;0;18;PING0;0;3;0;9;read: 12-12-0 s=255,c=3,t=0,pt=1,l=1,sg=0:98
          12;255;3;0;0;98
          0;0;3;0;9;read: 12-12-0 s=1,c=1,t=38,pt=7,l=5,sg=0:2.979
          12;1;1;0;38;2.979
          0;0;3;0;9;read: 12-12-0 s=0,c=1,t=23,pt=3,l=2,sg=0:66
          12;0;1;0;23;66
          Finished
          
          

          98% battery
          2.979 voltage
          66 lux

          1 Reply Last reply
          0
          • 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


                                  18

                                  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