Skip to main content

A pluggable system to receive and transmit bluetooth events from the Tilt Hydrometer

Project description

Tilty

A python module and CLI to capture and emit events from your tilt hydrometer

I've been unhappy with the quality/inconsistency of what I've seen out there in terms of random scripts that capture. No tests, no pluggable emitters, hard to find, etc.

The tilt essentially broadcasts iBeacon packets to send out a uuid (which type of tilt it is), a major (the temp in F), and a minor (the specific gravity).

This will capture those whenever theyre transmitted and emit them to a backend of your choosing so that you can graph it over time asynchronously.

The Tilt supports writing to a google doc which you could use with something like IFTTT or Zapier, but this is much lighter and lets you decide how you want to push that out with a pluggable backend system.

Supported Emitters

  • Webhooks
  • InfluxDB
  • Datadog (dogstatsd)

Usage

Generate Config

$ cat <<EOF >config.ini
[general]
sleep_interval = 1

[webhook]
url = http://www.foo.com
payload_template = {"color": "{{ color }}", "gravity": {{ gravity }}, "temp": {{ temp }}, "timestamp": "{{ timestamp }}"}
method = GET

[influxdb]
url = influxdb.corp.com
port = 80
database = tilty
gravity_payload_template = {"measurement": "gravity", "tags": {"color": "{{ color }}"}, "fields": {"value": {{ gravity }}}}
temperature_payload_template = {"measurement": "temperature", "tags": {"color": "{{ color }}"}, "fields": {"value": {{ temp }}}}

[datadog]
# Note: make sure that the dd agent has DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true
host = statsdhost.corp.com
port = 8125
EOF

Run

$ tilty
$ # Or from docker ( generate config into $cwd/config/config.ini )
$ docker run -it \
  -v $(pwd)/config:/etc/tilty \
  --net=host \
  myoung34/tilty:latest \
  -r --config-file /etc/tilty/config.ini

Installation

$ git clone https://github.com/myoung34/tilty
$ pip install -e .

Development

$ docker run -it -v $(pwd):/src -w /src --entrypoint /bin/sh python:3.7-alpine
$ apk add -U openssl-dev alpine-sdk libffi-dev python3-dev py3-bluez bluez-dev
$ pip3 install poetry
$ poetry install
$ poetry run tox

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Tilty-0.3.0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

Tilty-0.3.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file Tilty-0.3.0.tar.gz.

File metadata

  • Download URL: Tilty-0.3.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for Tilty-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f1028f883fd2e8e2e917ffc8e5d1efa8f503513469e2bd7727bc36b354158981
MD5 26f6dd2a7ed13665cc3a16a4f9068976
BLAKE2b-256 0c7205e6be5122a5d24ead2d149bfa56160fdcfa0b98f0f6620a4b8460739d4f

See more details on using hashes here.

File details

Details for the file Tilty-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: Tilty-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for Tilty-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92fe966d09f998733fb34200ad1d5b729b25b176055eb18a22f75348ea42731b
MD5 c56bc2e481de2db1b30eadfa95234d7c
BLAKE2b-256 9c457e3ada9aec6618f6b0473a2e1166a575c60e11ade2f62941b942415c02b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page