Skip to content

Latest commit

 

History

History
46 lines (39 loc) · 1.56 KB

README.md

File metadata and controls

46 lines (39 loc) · 1.56 KB

thingsboard-json-enhancer

Enhances given JSON template files with realtime-properties requested from thingsboard.

Templates are rendered using jinja2 and may access timeseries and attributes of thingsboard-ID identified devices.

{
  "type": "FeatureCollection",
  "features": [
    {% for id in ['9c3f8090-0563-11ea-9a2d-876c1a6b66b2', '76d596d0-fe0d-11e9-9a2d-876c1a6b66b2'] %}
    {
      "type": "Feature",
      "properties": {
        "address": "{{ fetch_attribute(id, 'address')}}",
        "airTemperatureC":  {{ fetch_attribute(id, 'temp')}},
        "roadTemperatureC": {{ fetch_timeseries(id, 'act_temp_road_surf') }},
        "precipitationType": {{ fetch_timeseries(id, 'prec_type') }},
        "roadCondition": {{ fetch_timeseries(id, 'act_road_condition') }},
        "updatedAt": "{{ fetch_minimum_timestamp(id) }}"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          {{ fetch_attribute(id,'longitude') }},
          {{ fetch_attribute(id,'latitude') }}
        ]
      }
    }{{ ", " if not loop.last }} 
    {% endfor %}
  ]
}

Run it with e.g.:

THINGSBOARD_HOST='<host>' THINGSBOARD_USERNAME='<username>' THINGSBOARD_PASSWORD='<password>' ./thingsboard-json-enhancer -i templates/taxi/ -o out/taxi/

Using docker:

$ docker build -t stadtnavi/thingsboard-json-enhancer .
$ docker run --rm -v $(PWD)/out/taxi:/out --env THINGSBOARD_HOST='<host2>' --env THINGSBOARD_USERNAME='<username>' --env THINGSBOARD_PASSWORD='<password>' stadtnavi/thingsboard-json-enhancer thingsboard-json-enhancer -i templates/taxi -o /out