본문 바로가기

Computer/Programing

MiTemp2 Read and write to SQL

This post is for reading MiTemperature2 data via bluetooth and writing the data into SQL.

 

Download reading temp. source from Github 

https://github.com/JsBergbau/MiTemperature2

 

Modify LYWSD03MMC.py file as below.

 

parser=argparse.ArgumentParser(allow_abbrev=False)
parser.add_argument("--device","-d", help="Set the device MAC-Address in format AA:BB:CC:DD:EE:FF",default='AA:BB:CC:DD:EE:FF',metavar='AA:BB:CC:DD:EE:FF')


parser.add_argument("--battery","-b", help="Get estimated battery level, in ATC-Mode: Get battery level from device",default=1, metavar='', type=int, nargs='?', const=1)


parser.add_argument("--count","-c", help="Read/Receive N measurements and then exit script",default=1, metavar='N', type=int)

 

 

Change printing output

from;

                        cmd = path + "/" + args.callback + " " + fmt + " " + params

to;
                        cmd = path + "/" + args.callback + " " + params

 

 

sendToSQL.sh

#!/bin/bash
/usr/bin/python3 /home/pi/MiTemperature2/writeSQL.py $@

 

 

writeSQL.py

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("n1")
parser.add_argument("n2")
parser.add_argument("n3")
parser.add_argument("n4")
parser.add_argument("n5")
parser.add_argument("n6")

args = parser.parse_args()
print(args.n1)
print(args.n2)
print(args.n3)
print(args.n4)
print(args.n5)
print(args.n6)

import sqlite3
dbpath = "/home/pi/MiTemperature2/temp.db"
conn = sqlite3.connect(dbpath)

#Create part
try:
    cur = conn.cursor()
    cur.execute("CREATE TABLE info (name1 TEXT, name2 INTEGER, name3 INTEGER, name4 INTEGER, name5 INTEGER, name6 INTEGER)")
    conn.commit()
except:
    print('File is Existing')

#Input
cur = conn.cursor()
cur.execute("INSERT INTO info (name1, name2, name3, name4, name5, name6) VALUES (?, ?, ?, ?, ?, ?)",(args.n1, args.n2, args.n3, args.n4, args.n5, args.n6))
conn.commit()

#Read
cur = conn.cursor()
cur.execute("SELECT * FROM info ORDER BY name6 DESC LIMIT 23;")
readdata = cur.fetchall()
print(readdata)

 

 

 

Setting Crontab

*/10 /usr/bin/python3 /home/pi/MiTemperature2/LYWSD03MMC.py.backup --callback sendToSQL.sh