Track device last identify time

This commit is contained in:
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

View File

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