Sensor-BLE decoders (mhaberler)

Custom BLE decoders for Sensor Logger: TheengsDecoder as a catch-all, plus decoders for devices without public specs.

Scan a QR code with Sensor Logger 1.68 or newer, or copy a decoder URL into Custom Decoders → Add Decoder.

Mystery sensor (company 0x1044) v1.0.0

Level, voltage, temperature and serial from company-ID 0x1044 adverts (divined).

Add to Sensor Logger
QR code: sensorlogger://decoder/https%3A%2F%2Fmhaberler.github.io%2Fsensor-ble-decoders-custom%2Fdecoders%2Fmystery.js
Scan to add to Sensor Logger
decoderName
mystery
Type
advertisement
Matches
manufacturer: 4410
Author
Michael Haberler
License
MIT
Tags
divined level
view source
4 test vectors
[
  {
    "given": {
      "manufacturerData": "44106e85f6f1341cc70c0012d700a01c"
    },
    "expected": {
      "level_raw_dimensionless": 18,
      "voltage_mV": 3040,
      "temperature_C": 28,
      "serial_dimensionless": "000CC7"
    }
  },
  {
    "given": {
      "manufacturerData": "441038907774ba88138a00064e008f1d"
    },
    "expected": {
      "level_raw_dimensionless": 6,
      "voltage_mV": 2887,
      "temperature_C": 29,
      "serial_dimensionless": "008A13"
    }
  },
  {
    "given": {
      "manufacturerData": "44100b70f6f1341cc90c00182901a51c"
    },
    "expected": {
      "level_raw_dimensionless": 24,
      "voltage_mV": 3085,
      "temperature_C": 28,
      "serial_dimensionless": "000CC9"
    }
  },
  {
    "given": {
      "manufacturerData": "4c000215"
    },
    "expected": null
  }
]

TE TESS 5600 pressure transducer v1.0.0

Temperature, pressure (current/min/max) and battery from the TE Connectivity M5600/U5600 wireless pressure transducer. Connected sensor: connect to stream readings.

Add to Sensor Logger
QR code: sensorlogger://decoder/https%3A%2F%2Fmhaberler.github.io%2Fsensor-ble-decoders-custom%2Fdecoders%2Ftess5600.js
Scan to add to Sensor Logger
decoderName
tess5600
Type
connected sensor (GATT: start / notify)
Matches
serviceUUID: f0000000-0451-4000-b000-000000000000
Author
Michael Haberler
License
GPL-3.0-only
Tags
pressure connected te-connectivity
view source
3 test vectors
[
  {
    "given": {
      "data": [
        {
          "service": "f000ab30-0451-4000-b000-000000000000",
          "characteristic": "f000ab31-0451-4000-b000-000000000000",
          "data": "48098305000000000000449d3b01"
        }
      ]
    },
    "expected": {
      "temperature_C": 23.76,
      "pressure_Pa": 141.1,
      "pressureMin_Pa": 0,
      "pressureMax_Pa": 2068410
    }
  },
  {
    "given": {
      "data": [
        {
          "service": "f000ab30-0451-4000-b000-000000000000",
          "characteristic": "f000ab31-0451-4000-b000-000000000000",
          "data": "ff7fffffff7fffffff7fffffff7f"
        }
      ]
    },
    "expected": {
      "temperature_C": null,
      "pressure_Pa": null,
      "pressureMin_Pa": null,
      "pressureMax_Pa": null
    }
  },
  {
    "given": {
      "data": [
        {
          "service": "f000180f-0451-4000-b000-000000000000",
          "characteristic": "f0002a19-0451-4000-b000-000000000000",
          "data": "6400"
        }
      ]
    },
    "expected": {
      "batteryLevel_percent": 100,
      "batteryCharging_dimensionless": 0
    }
  }
]

TheengsDecoder (all supported devices) v2.4.5.1

Decodes every device TheengsDecoder supports. A catch-all fallback (matchAll): tried after all other decoders; hosts without matchAll, such as Sensor Logger today, never use it.

Uses matchAll, which Sensor Logger doesn't support: the decoder imports but stays inactive there.

Add to Sensor Logger
QR code: sensorlogger://decoder/https%3A%2F%2Fmhaberler.github.io%2Fsensor-ble-decoders-custom%2Fdecoders%2Ftheengs.js
Scan to add to Sensor Logger
decoderName
theengs
Type
advertisement
Matches
matchAll: true
Author
Theengs / Michael Haberler (packaging)
License
GPL-3.0-only
Tags
theengs catch-all
view source
2 test vectors
[
  {
    "given": {
      "serviceData": {
        "fe95": "71205d0183d20c6d8d7cc40d08100103"
      },
      "meta": {
        "name": "x",
        "id": "AA:BB:CC:DD:EE:FF"
      }
    },
    "expected": {
      "brand": "Xiaomi",
      "model": "RoPot",
      "model_id": "HHCCPOT002",
      "type": "PLANT",
      "moi": 3,
      "mac": "C4:7C:8D:6D:0C:D2"
    }
  },
  {
    "given": {
      "manufacturerData": "ffff00"
    },
    "expected": null
  }
]