luci.battstatus 897 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/sh
  2. . /usr/share/libubox/jshn.sh
  3. case "$1" in
  4. list)
  5. printf '{ "getBatteryStatus": {} }'
  6. ;;
  7. call)
  8. case "$2" in
  9. getBatteryStatus)
  10. json_init
  11. eval $(/bin/ubus call system board 2>/dev/null | /usr/bin/jsonfilter -e 'MODEL=@.model')
  12. json_add_object "$MODEL"
  13. if [ -f /usr/sbin/i2cset ] && [ -f /usr/sbin/i2cget ]; then
  14. json_add_boolean valid 1
  15. if [ $(i2cset -y 0 0x0a 0x0a 0x01 && i2cget -y 0 0x0a 0x0a) = 0x40 ]; then
  16. json_add_boolean charging 1
  17. else
  18. json_add_boolean charging 0
  19. fi
  20. json_add_int percentage $(i2cset -y 0 0x0a 0x0a 0x10 && i2cget -y 0 0x0a 0x0a | xargs printf %d)
  21. else
  22. json_add_boolean valid 0
  23. if [ ! -f /usr/sbin/i2cset ]; then
  24. json_add_string message "Need i2cset"
  25. else
  26. json_add_string message "Need i2cget"
  27. fi
  28. fi
  29. json_close_object
  30. json_dump
  31. ;;
  32. esac
  33. ;;
  34. esac