DSmartHome-api Lambda handler
From dtype.org
import boto3 import json import time print('Loading function') dynamodb = boto3.resource('dynamodb') location = '829Seabury' def respond(err, res=None): return { 'statusCode': '400' if err else '200', 'body': err.message if err else json.dumps(res), 'headers': { 'Content-Type': 'application/json', }, } def lambda_handler(event, context): table = dynamodb.Table('dsmarthome') currenttime = int(time.time()) # see if state has changed response = table.get_item( Key={ 'location': location, 'device': event['device'] } ) item = response['Item'] if (item['latest'] != event['value']): # state has changed, write previous state table.update_item( Key={ 'location': location, 'device': event['device'] }, UpdateExpression="set previous = :previous, changetime = :changetime", ExpressionAttributeValues={ ':previous': item['latest'], ':changetime': currenttime }, ReturnValues="UPDATED_NEW" ) table.update_item( Key={ 'location': location, 'device': event['device'] }, UpdateExpression="set latest = :latest, latesttime = :latesttime", ExpressionAttributeValues={ ':latest': event['value'], ':latesttime': currenttime }, ReturnValues="UPDATED_NEW" )