mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 19:27:45 +00:00
Track device last identify time
This commit is contained in:
parent
b7141901f6
commit
9c0171ec5e
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user