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.
  • 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


                      20

                      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