Track device last identify time

pull/1518/merge
Robbie Trencheny 2017-04-17 23:31:50 -07:00
parent b7141901f6
commit 9c0171ec5e
No known key found for this signature in database
GPG Key ID: 57406F414538A33B
1 changed files with 9 additions and 2 deletions

View File

@ -8,6 +8,7 @@ import asyncio
import os
import json
import logging
import datetime
import voluptuous as vol
from voluptuous.humanize import humanize_error
@ -20,6 +21,8 @@ from homeassistant.core import callback
from homeassistant.components.http import HomeAssistantView
from homeassistant.remote import JSONEncoder
from homeassistant.const import (HTTP_INTERNAL_SERVER_ERROR,
HTTP_BAD_REQUEST)
@ -55,6 +58,8 @@ ATTR_TEXT_INPUT_BEHAVIOR = "textInput"
BEHAVIORS = [ATTR_DEFAULT_BEHAVIOR, ATTR_TEXT_INPUT_BEHAVIOR]
ATTR_LAST_SEEN_AT = "lastSeenAt"
ATTR_DEVICE = "device"
ATTR_PUSH_TOKEN = "pushToken"
ATTR_APP = "app"
@ -192,7 +197,7 @@ def _save_config(filename, config):
"""Save configuration."""
try:
with open(filename, "w") as fdesc:
fdesc.write(json.dumps(config))
fdesc.write(json.dumps(config, cls=JSONEncoder))
except (IOError, TypeError) as error:
_LOGGER.error("Saving config file failed: %s", error)
return False
@ -285,7 +290,7 @@ class iOSIdentifyDeviceView(HomeAssistantView):
try:
req_data = yield from request.json()
except ValueError:
return self.json_message('Invalid JSON', HTTP_BAD_REQUEST)
return self.json_message("Invalid JSON", HTTP_BAD_REQUEST)
try:
data = IDENTIFY_SCHEMA(req_data)
@ -293,6 +298,8 @@ class iOSIdentifyDeviceView(HomeAssistantView):
return self.json_message(humanize_error(request.json, ex),
HTTP_BAD_REQUEST)
data[ATTR_LAST_SEEN_AT] = datetime.datetime.now()
name = data.get(ATTR_DEVICE_ID)
CONFIG_FILE[ATTR_DEVICES][name] = data