Guía para programadores de Half Decent Scale


* A través de bluetooth, estos comandos deben enviarse como binarios

  • A través de USB y Wifi, estos comandos deben enviarse como cadenas hexadecimales
  • Consulte también la documentación de la API de Decent Scale anterior. Half Decent Scale es compatible con ese conjunto de comandos, pero añade un número considerable de comandos nuevos
  • También hay disponible una biblioteca Python


  • La nueva función «latido» resuelve los problemas de conectividad con Android 9 y versiones anteriores.

  • Las aplicaciones deben enviar un «latido» al menos cada 5 segundos, o la conexión Bluetooth se interrumpirá
  • El comando de latido que se debe enviar a la báscula es: «03 0a 03 ff ff 00 0a»
  • ¿Por qué existe esta función?
  • Las versiones anteriores de Android tienen un problema por el que las conexiones Bluetooth se mantienen con los dispositivos, aunque la aplicación ya no tenga conexión.
  • El latido resuelve ese problema y es el mismo enfoque que Decent adoptó con el Bluetooth en la DE1 para resolver el mismo problema.
  • Las aplicaciones antiguas que no conocen la función de latido desactivarán automáticamente el requisito de latido
  • cuando envíen el comando Bluetooth LED ON, con el sexto byte de ese comando establecido en 00
  • o el comando TAREA con ese último byte como 00.
  • Las aplicaciones que quieran utilizar la función de latido (y es muy recomendable)
  • deben enviar 01 como último byte de datos del comando LED ON, por ejemplo: «03 0A 01 01 00 01 08»
  • también deben enviar 01 como último byte de datos del comando TAREA, por ejemplo: «03 0F 01 00 00 01 0C»
  • Estas variantes de los comandos LED ON y TAREA no tendrán ningún efecto negativo en las básculas Decent Scale más antiguas, que no disponen de la función de latido.
  • Los usuarios de DE1 deben actualizar a la aplicación NIGHTLY de1app con fecha del 11 de abril o posterior.


  • Comandos que puede recibir HDS (v2.5.8)

    03 0F TARE (con suma de comprobación)

    (lea la nota anterior sobre la función de latido)

    03 0A 00 Turn off oled

    03 0A 01 Turn on oled

    (lea la nota anterior sobre la función de latido)

    03 0A 02 Power off

    03 0A 03 00 Exit power mode, normal oled brightness

    03 0A 03 01 Enter power mode, lowest oled brightness

    03 0B 00 Timer stop

    03 0B 02 Timer reset

    03 0B 03 Timer start

    03 1A 00 Manual Calibration

    03 1A 01 Smart Calibration

    03 1B WiFi OTA

    03 1D 00 Set sample to 1

    03 1D 01 Set sample to 2

    03 1D 02 Set sample to 4

    03 1E 00 00 Hide Menu

    03 1E 00 01 Show Menu

    03 1E 01 00 Hide About info

    03 1E 01 01 Show About info

    03 1E 02 00 Hide debug info

    03 1E 02 01 Show debug info

    03 1F Reset

    03 20 00 Disable Weight via USB

    03 20 01 Enable Weight via USB

    03 22 Send Battery voltage data once


    Weight:

    data[0] = modelByte;

    data[1] = 0xCE;  // Type byte for weight stable

    data[2] = weightByte1;

    data[3] = weightByte2;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    Button event:

    data[0] = modelByte;

    data[1] = 0xAA;  // Type byte for weight stable

    data[2] = buttonNumber;//1 for O button, 2 for ▢ button

    data[3] = buttonShortPress;//1 for short press, 2 for long press

    // Fill the rest with dummy data or real data as needed

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    Power off event:

    data[0] = modelByte;

    data[1] = 0x2A;

    data[2] = buttonNumber;

    data[3] = buttonShortPress;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    Battery Voltage:

    data[0] = modelByte;

    data[1] = 0x22;

    data[2] = voltageByte1;

    data[3] = voltageByte2;

    data[4] = 0x00;

    data[5] = 0x00;

    data[6] = calculateXOR(data, 6);  // Last byte is XOR validation


    Debugging vía USB

    Puede conectar un cable USB y utilizar un programa como Serial con los ajustes 115200,8,N,1 para ver la báscula en funcionamiento. Esto hace que el debugging sea extremadamente fácil.

    HDS serial


    #programador #api #bluetooth #wifi #usb



  • Esta es una traducción de: Programmers guide to the Half Decent Scale


    mirjam created 2025/07/20, updated 2025/02/26