#!/usr/bin/env python3
''' common functions and stuff '''
import logging
import os
import sys
from datetime import datetime
QUEUE = bool(os.environ.get('el_QUEUE', False))
name = os.path.splitext(os.path.split(sys.argv[0])[-1])[0]
log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
logging.basicConfig(format="%(name)s: %(levelname)s %(message)s")
# Use queue or postgres
if QUEUE is True:
log.debug('Importing dbi from queue')
from .queue import dbi
else:
log.debug('Importing dbi from postgres')
from .postgres import dbi
# Insert state
def statein(sensor, value, device_class, unit, **kwargs):
''' Insert new state in db '''
verbose = bool(kwargs['verbose']) if 'verbose' in kwargs else False
sql = """INSERT INTO states
(sensor_id,
value,
device_class,
unit,
time)
SELECT sensors.id, %s, %s, %s, %s
FROM sensors
WHERE sensors.name = %s;"""
values = (value,
device_class,
unit,
datetime.utcnow(),
sensor)
log.debug('dbi(' + sql + ',' + str(values) + ')')
dbi(sql, values, verbose=verbose)