Guide pour les programmeurs de Half Decent Scale


  • Via bluetooth, ces commandes doivent être envoyées sous forme binaire

  • Via USB et Wifi, ces commandes doivent être envoyées sous forme de chaînes hexadécimales

  • Consultez également l'ancienne documentation API Decent Scale. Half Decent Scale est compatible avec cet ensemble de commandes, mais ajoute un nombre important de nouvelles commandes

  • Une bibliothèque Python est également disponible


La nouvelle fonctionnalité « heartbeat » résout les problèmes de connectivité avec Android 9 et les versions antérieures.

  • Les applications doivent envoyer un « heartbeat » au moins toutes les 5 secondes, sinon la connexion Bluetooth sera interrompue
    • La commande heartbeat à envoyer à la balance est : « 03 0a 03 ff ff 00 0a »
  • Pourquoi cette fonctionnalité existe-t-elle ?
    • Les anciennes versions d'Android ont un problème qui fait que les connexions Bluetooth sont maintenues avec les appareils, même si l'application n'est plus connectée.
    • Le heartbeat résout ce problème et correspond à l'approche adoptée par Decent avec le Bluetooth sur la DE1 pour résoudre le même problème.
  • Les anciennes applications qui ne connaissent pas la fonctionnalité heartbeat désactiveront automatiquement l'exigence heartbeat
    • lorsqu'elles envoient la commande Bluetooth LED ON, avec le 6e octet de cette commande défini sur 00
    • ou la commande TARE avec le dernier octet défini sur 00.
  • Les applications qui souhaitent utiliser la fonctionnalité de heartbeat (ce qui est fortement recommandé)
    • doivent envoyer 01 comme dernier octet de données de la commande LED ON, par exemple : « 03 0A 01 01 00 01 08 »
    • doivent également envoyer 01 comme dernier octet de données de la commande TARE, par exemple : « 03 0F 01 00 00 01 0C »
    • Ces variantes des commandes LED ON et TARE n'auront aucun effet négatif sur les anciennes balances Decent Scale, qui ne disposent pas de la fonctionnalité de heartbeat.
  • Les utilisateurs DE1 doivent effectuer la mise à jour vers la version NIGHTLY de l'application de1app datée du 11 avril ou plus récente.

Commandes que HDS peut recevoir (v2.5.8)

03 0F TARE (avec somme de contrôle) (veuillez lire la remarque ci-dessus concernant la fonction de heartbeat)

03 0A 00 Turn off oled

03 0A 01 Turn on oled (veuillez lire la remarque ci-dessus concernant la fonction de heartbeat)

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


Poids :

data = modelByte;

data = 0xCE;  // Type byte for weight stable

data = weightByte1;

data = weightByte2;

data = 0x00;

data = 0x00;

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


Événement bouton :

data = modelByte;

data = 0xAA;  // Type byte for weight stable

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

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

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

data = 0x00;

data = 0x00;

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


Événement mise hors tension :

data = modelByte;

data = 0x2A;

data = buttonNumber;

data = buttonShortPress;

data = 0x00;

data = 0x00;

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


Tension de la batterie :

data = modelByte;

data = 0x22;

data = voltageByte1;

data = voltageByte2;

data = 0x00;

data = 0x00;

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


Débogage via USB

Vous pouvez connecter un câble USB-C et utiliser un programme tel que Serial avec les paramètres 115200,8,N,1 pour observer le fonctionnement de la balance. Cela facilite considérablement le débogage.


#programmeur #api #bluetooth #wi-fi #usb


  • Ce texte est une traduction de : Programmers guide to the Half Decent Scale


    Updated 2025/02/26