Track device last identify time
parent
b7141901f6
commit
9c0171ec5e
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue