Skip to content

Instantly share code, notes, and snippets.

View stefanbraun-private's full-sized avatar

Stefan Braun stefanbraun-private

  • Switzerland
View GitHub Profile
@stefanbraun-private
stefanbraun-private / T1000_Decoder.py
Created April 27, 2024 09:48
Pure-Python payload decoder for "SenseCAP T1000"(TM) GPS tracker (work in progress)
#!/usr/bin/python3
# Pure-Python payload decoder for "SenseCAP T1000"(TM) GPS tracker
# BrS, 27.April 2024
from construct import *
import binascii
import math
@stefanbraun-private
stefanbraun-private / Datacake - monitoring LoRaWAN GPS tracker.js
Created April 27, 2024 07:13
Datacake - monitoring LoRaWAN GPS tracker - payload decoder extracts JSON values into Datacake fields
// based on example from https://docs.datacake.de/integrations/webhook
// and https://docs.datacake.de/lorawan/payload-decoders/location-and-gps
// and https://docs.datacake.de/lorawan/converting-payload
//
// ==>webhook from Helium provides already the decoded JSON data!
function Decoder(bytes, port) {
// Extract Serial for Routing into Device
var device = rawPayload.dev_eui;
@stefanbraun-private
stefanbraun-private / Helium Mapping - ChirpStack_v4_SenseCAP_T1000-A_Decoder.js
Last active April 20, 2024 19:25
ChirpStack v4 payload decoder (Codec) for "SenseCAP T1000-A" on console.helium-iot.xyz
// Decode uplink function.
//
// Input is an object with the following fields:
// - bytes = Byte array containing the uplink payload, e.g. [255, 230, 255, 0]
// - fPort = Uplink fPort.
// - variables = Object containing the configured device variables.
//
// Output must be an object with the following fields:
// - data = Object representing the decoded payload.
function decodeUplink (input) {
@stefanbraun-private
stefanbraun-private / countryinfo.py
Created December 6, 2018 17:41 — forked from pamelafox/countryinfo.py
Python list of country codes, names, continents, capitals, and pytz timezones
countries = [
{'timezones': ['Europe/Andorra'], 'code': 'AD', 'continent': 'Europe', 'name': 'Andorra', 'capital': 'Andorra la Vella'},
{'timezones': ['Asia/Kabul'], 'code': 'AF', 'continent': 'Asia', 'name': 'Afghanistan', 'capital': 'Kabul'},
{'timezones': ['America/Antigua'], 'code': 'AG', 'continent': 'North America', 'name': 'Antigua and Barbuda', 'capital': "St. John's"},
{'timezones': ['Europe/Tirane'], 'code': 'AL', 'continent': 'Europe', 'name': 'Albania', 'capital': 'Tirana'},
{'timezones': ['Asia/Yerevan'], 'code': 'AM', 'continent': 'Asia', 'name': 'Armenia', 'capital': 'Yerevan'},
{'timezones': ['Africa/Luanda'], 'code': 'AO', 'continent': 'Africa', 'name': 'Angola', 'capital': 'Luanda'},
{'timezones': ['America/Argentina/Buenos_Aires', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/Tucuman', 'America/Argentina/Catamarca', 'America/Argentina/La_Rioja', 'America/Argentina/San_Juan', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Ushuai