#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import re # 1-wire 温度センサーのデバイスファイルから温度を読み取る def read_temp(device_file): data=open(device_file, 'r').read(); # t=25000 のような数字の部分を読みとり、1000で割る r = re.compile("t=(\d+)") m = r.search(data) temp = float(m.group(1))/1000 return temp # IMSIの取得 import requests import json print "- メタデータサービスにアクセスして IMSI を確認中 ...", subscriber=json.loads(requests.get('http://metadata.soracom.io/v1/subscriber').text) imsi = subscriber['imsi'] print imsi # Beam 経由で Elasticsearch Service に接続 import time import datetime from elasticsearch import Elasticsearch es = Elasticsearch('beam.soracom.io:18080') # 第一引数をデバイスフィルとして温度を読み取り、Elasticserch Service にデータを送信 temp=read_temp(sys.argv[1]) print "- ただいまの温度 %f" % temp print "- Beam 経由でデータを送信します" print es.index(index="sensor", doc_type="temperature", body={"imsi":imsi, "temp":temp, "timestamp":datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ')})