How to set data type and intial values.

  • How can a make blockly keep a data type? this Function doesnt work, because 0.1 rounds down to 0 every time the code is executed. It is for an hour meter, I want to add 0.1 every 6mins.
    This is what blockly automaticaly generates;

    if bTm6min and bRunFan:
        fPvHrs = (fPvHrs if isinstance(fPvHrs, Number) else 0) + 0.1

    When i manually change the code the problem goes away until blockly reverts back to the old code again.

    fPvHrs = fPvHrs + 0.1

  • the bug seem like from micropython. so , maybe you could use other way to change variable.


  • Ewentually add 1 instead 0.1 and the end of your calculations divide a value by 10.

  • 0_1592860978166_40e7c48f-ca80-431d-82c3-efcb57ba89cd-image.png
    Converts to;

      if bRunFan and bRunFan != bRunFanOld:
        fPvHrs = 0.01
      if bTm6min and bRunFan:
        fPvHrs = fPvHrs + 0.01
      bRunFanOld = bRunFan

    Thanks M5stack, this worked.
    I didn't want to divide by 10 because I would have to do that everywhere, slow the execution speed, its a slippery slope. The esp32 has very long divide instruction time compared to addition and multiplication.