mirror of
https://github.com/sudoxnym/sleepd.git
synced 2026-04-14 03:26:53 +00:00
rebrand to sleepd, remove next alarm sensor
This commit is contained in:
parent
0cbe7ba589
commit
7b62009e0d
28 changed files with 2996 additions and 3111 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
# Contributing to SAAS - Sleep As Android Status
|
# Contributing to sleepd - Sleep As Android Status
|
||||||
|
|
||||||
Thanks for helping improve the project!
|
Thanks for helping improve the project!
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# 🧪 Deploying SAAS - Sleep As Android Status via HACS
|
# 🧪 Deploying sleepd - Sleep As Android Status via HACS
|
||||||
|
|
||||||
## 🛠️ Pre-requisites
|
## 🛠️ Pre-requisites
|
||||||
|
|
||||||
|
|
@ -11,12 +11,12 @@
|
||||||
|
|
||||||
1. In HACS, go to "Integrations"
|
1. In HACS, go to "Integrations"
|
||||||
2. Click the 3-dot menu > Custom repositories
|
2. Click the 3-dot menu > Custom repositories
|
||||||
3. Paste: `https://github.com/sudoxnym/saas`
|
3. Paste: `https://github.com/sudoxnym/sleepd`
|
||||||
4. Set Category to "Integration"
|
4. Set Category to "Integration"
|
||||||
5. Click "Add"
|
5. Click "Add"
|
||||||
6. Refresh, search for `SAAS - Sleep As Android Status`, and install
|
6. Refresh, search for `sleepd - Sleep As Android Status`, and install
|
||||||
7. Restart Home Assistant
|
7. Restart Home Assistant
|
||||||
8. Go to Settings > Devices & Services > Add Integration > search "SAAS"
|
8. Go to Settings > Devices & Services > Add Integration > search "sleepd"
|
||||||
9. Configure the integration with your MQTT topic and states
|
9. Configure the integration with your MQTT topic and states
|
||||||
|
|
||||||
## 🧪 Testing
|
## 🧪 Testing
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -4,10 +4,10 @@
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h1>🌙 saas - Sleep As Android status</h1>
|
<h1>🌙 sleepd - Sleep As Android status</h1>
|
||||||
|
|
||||||
<h2>🚨 0.2.0 breaking changes 🚨</h2>
|
<h2>🚨 0.2.0 breaking changes 🚨</h2>
|
||||||
due to changes in **Home Assistant** 2025.12, you **must** remove your existing **SAAS** integration entries and re-add them after updating to this version.
|
due to changes in **Home Assistant** 2025.12, you **must** remove your existing **sleepd** integration entries and re-add them after updating to this version.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -21,7 +21,7 @@ sleep as android status is my solution for wake/sleep state within HA. it listen
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>📡 9 sensors</strong></summary>
|
<summary><strong>📡 8 sensors</strong></summary>
|
||||||
|
|
||||||
| Sensor | Description |
|
| Sensor | Description |
|
||||||
| ------ | ----------- |
|
| ------ | ----------- |
|
||||||
|
|
@ -57,7 +57,7 @@ sleep as android status is my solution for wake/sleep state within HA. it listen
|
||||||
<details>
|
<details>
|
||||||
<summary><strong>🛠️ 1 service</strong></summary>
|
<summary><strong>🛠️ 1 service</strong></summary>
|
||||||
<pre>
|
<pre>
|
||||||
service: saas.saas_example_alarm_set
|
service: sleepd.sleepd_example_alarm_set
|
||||||
data:
|
data:
|
||||||
message: Example Message!
|
message: Example Message!
|
||||||
day: monday
|
day: monday
|
||||||
|
|
@ -86,15 +86,15 @@ data:
|
||||||
|
|
||||||
<h2>🧪 installation:</h2>
|
<h2>🧪 installation:</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>add <code>https://www.github.com/sudoxnym/saas</code> to your custom repositories in HACS</li>
|
<li>add <code>https://www.github.com/sudoxnym/sleepd</code> to your custom repositories in HACS</li>
|
||||||
<li>search and download **SAAS - Sleep As Android status**</li>
|
<li>search and download **sleepd - Sleep As Android status**</li>
|
||||||
<li>restart Home Assistant</li>
|
<li>restart Home Assistant</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://my.home-assistant.io/redirect/config_flow_start/?domain=saas">
|
<a href="https://my.home-assistant.io/redirect/config_flow_start/?domain=sleepd">
|
||||||
<img src="https://my.home-assistant.io/badges/config_flow_start.svg" alt="add to ha">
|
<img src="https://my.home-assistant.io/badges/config_flow_start.svg" alt="add to ha">
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>add integration: **SAAS - Sleep As Android status**</li>
|
<li>add integration: **sleepd - Sleep As Android status**</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>⚙️ configuration:</h2>
|
<h2>⚙️ configuration:</h2>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"domain": "saas",
|
|
||||||
"name": "SAAS - Sleep As Android Status",
|
|
||||||
"codeowners": ["@sudoxnym"],
|
|
||||||
"config_flow": true,
|
|
||||||
"dependencies": ["mqtt", "mobile_app"],
|
|
||||||
"documentation": "https://www.github.com/sudoxnym/saas",
|
|
||||||
"issue_tracker": "https://www.github.com/sudoxnym/saas/issues",
|
|
||||||
"version": "0.2.1"
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +1,57 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
from .services import async_setup_services # Import the service setup function
|
from .services import async_setup_services # Import the service setup function
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
async def async_setup(hass: HomeAssistant, config: dict) -> bool:
|
async def async_setup(hass: HomeAssistant, config: dict) -> bool:
|
||||||
"""Set up the SAAS - Sleep As Android Status component."""
|
"""Set up the sleepd - Sleep As Android Status component."""
|
||||||
_LOGGER.info("Starting setup of the SAAS component")
|
_LOGGER.info("Starting setup of the sleepd component")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||||
"""Set up a config entry."""
|
"""Set up a config entry."""
|
||||||
_LOGGER.info(f"Starting setup of config entry with ID: {entry.entry_id}")
|
_LOGGER.info(f"Starting setup of config entry with ID: {entry.entry_id}")
|
||||||
|
|
||||||
# ensure we have a dict for this integration
|
# ensure we have a dict for this integration
|
||||||
hass.data.setdefault(DOMAIN, {})
|
hass.data.setdefault(DOMAIN, {})
|
||||||
|
|
||||||
# merge original data + any saved options so runtime sees edits
|
# merge original data + any saved options so runtime sees edits
|
||||||
merged = {**entry.data, **entry.options}
|
merged = {**entry.data, **entry.options}
|
||||||
hass.data[DOMAIN][entry.entry_id] = merged
|
hass.data[DOMAIN][entry.entry_id] = merged
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
"Merged entry.data and entry.options for %s: %s",
|
"Merged entry.data and entry.options for %s: %s",
|
||||||
entry.entry_id,
|
entry.entry_id,
|
||||||
hass.data[DOMAIN][entry.entry_id],
|
hass.data[DOMAIN][entry.entry_id],
|
||||||
)
|
)
|
||||||
|
|
||||||
# forward setup to sensor and button platforms
|
# forward setup to sensor and button platforms
|
||||||
await hass.config_entries.async_forward_entry_setups(entry, ["sensor", "button"])
|
await hass.config_entries.async_forward_entry_setups(entry, ["sensor", "button"])
|
||||||
|
|
||||||
# set up any custom services
|
# set up any custom services
|
||||||
_LOGGER.info("Starting setup of services")
|
_LOGGER.info("Starting setup of services")
|
||||||
await async_setup_services(hass)
|
await async_setup_services(hass)
|
||||||
_LOGGER.info("Finished setup of services")
|
_LOGGER.info("Finished setup of services")
|
||||||
|
|
||||||
_LOGGER.info("Finished setup of config entry")
|
_LOGGER.info("Finished setup of config entry")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
_LOGGER.info(f"Starting unload of config entry with ID: {entry.entry_id}")
|
_LOGGER.info(f"Starting unload of config entry with ID: {entry.entry_id}")
|
||||||
|
|
||||||
# unload sensor and button platforms
|
# unload sensor and button platforms
|
||||||
unload_ok = await hass.config_entries.async_unload_platforms(entry, ["sensor", "button"])
|
unload_ok = await hass.config_entries.async_unload_platforms(entry, ["sensor", "button"])
|
||||||
if not unload_ok:
|
if not unload_ok:
|
||||||
_LOGGER.error("Failed to unload platforms for saas")
|
_LOGGER.error("Failed to unload platforms for sleepd")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# clean up our stored data
|
# clean up our stored data
|
||||||
hass.data[DOMAIN].pop(entry.entry_id, None)
|
hass.data[DOMAIN].pop(entry.entry_id, None)
|
||||||
|
|
||||||
_LOGGER.info(f"hass.data[{DOMAIN}] after unload: {hass.data.get(DOMAIN)}")
|
_LOGGER.info(f"hass.data[{DOMAIN}] after unload: {hass.data.get(DOMAIN)}")
|
||||||
_LOGGER.info("Finished unload of config entry")
|
_LOGGER.info("Finished unload of config entry")
|
||||||
return True
|
return True
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,184 +1,184 @@
|
||||||
import logging
|
import logging
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
from .const import (
|
from .const import (
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_TOPIC,
|
CONF_TOPIC,
|
||||||
AVAILABLE_STATES,
|
AVAILABLE_STATES,
|
||||||
CONF_AWAKE_DURATION,
|
CONF_AWAKE_DURATION,
|
||||||
CONF_SLEEP_DURATION,
|
CONF_SLEEP_DURATION,
|
||||||
CONF_AWAKE_STATES,
|
CONF_AWAKE_STATES,
|
||||||
CONF_SLEEP_STATES,
|
CONF_SLEEP_STATES,
|
||||||
DEFAULT_AWAKE_DURATION,
|
DEFAULT_AWAKE_DURATION,
|
||||||
DEFAULT_SLEEP_DURATION,
|
DEFAULT_SLEEP_DURATION,
|
||||||
DEFAULT_AWAKE_STATES,
|
DEFAULT_AWAKE_STATES,
|
||||||
DEFAULT_SLEEP_STATES,
|
DEFAULT_SLEEP_STATES,
|
||||||
CONF_NOTIFY_TARGET,
|
CONF_NOTIFY_TARGET,
|
||||||
)
|
)
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from voluptuous import Schema, Required, Optional, In
|
from voluptuous import Schema, Required, Optional, In
|
||||||
from homeassistant.helpers import config_validation as cv
|
from homeassistant.helpers import config_validation as cv
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class MyConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
class MyConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||||
"""Handle the initial config flow for SAAS."""
|
"""Handle the initial config flow for sleepd."""
|
||||||
VERSION = 2
|
VERSION = 2
|
||||||
CONNECTION_CLASS = config_entries.CONN_CLASS_LOCAL_PUSH
|
CONNECTION_CLASS = config_entries.CONN_CLASS_LOCAL_PUSH
|
||||||
|
|
||||||
async def async_step_user(self, user_input=None):
|
async def async_step_user(self, user_input=None):
|
||||||
"""Initial setup step."""
|
"""Initial setup step."""
|
||||||
errors = {}
|
errors = {}
|
||||||
|
|
||||||
# discover available mobile_app notify services
|
# discover available mobile_app notify services
|
||||||
notify_services = self.hass.services.async_services().get("notify", {})
|
notify_services = self.hass.services.async_services().get("notify", {})
|
||||||
notify_targets = {
|
notify_targets = {
|
||||||
svc.replace("mobile_app_", "")
|
svc.replace("mobile_app_", "")
|
||||||
.replace("_", " ")
|
.replace("_", " ")
|
||||||
.lower(): svc
|
.lower(): svc
|
||||||
for svc in notify_services
|
for svc in notify_services
|
||||||
if svc.startswith("mobile_app_")
|
if svc.startswith("mobile_app_")
|
||||||
}
|
}
|
||||||
|
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
# map chosen label back to service name, or remove if invalid
|
# map chosen label back to service name, or remove if invalid
|
||||||
nt_label = user_input.get(CONF_NOTIFY_TARGET)
|
nt_label = user_input.get(CONF_NOTIFY_TARGET)
|
||||||
if nt_label in notify_targets:
|
if nt_label in notify_targets:
|
||||||
user_input[CONF_NOTIFY_TARGET] = notify_targets[nt_label]
|
user_input[CONF_NOTIFY_TARGET] = notify_targets[nt_label]
|
||||||
else:
|
else:
|
||||||
user_input.pop(CONF_NOTIFY_TARGET, None)
|
user_input.pop(CONF_NOTIFY_TARGET, None)
|
||||||
|
|
||||||
# basic validation
|
# basic validation
|
||||||
if not user_input.get(CONF_NAME):
|
if not user_input.get(CONF_NAME):
|
||||||
errors[CONF_NAME] = "required"
|
errors[CONF_NAME] = "required"
|
||||||
|
|
||||||
if not errors:
|
if not errors:
|
||||||
return self.async_create_entry(
|
return self.async_create_entry(
|
||||||
title=user_input[CONF_NAME],
|
title=user_input[CONF_NAME],
|
||||||
data=user_input
|
data=user_input
|
||||||
)
|
)
|
||||||
|
|
||||||
# build initial form schema
|
# build initial form schema
|
||||||
schema = {
|
schema = {
|
||||||
Required(CONF_NAME): str,
|
Required(CONF_NAME): str,
|
||||||
Required(CONF_TOPIC): str,
|
Required(CONF_TOPIC): str,
|
||||||
Required(CONF_AWAKE_DURATION, default=DEFAULT_AWAKE_DURATION): int,
|
Required(CONF_AWAKE_DURATION, default=DEFAULT_AWAKE_DURATION): int,
|
||||||
Required(CONF_SLEEP_DURATION, default=DEFAULT_SLEEP_DURATION): int,
|
Required(CONF_SLEEP_DURATION, default=DEFAULT_SLEEP_DURATION): int,
|
||||||
Required(
|
Required(
|
||||||
CONF_AWAKE_STATES, default=DEFAULT_AWAKE_STATES
|
CONF_AWAKE_STATES, default=DEFAULT_AWAKE_STATES
|
||||||
): cv.multi_select(AVAILABLE_STATES),
|
): cv.multi_select(AVAILABLE_STATES),
|
||||||
Required(
|
Required(
|
||||||
CONF_SLEEP_STATES, default=DEFAULT_SLEEP_STATES
|
CONF_SLEEP_STATES, default=DEFAULT_SLEEP_STATES
|
||||||
): cv.multi_select(AVAILABLE_STATES),
|
): cv.multi_select(AVAILABLE_STATES),
|
||||||
}
|
}
|
||||||
if notify_targets:
|
if notify_targets:
|
||||||
# truly optional, only real targets, no blank choice
|
# truly optional, only real targets, no blank choice
|
||||||
schema[Optional(CONF_NOTIFY_TARGET)] = In(list(notify_targets.keys()))
|
schema[Optional(CONF_NOTIFY_TARGET)] = In(list(notify_targets.keys()))
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="user",
|
step_id="user",
|
||||||
data_schema=Schema(schema),
|
data_schema=Schema(schema),
|
||||||
errors=errors,
|
errors=errors,
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@config_entries.callback
|
@config_entries.callback
|
||||||
def async_get_options_flow(entry):
|
def async_get_options_flow(entry):
|
||||||
"""Return options flow handler."""
|
"""Return options flow handler."""
|
||||||
return OptionsFlowHandler(entry)
|
return OptionsFlowHandler(entry)
|
||||||
|
|
||||||
|
|
||||||
class OptionsFlowHandler(config_entries.OptionsFlow):
|
class OptionsFlowHandler(config_entries.OptionsFlow):
|
||||||
"""Handle SAAS options editing."""
|
"""Handle sleepd options editing."""
|
||||||
|
|
||||||
def __init__(self, entry):
|
def __init__(self, entry):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self._config_entry = entry
|
self._config_entry = entry
|
||||||
|
|
||||||
async def async_step_init(self, user_input=None):
|
async def async_step_init(self, user_input=None):
|
||||||
"""Manage the options form (edit)."""
|
"""Manage the options form (edit)."""
|
||||||
current = dict(self._config_entry.data)
|
current = dict(self._config_entry.data)
|
||||||
|
|
||||||
# discover mobile_app notify services again
|
# discover mobile_app notify services again
|
||||||
notify_services = self.hass.services.async_services().get("notify", {})
|
notify_services = self.hass.services.async_services().get("notify", {})
|
||||||
notify_targets = {
|
notify_targets = {
|
||||||
svc.replace("mobile_app_", "")
|
svc.replace("mobile_app_", "")
|
||||||
.replace("_", " ")
|
.replace("_", " ")
|
||||||
.lower(): svc
|
.lower(): svc
|
||||||
for svc in notify_services
|
for svc in notify_services
|
||||||
if svc.startswith("mobile_app_")
|
if svc.startswith("mobile_app_")
|
||||||
}
|
}
|
||||||
# reverse map for defaults
|
# reverse map for defaults
|
||||||
reverse_map = {v: k for k, v in notify_targets.items()}
|
reverse_map = {v: k for k, v in notify_targets.items()}
|
||||||
|
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
new_data = current.copy()
|
new_data = current.copy()
|
||||||
|
|
||||||
# standard fields
|
# standard fields
|
||||||
for key in (
|
for key in (
|
||||||
CONF_NAME,
|
CONF_NAME,
|
||||||
CONF_TOPIC,
|
CONF_TOPIC,
|
||||||
CONF_AWAKE_DURATION,
|
CONF_AWAKE_DURATION,
|
||||||
CONF_SLEEP_DURATION,
|
CONF_SLEEP_DURATION,
|
||||||
CONF_AWAKE_STATES,
|
CONF_AWAKE_STATES,
|
||||||
CONF_SLEEP_STATES,
|
CONF_SLEEP_STATES,
|
||||||
):
|
):
|
||||||
if key in user_input:
|
if key in user_input:
|
||||||
new_data[key] = user_input[key]
|
new_data[key] = user_input[key]
|
||||||
|
|
||||||
# handle notify_target with "no mobile" option
|
# handle notify_target with "no mobile" option
|
||||||
sel = user_input.get(CONF_NOTIFY_TARGET)
|
sel = user_input.get(CONF_NOTIFY_TARGET)
|
||||||
if sel == "no mobile":
|
if sel == "no mobile":
|
||||||
new_data.pop(CONF_NOTIFY_TARGET, None)
|
new_data.pop(CONF_NOTIFY_TARGET, None)
|
||||||
elif sel in notify_targets:
|
elif sel in notify_targets:
|
||||||
new_data[CONF_NOTIFY_TARGET] = notify_targets[sel]
|
new_data[CONF_NOTIFY_TARGET] = notify_targets[sel]
|
||||||
|
|
||||||
# persist back into entry.data and reload
|
# persist back into entry.data and reload
|
||||||
self.hass.config_entries.async_update_entry(
|
self.hass.config_entries.async_update_entry(
|
||||||
self._config_entry,
|
self._config_entry,
|
||||||
data=new_data,
|
data=new_data,
|
||||||
)
|
)
|
||||||
await self.hass.config_entries.async_reload(self._config_entry.entry_id)
|
await self.hass.config_entries.async_reload(self._config_entry.entry_id)
|
||||||
|
|
||||||
return self.async_create_entry(title="", data=None)
|
return self.async_create_entry(title="", data=None)
|
||||||
|
|
||||||
# build edit form schema with defaults
|
# build edit form schema with defaults
|
||||||
schema = {
|
schema = {
|
||||||
Required(
|
Required(
|
||||||
CONF_NAME, default=current.get(CONF_NAME, "")
|
CONF_NAME, default=current.get(CONF_NAME, "")
|
||||||
): str,
|
): str,
|
||||||
Required(
|
Required(
|
||||||
CONF_TOPIC, default=current.get(CONF_TOPIC, "")
|
CONF_TOPIC, default=current.get(CONF_TOPIC, "")
|
||||||
): str,
|
): str,
|
||||||
Required(
|
Required(
|
||||||
CONF_AWAKE_DURATION,
|
CONF_AWAKE_DURATION,
|
||||||
default=current.get(CONF_AWAKE_DURATION, DEFAULT_AWAKE_DURATION),
|
default=current.get(CONF_AWAKE_DURATION, DEFAULT_AWAKE_DURATION),
|
||||||
): int,
|
): int,
|
||||||
Required(
|
Required(
|
||||||
CONF_SLEEP_DURATION,
|
CONF_SLEEP_DURATION,
|
||||||
default=current.get(CONF_SLEEP_DURATION, DEFAULT_SLEEP_DURATION),
|
default=current.get(CONF_SLEEP_DURATION, DEFAULT_SLEEP_DURATION),
|
||||||
): int,
|
): int,
|
||||||
Required(
|
Required(
|
||||||
CONF_AWAKE_STATES,
|
CONF_AWAKE_STATES,
|
||||||
default=current.get(CONF_AWAKE_STATES, DEFAULT_AWAKE_STATES),
|
default=current.get(CONF_AWAKE_STATES, DEFAULT_AWAKE_STATES),
|
||||||
): cv.multi_select(AVAILABLE_STATES),
|
): cv.multi_select(AVAILABLE_STATES),
|
||||||
Required(
|
Required(
|
||||||
CONF_SLEEP_STATES,
|
CONF_SLEEP_STATES,
|
||||||
default=current.get(CONF_SLEEP_STATES, DEFAULT_SLEEP_STATES),
|
default=current.get(CONF_SLEEP_STATES, DEFAULT_SLEEP_STATES),
|
||||||
): cv.multi_select(AVAILABLE_STATES),
|
): cv.multi_select(AVAILABLE_STATES),
|
||||||
}
|
}
|
||||||
|
|
||||||
if notify_targets:
|
if notify_targets:
|
||||||
# prepend "no mobile", then all real targets, all lowercase with spaces
|
# prepend "no mobile", then all real targets, all lowercase with spaces
|
||||||
labels = ["no mobile"] + list(notify_targets.keys())
|
labels = ["no mobile"] + list(notify_targets.keys())
|
||||||
default_label = reverse_map.get(
|
default_label = reverse_map.get(
|
||||||
current.get(CONF_NOTIFY_TARGET), "no mobile"
|
current.get(CONF_NOTIFY_TARGET), "no mobile"
|
||||||
)
|
)
|
||||||
schema[Optional(CONF_NOTIFY_TARGET, default=default_label)] = In(labels)
|
schema[Optional(CONF_NOTIFY_TARGET, default=default_label)] = In(labels)
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="init",
|
step_id="init",
|
||||||
data_schema=Schema(schema),
|
data_schema=Schema(schema),
|
||||||
errors={},
|
errors={},
|
||||||
)
|
)
|
||||||
|
|
@ -1,159 +1,159 @@
|
||||||
"""Constants for the SAAS - Sleep As Android Stats integration."""
|
"""Constants for the sleepd - Sleep As Android Stats integration."""
|
||||||
|
|
||||||
DOMAIN = "saas"
|
DOMAIN = "sleepd"
|
||||||
|
|
||||||
INTEGRATION_NAME = "SAAS - Sleep As Android Stats"
|
INTEGRATION_NAME = "sleepd - Sleep As Android Stats"
|
||||||
MODEL = "SAAS - Version 0.0.1"
|
MODEL = "sleepd - Version 0.0.1"
|
||||||
|
|
||||||
CONF_NAME = "name" # Name of the Integration
|
CONF_NAME = "name" # Name of the Integration
|
||||||
CONF_TOPIC = "topic_template" # MQTT Topic for Sleep As Android Events
|
CONF_TOPIC = "topic_template" # MQTT Topic for Sleep As Android Events
|
||||||
CONF_AWAKE_DURATION = "awake_duration" # Awake Duration
|
CONF_AWAKE_DURATION = "awake_duration" # Awake Duration
|
||||||
CONF_SLEEP_DURATION = "sleep_duration" # Sleep Duration
|
CONF_SLEEP_DURATION = "sleep_duration" # Sleep Duration
|
||||||
CONF_AWAKE_STATES = "awake_states" # Awake States
|
CONF_AWAKE_STATES = "awake_states" # Awake States
|
||||||
CONF_SLEEP_STATES = "sleep_states" # Sleep States
|
CONF_SLEEP_STATES = "sleep_states" # Sleep States
|
||||||
CONF_NOTIFY_TARGET = "notify_target" # Notify Target
|
CONF_NOTIFY_TARGET = "notify_target" # Notify Target
|
||||||
|
|
||||||
DEFAULT_AWAKE_DURATION = 10 # Default Awake Duration
|
DEFAULT_AWAKE_DURATION = 10 # Default Awake Duration
|
||||||
DEFAULT_SLEEP_DURATION = 10 # Default Sleep Duration
|
DEFAULT_SLEEP_DURATION = 10 # Default Sleep Duration
|
||||||
DEFAULT_AWAKE_STATES = ["Awake", "Sleep Tracking Stopped"] # Default Awake States
|
DEFAULT_AWAKE_STATES = ["Awake", "Sleep Tracking Stopped"] # Default Awake States
|
||||||
DEFAULT_SLEEP_STATES = [
|
DEFAULT_SLEEP_STATES = [
|
||||||
"Not Awake",
|
"Not Awake",
|
||||||
"Rem",
|
"Rem",
|
||||||
"Light Sleep",
|
"Light Sleep",
|
||||||
"Deep Sleep",
|
"Deep Sleep",
|
||||||
"Sleep Tracking Started",
|
"Sleep Tracking Started",
|
||||||
] # Default Sleep States
|
] # Default Sleep States
|
||||||
|
|
||||||
SENSOR_TYPES = {
|
SENSOR_TYPES = {
|
||||||
"state": {"name": "State", "device_class": None},
|
"state": {"name": "State", "device_class": None},
|
||||||
"awake": {"name": "Awake", "device_class": "motion"},
|
"awake": {"name": "Awake", "device_class": "motion"},
|
||||||
}
|
}
|
||||||
|
|
||||||
DAY_MAPPING = {
|
DAY_MAPPING = {
|
||||||
"sunday": 1,
|
"sunday": 1,
|
||||||
"monday": 2,
|
"monday": 2,
|
||||||
"tuesday": 3,
|
"tuesday": 3,
|
||||||
"wednesday": 4,
|
"wednesday": 4,
|
||||||
"thursday": 5,
|
"thursday": 5,
|
||||||
"friday": 6,
|
"friday": 6,
|
||||||
"saturday": 7,
|
"saturday": 7,
|
||||||
}
|
}
|
||||||
|
|
||||||
AVAILABLE_STATES = [
|
AVAILABLE_STATES = [
|
||||||
'Unknown',
|
'Unknown',
|
||||||
'Alarm Alert Dismiss',
|
'Alarm Alert Dismiss',
|
||||||
'Alarm Alert Start',
|
'Alarm Alert Start',
|
||||||
'Alarm Rescheduled',
|
'Alarm Rescheduled',
|
||||||
'Alarm Skip Next',
|
'Alarm Skip Next',
|
||||||
'Alarm Snooze Canceled',
|
'Alarm Snooze Canceled',
|
||||||
'Alarm Snooze Clicked',
|
'Alarm Snooze Clicked',
|
||||||
'Antisnoring',
|
'Antisnoring',
|
||||||
'Apnea Alarm',
|
'Apnea Alarm',
|
||||||
'Awake',
|
'Awake',
|
||||||
'Before Alarm',
|
'Before Alarm',
|
||||||
'Before Smart Period',
|
'Before Smart Period',
|
||||||
'Deep Sleep',
|
'Deep Sleep',
|
||||||
'Light Sleep',
|
'Light Sleep',
|
||||||
'Lullaby Start',
|
'Lullaby Start',
|
||||||
'Lullaby Stop',
|
'Lullaby Stop',
|
||||||
'Lullaby Volume Down',
|
'Lullaby Volume Down',
|
||||||
'Not Awake',
|
'Not Awake',
|
||||||
'Rem',
|
'Rem',
|
||||||
'Show Skip Next Alarm',
|
'Show Skip Next Alarm',
|
||||||
'Sleep Tracking Paused',
|
'Sleep Tracking Paused',
|
||||||
'Sleep Tracking Resumed',
|
'Sleep Tracking Resumed',
|
||||||
'Sleep Tracking Started',
|
'Sleep Tracking Started',
|
||||||
'Sleep Tracking Stopped',
|
'Sleep Tracking Stopped',
|
||||||
'Smart Period',
|
'Smart Period',
|
||||||
'Sound Event Baby',
|
'Sound Event Baby',
|
||||||
'Sound Event Cough',
|
'Sound Event Cough',
|
||||||
'Sound Event Laugh',
|
'Sound Event Laugh',
|
||||||
'Sound Event Snore',
|
'Sound Event Snore',
|
||||||
'Sound Event Talk',
|
'Sound Event Talk',
|
||||||
'Time for Bed',
|
'Time for Bed',
|
||||||
]
|
]
|
||||||
|
|
||||||
STATE_MAPPING = {
|
STATE_MAPPING = {
|
||||||
"unknown": "Unknown",
|
"unknown": "Unknown",
|
||||||
"sleep_tracking_started": "Sleep Tracking Started",
|
"sleep_tracking_started": "Sleep Tracking Started",
|
||||||
"sleep_tracking_stopped": "Sleep Tracking Stopped",
|
"sleep_tracking_stopped": "Sleep Tracking Stopped",
|
||||||
"sleep_tracking_paused": "Sleep Tracking Paused",
|
"sleep_tracking_paused": "Sleep Tracking Paused",
|
||||||
"sleep_tracking_resumed": "Sleep Tracking Resumed",
|
"sleep_tracking_resumed": "Sleep Tracking Resumed",
|
||||||
"alarm_snooze_clicked": "Alarm Snoozed",
|
"alarm_snooze_clicked": "Alarm Snoozed",
|
||||||
"alarm_snooze_canceled": "Snooze Canceled",
|
"alarm_snooze_canceled": "Snooze Canceled",
|
||||||
"time_to_bed_alarm_alert": "Time for Bed",
|
"time_to_bed_alarm_alert": "Time for Bed",
|
||||||
"alarm_alert_start": "Alarm Alert Started",
|
"alarm_alert_start": "Alarm Alert Started",
|
||||||
"alarm_alert_dismiss": "Alarm Dismissed",
|
"alarm_alert_dismiss": "Alarm Dismissed",
|
||||||
"alarm_skip_next": "Skip Next Alarm",
|
"alarm_skip_next": "Skip Next Alarm",
|
||||||
"show_skip_next_alarm": "Show Skip Next Alarm",
|
"show_skip_next_alarm": "Show Skip Next Alarm",
|
||||||
"rem": "REM",
|
"rem": "REM",
|
||||||
"smart_period": "Smart Period",
|
"smart_period": "Smart Period",
|
||||||
"before_smart_period": "Before Smart Period",
|
"before_smart_period": "Before Smart Period",
|
||||||
"lullaby_start": "Lullaby Start",
|
"lullaby_start": "Lullaby Start",
|
||||||
"lullaby_stop": "Lullaby Stop",
|
"lullaby_stop": "Lullaby Stop",
|
||||||
"lullaby_volume_down": "Lullaby Volume Down",
|
"lullaby_volume_down": "Lullaby Volume Down",
|
||||||
"deep_sleep": "Deep Sleep",
|
"deep_sleep": "Deep Sleep",
|
||||||
"light_sleep": "Light Sleep",
|
"light_sleep": "Light Sleep",
|
||||||
"awake": "Awake",
|
"awake": "Awake",
|
||||||
"not_awake": "Not Awake",
|
"not_awake": "Not Awake",
|
||||||
"apnea_alarm": "Apnea Alarm",
|
"apnea_alarm": "Apnea Alarm",
|
||||||
"antisnoring": "Antisnoring",
|
"antisnoring": "Antisnoring",
|
||||||
"before_alarm": "Before Alarm",
|
"before_alarm": "Before Alarm",
|
||||||
"sound_event_snore": "Snore Detected",
|
"sound_event_snore": "Snore Detected",
|
||||||
"sound_event_talk": "Talk Detected",
|
"sound_event_talk": "Talk Detected",
|
||||||
"sound_event_cough": "Cough Detected",
|
"sound_event_cough": "Cough Detected",
|
||||||
"sound_event_baby": "Baby Cry Detected",
|
"sound_event_baby": "Baby Cry Detected",
|
||||||
"sound_event_laugh": "Laugh Detected",
|
"sound_event_laugh": "Laugh Detected",
|
||||||
"alarm_rescheduled": "Alarm Rescheduled",
|
"alarm_rescheduled": "Alarm Rescheduled",
|
||||||
}
|
}
|
||||||
|
|
||||||
REVERSE_STATE_MAPPING = {v: k for k, v in STATE_MAPPING.items()}
|
REVERSE_STATE_MAPPING = {v: k for k, v in STATE_MAPPING.items()}
|
||||||
|
|
||||||
SLEEP_STAGE_MAPPING = {
|
SLEEP_STAGE_MAPPING = {
|
||||||
"unknown": "Unknown",
|
"unknown": "Unknown",
|
||||||
"rem": "REM",
|
"rem": "REM",
|
||||||
"deep_sleep": "Deep Sleep",
|
"deep_sleep": "Deep Sleep",
|
||||||
"light_sleep": "Light Sleep",
|
"light_sleep": "Light Sleep",
|
||||||
"awake": "Awake",
|
"awake": "Awake",
|
||||||
"not_awake": "Not Awake",
|
"not_awake": "Not Awake",
|
||||||
}
|
}
|
||||||
|
|
||||||
SOUND_MAPPING = {
|
SOUND_MAPPING = {
|
||||||
'sound_event_snore': "Snore Detected",
|
'sound_event_snore': "Snore Detected",
|
||||||
'sound_event_talk': "Talk Detected",
|
'sound_event_talk': "Talk Detected",
|
||||||
'sound_event_cough': "Cough Detected",
|
'sound_event_cough': "Cough Detected",
|
||||||
'sound_event_baby': "Baby Cry Detected",
|
'sound_event_baby': "Baby Cry Detected",
|
||||||
'sound_event_laugh': "Laugh Detected",
|
'sound_event_laugh': "Laugh Detected",
|
||||||
}
|
}
|
||||||
|
|
||||||
LULLABY_MAPPING = {
|
LULLABY_MAPPING = {
|
||||||
"lullaby_start": "Lullaby Start",
|
"lullaby_start": "Lullaby Start",
|
||||||
"lullaby_stop": "Lullaby Stop",
|
"lullaby_stop": "Lullaby Stop",
|
||||||
"lullaby_volume_down": "Lullaby Volume Down",
|
"lullaby_volume_down": "Lullaby Volume Down",
|
||||||
}
|
}
|
||||||
|
|
||||||
DISTURBANCE_MAPPING = {
|
DISTURBANCE_MAPPING = {
|
||||||
'apnea_alarm': "Apnea Alarm",
|
'apnea_alarm': "Apnea Alarm",
|
||||||
'antisnoring': "Antisnoring",
|
'antisnoring': "Antisnoring",
|
||||||
}
|
}
|
||||||
|
|
||||||
ALARM_EVENT_MAPPING = {
|
ALARM_EVENT_MAPPING = {
|
||||||
'before_alarm': "Before Alarm",
|
'before_alarm': "Before Alarm",
|
||||||
'alarm_snooze_clicked': "Alarm Snoozed",
|
'alarm_snooze_clicked': "Alarm Snoozed",
|
||||||
'alarm_snooze_canceled': "Snooze Canceled",
|
'alarm_snooze_canceled': "Snooze Canceled",
|
||||||
'time_to_bed_alarm_alert': "Time for Bed",
|
'time_to_bed_alarm_alert': "Time for Bed",
|
||||||
'alarm_alert_start': "Alarm Alert Started",
|
'alarm_alert_start': "Alarm Alert Started",
|
||||||
'alarm_alert_dismiss': "Alarm Dismissed",
|
'alarm_alert_dismiss': "Alarm Dismissed",
|
||||||
'alarm_skip_next': "Skip Next Alarm",
|
'alarm_skip_next': "Skip Next Alarm",
|
||||||
'show_skip_next_alarm': "Show Skip Next Alarm",
|
'show_skip_next_alarm': "Show Skip Next Alarm",
|
||||||
'smart_period': "Smart Period",
|
'smart_period': "Smart Period",
|
||||||
'before_smart_period': "Before Smart Period",
|
'before_smart_period': "Before Smart Period",
|
||||||
"alarm_rescheduled": "Alarm Rescheduled",
|
"alarm_rescheduled": "Alarm Rescheduled",
|
||||||
}
|
}
|
||||||
|
|
||||||
SLEEP_TRACKING_MAPPING = {
|
SLEEP_TRACKING_MAPPING = {
|
||||||
'sleep_tracking_started': "Sleep Tracking Started",
|
'sleep_tracking_started': "Sleep Tracking Started",
|
||||||
'sleep_tracking_stopped': "Sleep Tracking Stopped",
|
'sleep_tracking_stopped': "Sleep Tracking Stopped",
|
||||||
'sleep_tracking_paused': "Sleep Tracking Paused",
|
'sleep_tracking_paused': "Sleep Tracking Paused",
|
||||||
'sleep_tracking_resumed': "Sleep Tracking Resumed",
|
'sleep_tracking_resumed': "Sleep Tracking Resumed",
|
||||||
}
|
}
|
||||||
10
custom_components/sleepd/manifest.json
Normal file
10
custom_components/sleepd/manifest.json
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"domain": "sleepd",
|
||||||
|
"name": "sleepd - Sleep As Android Status",
|
||||||
|
"codeowners": ["@sudoxnym"],
|
||||||
|
"config_flow": true,
|
||||||
|
"dependencies": ["mqtt", "mobile_app"],
|
||||||
|
"documentation": "https://www.github.com/sudoxnym/sleepd",
|
||||||
|
"issue_tracker": "https://www.github.com/sudoxnym/sleepd/issues",
|
||||||
|
"version": "0.2.1"
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,73 +1,73 @@
|
||||||
import logging
|
import logging
|
||||||
from homeassistant.core import ServiceCall, HomeAssistant
|
from homeassistant.core import ServiceCall, HomeAssistant
|
||||||
from .const import DOMAIN, DAY_MAPPING
|
from .const import DOMAIN, DAY_MAPPING
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
class SAASService:
|
class sleepdService:
|
||||||
def __init__(self, hass, name, notify_target):
|
def __init__(self, hass, name, notify_target):
|
||||||
self._hass = hass
|
self._hass = hass
|
||||||
self._name = name
|
self._name = name
|
||||||
self._notify_target = notify_target
|
self._notify_target = notify_target
|
||||||
_LOGGER.debug(f"SAASService initialized with name: {name}, notify_target: {notify_target}")
|
_LOGGER.debug(f"sleepdService initialized with name: {name}, notify_target: {notify_target}")
|
||||||
|
|
||||||
async def call_service(self, service_call: ServiceCall):
|
async def call_service(self, service_call: ServiceCall):
|
||||||
"""Call the service."""
|
"""Call the service."""
|
||||||
service_name = self._notify_target # Remove the "notify." prefix
|
service_name = self._notify_target # Remove the "notify." prefix
|
||||||
|
|
||||||
# Extract parameters with default values
|
# Extract parameters with default values
|
||||||
params = ['message', 'day', 'hour', 'minute']
|
params = ['message', 'day', 'hour', 'minute']
|
||||||
defaults = ['Default Message', 'monday', 0, 0]
|
defaults = ['Default Message', 'monday', 0, 0]
|
||||||
message, day, hour, minute = (service_call.data.get(param, default) for param, default in zip(params, defaults))
|
message, day, hour, minute = (service_call.data.get(param, default) for param, default in zip(params, defaults))
|
||||||
|
|
||||||
_LOGGER.debug(f"Extracted parameters from service call: message: {message}, day: {day}, hour: {hour}, minute: {minute}")
|
_LOGGER.debug(f"Extracted parameters from service call: message: {message}, day: {day}, hour: {hour}, minute: {minute}")
|
||||||
|
|
||||||
# Convert day name to number
|
# Convert day name to number
|
||||||
day_number = DAY_MAPPING.get(day.lower(), day)
|
day_number = DAY_MAPPING.get(day.lower(), day)
|
||||||
|
|
||||||
_LOGGER.debug(f"Converted day name to number: {day_number}")
|
_LOGGER.debug(f"Converted day name to number: {day_number}")
|
||||||
|
|
||||||
_LOGGER.info(f"Service called with message: {message}, day: {day_number}, hours: {hour}, minutes: {minute}")
|
_LOGGER.info(f"Service called with message: {message}, day: {day_number}, hours: {hour}, minutes: {minute}")
|
||||||
|
|
||||||
service_data = {
|
service_data = {
|
||||||
"message": "command_activity",
|
"message": "command_activity",
|
||||||
"data": {
|
"data": {
|
||||||
"intent_action": "android.intent.action.SET_ALARM",
|
"intent_action": "android.intent.action.SET_ALARM",
|
||||||
"intent_extras": f"android.intent.extra.alarm.SKIP_UI:true,android.intent.extra.alarm.MESSAGE:{message},android.intent.extra.alarm.DAYS:{day_number}:ArrayList<Integer>,android.intent.extra.alarm.HOUR:{hour},android.intent.extra.alarm.MINUTES:{minute}"
|
"intent_extras": f"android.intent.extra.alarm.SKIP_UI:true,android.intent.extra.alarm.MESSAGE:{message},android.intent.extra.alarm.DAYS:{day_number}:ArrayList<Integer>,android.intent.extra.alarm.HOUR:{hour},android.intent.extra.alarm.MINUTES:{minute}"
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
_LOGGER.debug(f"Prepared service data: {service_data}")
|
_LOGGER.debug(f"Prepared service data: {service_data}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await self._hass.services.async_call(
|
await self._hass.services.async_call(
|
||||||
"notify",
|
"notify",
|
||||||
service_name,
|
service_name,
|
||||||
service_data,
|
service_data,
|
||||||
blocking=True,
|
blocking=True,
|
||||||
)
|
)
|
||||||
_LOGGER.info(f"Service call completed")
|
_LOGGER.info(f"Service call completed")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_LOGGER.error(f"Error occurred while calling service: {e}")
|
_LOGGER.error(f"Error occurred while calling service: {e}")
|
||||||
|
|
||||||
async def async_setup_services(hass: HomeAssistant) -> None:
|
async def async_setup_services(hass: HomeAssistant) -> None:
|
||||||
"""Set up services for the SAAS component."""
|
"""Set up services for the sleepd component."""
|
||||||
_LOGGER.info(f"Setting up services for {DOMAIN}")
|
_LOGGER.info(f"Setting up services for {DOMAIN}")
|
||||||
# Register the service for each entry
|
# Register the service for each entry
|
||||||
for entry_id, entry_data in hass.data.get(DOMAIN, {}).items():
|
for entry_id, entry_data in hass.data.get(DOMAIN, {}).items():
|
||||||
if entry_data:
|
if entry_data:
|
||||||
name = entry_data.get('name', 'default name')
|
name = entry_data.get('name', 'default name')
|
||||||
notify_target = entry_data.get('notify_target', 'default notify target')
|
notify_target = entry_data.get('notify_target', 'default notify target')
|
||||||
if notify_target: # Only register the service if notify_target was chosen
|
if notify_target: # Only register the service if notify_target was chosen
|
||||||
_LOGGER.debug(f"Found notify_target: {notify_target} for name: {name}. Registering service.")
|
_LOGGER.debug(f"Found notify_target: {notify_target} for name: {name}. Registering service.")
|
||||||
saas_service = SAASService(hass, name, notify_target)
|
sleepd_service = sleepdService(hass, name, notify_target)
|
||||||
try:
|
try:
|
||||||
hass.services.async_register(DOMAIN, f'saas_{name}_alarm_set', saas_service.call_service)
|
hass.services.async_register(DOMAIN, f'sleepd_{name}_alarm_set', sleepd_service.call_service)
|
||||||
_LOGGER.info(f"Registered service: saas_{name}_alarm_set")
|
_LOGGER.info(f"Registered service: sleepd_{name}_alarm_set")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_LOGGER.error(f"Error occurred while registering service: {e}")
|
_LOGGER.error(f"Error occurred while registering service: {e}")
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning(f"No notify_target found for name: {name}. Skipping service registration.")
|
_LOGGER.warning(f"No notify_target found for name: {name}. Skipping service registration.")
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning(f"No entry data found for entry_id: {entry_id}")
|
_LOGGER.warning(f"No entry data found for entry_id: {entry_id}")
|
||||||
_LOGGER.info(f"Finished setting up services for {DOMAIN}")
|
_LOGGER.info(f"Finished setting up services for {DOMAIN}")
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - حالة Sleep As Android",
|
"title": "sleepd - حالة Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "التكوين لـ SAAS - حالة Sleep As Android",
|
"title": "التكوين لـ sleepd - حالة Sleep As Android",
|
||||||
"description": "تكوين الإعدادات الأساسية لتكامل SAAS.",
|
"description": "تكوين الإعدادات الأساسية لتكامل sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "الاسم للمستشعر",
|
"name": "الاسم للمستشعر",
|
||||||
"topic_template": "موضوع MQTT لأحداث Sleep As Android",
|
"topic_template": "موضوع MQTT لأحداث Sleep As Android",
|
||||||
"qos": "جودة الخدمة (QoS) لـ MQTT",
|
"qos": "جودة الخدمة (QoS) لـ MQTT",
|
||||||
"awake_duration": "مدة اليقظة",
|
"awake_duration": "مدة اليقظة",
|
||||||
"sleep_duration": "مدة النوم",
|
"sleep_duration": "مدة النوم",
|
||||||
"awake_states": "حالات اليقظة*",
|
"awake_states": "حالات اليقظة*",
|
||||||
"sleep_states": "حالات النوم*"
|
"sleep_states": "حالات النوم*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "إعدادات تكامل SAAS",
|
"title": "إعدادات تكامل sleepd",
|
||||||
"description": "تكوين الإعدادات الأساسية لتكامل SAAS.",
|
"description": "تكوين الإعدادات الأساسية لتكامل sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "الاسم للمستشعر",
|
"name": "الاسم للمستشعر",
|
||||||
"topic_template": "موضوع MQTT (من Sleep As Android)",
|
"topic_template": "موضوع MQTT (من Sleep As Android)",
|
||||||
"qos": "جودة الخدمة (QoS) لـ MQTT",
|
"qos": "جودة الخدمة (QoS) لـ MQTT",
|
||||||
"awake_duration": "مدة اليقظة",
|
"awake_duration": "مدة اليقظة",
|
||||||
"sleep_duration": "مدة النوم",
|
"sleep_duration": "مدة النوم",
|
||||||
"awake_states": "حالات اليقظة*",
|
"awake_states": "حالات اليقظة*",
|
||||||
"sleep_states": "حالات النوم*"
|
"sleep_states": "حالات النوم*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "غير معروف",
|
"Unknown": "غير معروف",
|
||||||
"Sleep Tracking Started": "بدأ تتبع النوم",
|
"Sleep Tracking Started": "بدأ تتبع النوم",
|
||||||
"Sleep Tracking Stopped": "توقف تتبع النوم",
|
"Sleep Tracking Stopped": "توقف تتبع النوم",
|
||||||
"Sleep Tracking Paused": "تم إيقاف تتبع النوم مؤقتًا",
|
"Sleep Tracking Paused": "تم إيقاف تتبع النوم مؤقتًا",
|
||||||
"Sleep Tracking Resumed": "استأنف تتبع النوم",
|
"Sleep Tracking Resumed": "استأنف تتبع النوم",
|
||||||
"Alarm Snoozed": "تأجيل الإنذار",
|
"Alarm Snoozed": "تأجيل الإنذار",
|
||||||
"Snooze Canceled": "تم إلغاء التأجيل",
|
"Snooze Canceled": "تم إلغاء التأجيل",
|
||||||
"Time for Bed": "وقت النوم",
|
"Time for Bed": "وقت النوم",
|
||||||
"Alarm Alert Started": "بدأ تنبيه الإنذار",
|
"Alarm Alert Started": "بدأ تنبيه الإنذار",
|
||||||
"Alarm Dismissed": "تم تجاهل الإنذار",
|
"Alarm Dismissed": "تم تجاهل الإنذار",
|
||||||
"Skip Next Alarm": "تخطي الإنذار التالي",
|
"Skip Next Alarm": "تخطي الإنذار التالي",
|
||||||
"Show Skip Next Alarm": "إظهار تخطي الإنذار التالي",
|
"Show Skip Next Alarm": "إظهار تخطي الإنذار التالي",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "الفترة الذكية",
|
"Smart Period": "الفترة الذكية",
|
||||||
"Before Smart Period": "قبل الفترة الذكية",
|
"Before Smart Period": "قبل الفترة الذكية",
|
||||||
"Lullaby Start": "بداية التهليل",
|
"Lullaby Start": "بداية التهليل",
|
||||||
"Lullaby Stop": "توقف التهليل",
|
"Lullaby Stop": "توقف التهليل",
|
||||||
"Lullaby Volume Down": "خفض صوت التهليل",
|
"Lullaby Volume Down": "خفض صوت التهليل",
|
||||||
"Deep Sleep": "نوم عميق",
|
"Deep Sleep": "نوم عميق",
|
||||||
"Light Sleep": "نوم خفيف",
|
"Light Sleep": "نوم خفيف",
|
||||||
"Awake": "مستيقظ",
|
"Awake": "مستيقظ",
|
||||||
"Not Awake": "غير مستيقظ",
|
"Not Awake": "غير مستيقظ",
|
||||||
"Apnea Alarm": "إنذار الأنابيب",
|
"Apnea Alarm": "إنذار الأنابيب",
|
||||||
"Antisnoring": "مضاد للشخير",
|
"Antisnoring": "مضاد للشخير",
|
||||||
"Before Alarm": "قبل الإنذار",
|
"Before Alarm": "قبل الإنذار",
|
||||||
"Snore Detected": "تم اكتشاف الشخير",
|
"Snore Detected": "تم اكتشاف الشخير",
|
||||||
"Talk Detected": "تم اكتشاف الكلام",
|
"Talk Detected": "تم اكتشاف الكلام",
|
||||||
"Cough Detected": "تم اكتشاف السعال",
|
"Cough Detected": "تم اكتشاف السعال",
|
||||||
"Baby Cry Detected": "تم اكتشاف بكاء الطفل",
|
"Baby Cry Detected": "تم اكتشاف بكاء الطفل",
|
||||||
"Laugh Detected": "تم اكتشاف الضحك",
|
"Laugh Detected": "تم اكتشاف الضحك",
|
||||||
"Alarm Rescheduled": "تم إعادة جدولة الإنذار",
|
"Alarm Rescheduled": "تم إعادة جدولة الإنذار",
|
||||||
"None": "لا شيء"
|
"None": "لا شيء"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Sleep As Android Status",
|
"title": "sleepd - Sleep As Android Status",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Konfiguration für SAAS - Sleep As Android Status",
|
"title": "Konfiguration für sleepd - Sleep As Android Status",
|
||||||
"description": "Konfigurieren Sie die grundlegenden Einstellungen für die SAAS-Integration.",
|
"description": "Konfigurieren Sie die grundlegenden Einstellungen für die sleepd-Integration.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Name für Sensor",
|
"name": "Name für Sensor",
|
||||||
"topic_template": "MQTT-Thema für Sleep As Android Ereignisse",
|
"topic_template": "MQTT-Thema für Sleep As Android Ereignisse",
|
||||||
"qos": "Quality of Service (QoS) für MQTT",
|
"qos": "Quality of Service (QoS) für MQTT",
|
||||||
"awake_duration": "Wachdauer",
|
"awake_duration": "Wachdauer",
|
||||||
"sleep_duration": "Schlafdauer",
|
"sleep_duration": "Schlafdauer",
|
||||||
"awake_states": "Wachzustände*",
|
"awake_states": "Wachzustände*",
|
||||||
"sleep_states": "Schlafzustände*"
|
"sleep_states": "Schlafzustände*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS-Integrationseinstellungen",
|
"title": "sleepd-Integrationseinstellungen",
|
||||||
"description": "Konfigurieren Sie die grundlegenden Einstellungen für die SAAS-Integration.",
|
"description": "Konfigurieren Sie die grundlegenden Einstellungen für die sleepd-Integration.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Name für Sensor",
|
"name": "Name für Sensor",
|
||||||
"topic_template": "MQTT-Thema (von Sleep As Android)",
|
"topic_template": "MQTT-Thema (von Sleep As Android)",
|
||||||
"qos": "MQTT Quality of Service (QoS)",
|
"qos": "MQTT Quality of Service (QoS)",
|
||||||
"awake_duration": "Wachdauer",
|
"awake_duration": "Wachdauer",
|
||||||
"sleep_duration": "Schlafdauer",
|
"sleep_duration": "Schlafdauer",
|
||||||
"awake_states": "Wachzustände*",
|
"awake_states": "Wachzustände*",
|
||||||
"sleep_states": "Schlafzustände*"
|
"sleep_states": "Schlafzustände*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Unbekannt",
|
"Unknown": "Unbekannt",
|
||||||
"Sleep Tracking Started": "Schlafüberwachung Gestartet",
|
"Sleep Tracking Started": "Schlafüberwachung Gestartet",
|
||||||
"Sleep Tracking Stopped": "Schlafüberwachung Gestoppt",
|
"Sleep Tracking Stopped": "Schlafüberwachung Gestoppt",
|
||||||
"Sleep Tracking Paused": "Schlafüberwachung Pausiert",
|
"Sleep Tracking Paused": "Schlafüberwachung Pausiert",
|
||||||
"Sleep Tracking Resumed": "Schlafüberwachung Fortgesetzt",
|
"Sleep Tracking Resumed": "Schlafüberwachung Fortgesetzt",
|
||||||
"Alarm Snoozed": "Alarm Snoozed",
|
"Alarm Snoozed": "Alarm Snoozed",
|
||||||
"Snooze Canceled": "Snooze Abgebrochen",
|
"Snooze Canceled": "Snooze Abgebrochen",
|
||||||
"Time for Bed": "Zeit fürs Bett",
|
"Time for Bed": "Zeit fürs Bett",
|
||||||
"Alarm Alert Started": "Alarmalarm Gestartet",
|
"Alarm Alert Started": "Alarmalarm Gestartet",
|
||||||
"Alarm Dismissed": "Alarm Abgewiesen",
|
"Alarm Dismissed": "Alarm Abgewiesen",
|
||||||
"Skip Next Alarm": "Nächsten Alarm Überspringen",
|
"Skip Next Alarm": "Nächsten Alarm Überspringen",
|
||||||
"Show Skip Next Alarm": "Zeige 'Nächsten Alarm Überspringen'",
|
"Show Skip Next Alarm": "Zeige 'Nächsten Alarm Überspringen'",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Intelligenter Zeitraum",
|
"Smart Period": "Intelligenter Zeitraum",
|
||||||
"Before Smart Period": "Vor Intelligenter Zeitraum",
|
"Before Smart Period": "Vor Intelligenter Zeitraum",
|
||||||
"Lullaby Start": "Wiegenlied Start",
|
"Lullaby Start": "Wiegenlied Start",
|
||||||
"Lullaby Stop": "Wiegenlied Stop",
|
"Lullaby Stop": "Wiegenlied Stop",
|
||||||
"Lullaby Volume Down": "Wiegenlied Lautstärke Runter",
|
"Lullaby Volume Down": "Wiegenlied Lautstärke Runter",
|
||||||
"Deep Sleep": "Tiefschlaf",
|
"Deep Sleep": "Tiefschlaf",
|
||||||
"Light Sleep": "Leichter Schlaf",
|
"Light Sleep": "Leichter Schlaf",
|
||||||
"Awake": "Wach",
|
"Awake": "Wach",
|
||||||
"Not Awake": "Nicht Wach",
|
"Not Awake": "Nicht Wach",
|
||||||
"Apnea Alarm": "Apnoe Alarm",
|
"Apnea Alarm": "Apnoe Alarm",
|
||||||
"Antisnoring": "Antischnarchen",
|
"Antisnoring": "Antischnarchen",
|
||||||
"Before Alarm": "Vor Alarm",
|
"Before Alarm": "Vor Alarm",
|
||||||
"Snore Detected": "Schnarchen Erkannt",
|
"Snore Detected": "Schnarchen Erkannt",
|
||||||
"Talk Detected": "Gespräch Erkannt",
|
"Talk Detected": "Gespräch Erkannt",
|
||||||
"Cough Detected": "Husten Erkannt",
|
"Cough Detected": "Husten Erkannt",
|
||||||
"Baby Cry Detected": "Babyweinen Erkannt",
|
"Baby Cry Detected": "Babyweinen Erkannt",
|
||||||
"Laugh Detected": "Lachen Erkannt",
|
"Laugh Detected": "Lachen Erkannt",
|
||||||
"Alarm Rescheduled": "Alarm Neu Geplant",
|
"Alarm Rescheduled": "Alarm Neu Geplant",
|
||||||
"None": "Keine"
|
"None": "Keine"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Sleep As Android Status",
|
"title": "sleepd - Sleep As Android Status",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Configuration for SAAS - Sleep As Android Status",
|
"title": "Configuration for sleepd - Sleep As Android Status",
|
||||||
"description": "Configure the basic settings for the SAAS integration.",
|
"description": "Configure the basic settings for the sleepd integration.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Name for Sensor",
|
"name": "Name for Sensor",
|
||||||
"topic_template": "MQTT Topic for Sleep As Android Events",
|
"topic_template": "MQTT Topic for Sleep As Android Events",
|
||||||
"qos": "Quality of Service (QoS) for MQTT",
|
"qos": "Quality of Service (QoS) for MQTT",
|
||||||
"awake_duration": "Awake Duration",
|
"awake_duration": "Awake Duration",
|
||||||
"sleep_duration": "Asleep Duration",
|
"sleep_duration": "Asleep Duration",
|
||||||
"awake_states": "Awake States*",
|
"awake_states": "Awake States*",
|
||||||
"sleep_states": "Asleep States*"
|
"sleep_states": "Asleep States*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS Integration Settings",
|
"title": "sleepd Integration Settings",
|
||||||
"description": "Configure the basic settings for the SAAS integration.",
|
"description": "Configure the basic settings for the sleepd integration.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Name for Sensor",
|
"name": "Name for Sensor",
|
||||||
"topic_template": "MQTT Topic (from Sleep As Android)",
|
"topic_template": "MQTT Topic (from Sleep As Android)",
|
||||||
"qos": "MQTT Quality of Service (QoS)",
|
"qos": "MQTT Quality of Service (QoS)",
|
||||||
"awake_duration": "Awake Duration",
|
"awake_duration": "Awake Duration",
|
||||||
"sleep_duration": "Asleep Duration",
|
"sleep_duration": "Asleep Duration",
|
||||||
"awake_states": "Awake States*",
|
"awake_states": "Awake States*",
|
||||||
"sleep_states": "Asleep States*"
|
"sleep_states": "Asleep States*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Unknown",
|
"Unknown": "Unknown",
|
||||||
"Sleep Tracking Started": "Sleep Tracking Started",
|
"Sleep Tracking Started": "Sleep Tracking Started",
|
||||||
"Sleep Tracking Stopped": "Sleep Tracking Stopped",
|
"Sleep Tracking Stopped": "Sleep Tracking Stopped",
|
||||||
"Sleep Tracking Paused": "Sleep Tracking Paused",
|
"Sleep Tracking Paused": "Sleep Tracking Paused",
|
||||||
"Sleep Tracking Resumed": "Sleep Tracking Resumed",
|
"Sleep Tracking Resumed": "Sleep Tracking Resumed",
|
||||||
"Alarm Snoozed": "Alarm Snoozed",
|
"Alarm Snoozed": "Alarm Snoozed",
|
||||||
"Snooze Canceled": "Snooze Canceled",
|
"Snooze Canceled": "Snooze Canceled",
|
||||||
"Time for Bed": "Time for Bed",
|
"Time for Bed": "Time for Bed",
|
||||||
"Alarm Alert Started": "Alarm Alert Started",
|
"Alarm Alert Started": "Alarm Alert Started",
|
||||||
"Alarm Dismissed": "Alarm Dismissed",
|
"Alarm Dismissed": "Alarm Dismissed",
|
||||||
"Skip Next Alarm": "Skip Next Alarm",
|
"Skip Next Alarm": "Skip Next Alarm",
|
||||||
"Show Skip Next Alarm": "Show Skip Next Alarm",
|
"Show Skip Next Alarm": "Show Skip Next Alarm",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Smart Period",
|
"Smart Period": "Smart Period",
|
||||||
"Before Smart Period": "Before Smart Period",
|
"Before Smart Period": "Before Smart Period",
|
||||||
"Lullaby Start": "Lullaby Start",
|
"Lullaby Start": "Lullaby Start",
|
||||||
"Lullaby Stop": "Lullaby Stop",
|
"Lullaby Stop": "Lullaby Stop",
|
||||||
"Lullaby Volume Down": "Lullaby Volume Down",
|
"Lullaby Volume Down": "Lullaby Volume Down",
|
||||||
"Deep Sleep": "Deep Sleep",
|
"Deep Sleep": "Deep Sleep",
|
||||||
"Light Sleep": "Light Sleep",
|
"Light Sleep": "Light Sleep",
|
||||||
"Awake": "Awake",
|
"Awake": "Awake",
|
||||||
"Not Awake": "Not Awake",
|
"Not Awake": "Not Awake",
|
||||||
"Apnea Alarm": "Apnea Alarm",
|
"Apnea Alarm": "Apnea Alarm",
|
||||||
"Antisnoring": "Antisnoring",
|
"Antisnoring": "Antisnoring",
|
||||||
"Before Alarm": "Before Alarm",
|
"Before Alarm": "Before Alarm",
|
||||||
"Snore Detected": "Snore Detected",
|
"Snore Detected": "Snore Detected",
|
||||||
"Talk Detected": "Talk Detected",
|
"Talk Detected": "Talk Detected",
|
||||||
"Cough Detected": "Cough Detected",
|
"Cough Detected": "Cough Detected",
|
||||||
"Baby Cry Detected": "Baby Cry Detected",
|
"Baby Cry Detected": "Baby Cry Detected",
|
||||||
"Laugh Detected": "Laugh Detected",
|
"Laugh Detected": "Laugh Detected",
|
||||||
"Alarm Rescheduled": "Alarm Rescheduled",
|
"Alarm Rescheduled": "Alarm Rescheduled",
|
||||||
"None": "None"
|
"None": "None"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Estado de Sleep As Android",
|
"title": "sleepd - Estado de Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Configuración para SAAS - Estado de Sleep As Android",
|
"title": "Configuración para sleepd - Estado de Sleep As Android",
|
||||||
"description": "Configura los ajustes básicos para la integración de SAAS.",
|
"description": "Configura los ajustes básicos para la integración de sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nombre para el Sensor",
|
"name": "Nombre para el Sensor",
|
||||||
"topic_template": "Tema MQTT para Eventos de Sleep As Android",
|
"topic_template": "Tema MQTT para Eventos de Sleep As Android",
|
||||||
"qos": "Calidad de Servicio (QoS) para MQTT",
|
"qos": "Calidad de Servicio (QoS) para MQTT",
|
||||||
"awake_duration": "Duración Despierto",
|
"awake_duration": "Duración Despierto",
|
||||||
"sleep_duration": "Duración Durmiendo",
|
"sleep_duration": "Duración Durmiendo",
|
||||||
"awake_states": "Estados Despierto*",
|
"awake_states": "Estados Despierto*",
|
||||||
"sleep_states": "Estados Durmiendo*"
|
"sleep_states": "Estados Durmiendo*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "Configuración de Integración SAAS",
|
"title": "Configuración de Integración sleepd",
|
||||||
"description": "Configura los ajustes básicos para la integración de SAAS.",
|
"description": "Configura los ajustes básicos para la integración de sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nombre para el Sensor",
|
"name": "Nombre para el Sensor",
|
||||||
"topic_template": "Tema MQTT (de Sleep As Android)",
|
"topic_template": "Tema MQTT (de Sleep As Android)",
|
||||||
"qos": "Calidad de Servicio (QoS) de MQTT",
|
"qos": "Calidad de Servicio (QoS) de MQTT",
|
||||||
"awake_duration": "Duración Despierto",
|
"awake_duration": "Duración Despierto",
|
||||||
"sleep_duration": "Duración Durmiendo",
|
"sleep_duration": "Duración Durmiendo",
|
||||||
"awake_states": "Estados Despierto*",
|
"awake_states": "Estados Despierto*",
|
||||||
"sleep_states": "Estados Durmiendo*"
|
"sleep_states": "Estados Durmiendo*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Desconocido",
|
"Unknown": "Desconocido",
|
||||||
"Sleep Tracking Started": "Seguimiento del Sueño Iniciado",
|
"Sleep Tracking Started": "Seguimiento del Sueño Iniciado",
|
||||||
"Sleep Tracking Stopped": "Seguimiento del Sueño Detenido",
|
"Sleep Tracking Stopped": "Seguimiento del Sueño Detenido",
|
||||||
"Sleep Tracking Paused": "Seguimiento del Sueño Pausado",
|
"Sleep Tracking Paused": "Seguimiento del Sueño Pausado",
|
||||||
"Sleep Tracking Resumed": "Seguimiento del Sueño Reanudado",
|
"Sleep Tracking Resumed": "Seguimiento del Sueño Reanudado",
|
||||||
"Alarm Snoozed": "Alarma en Snooze",
|
"Alarm Snoozed": "Alarma en Snooze",
|
||||||
"Snooze Canceled": "Snooze Cancelado",
|
"Snooze Canceled": "Snooze Cancelado",
|
||||||
"Time for Bed": "Hora de Dormir",
|
"Time for Bed": "Hora de Dormir",
|
||||||
"Alarm Alert Started": "Alerta de Alarma Iniciada",
|
"Alarm Alert Started": "Alerta de Alarma Iniciada",
|
||||||
"Alarm Dismissed": "Alarma Desactivada",
|
"Alarm Dismissed": "Alarma Desactivada",
|
||||||
"Skip Next Alarm": "Saltar Próxima Alarma",
|
"Skip Next Alarm": "Saltar Próxima Alarma",
|
||||||
"Show Skip Next Alarm": "Mostrar Saltar Próxima Alarma",
|
"Show Skip Next Alarm": "Mostrar Saltar Próxima Alarma",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Periodo Inteligente",
|
"Smart Period": "Periodo Inteligente",
|
||||||
"Before Smart Period": "Antes del Periodo Inteligente",
|
"Before Smart Period": "Antes del Periodo Inteligente",
|
||||||
"Lullaby Start": "Inicio de Canción de Cuna",
|
"Lullaby Start": "Inicio de Canción de Cuna",
|
||||||
"Lullaby Stop": "Fin de Canción de Cuna",
|
"Lullaby Stop": "Fin de Canción de Cuna",
|
||||||
"Lullaby Volume Down": "Bajar Volumen de Canción de Cuna",
|
"Lullaby Volume Down": "Bajar Volumen de Canción de Cuna",
|
||||||
"Deep Sleep": "Sueño Profundo",
|
"Deep Sleep": "Sueño Profundo",
|
||||||
"Light Sleep": "Sueño Ligero",
|
"Light Sleep": "Sueño Ligero",
|
||||||
"Awake": "Despierto",
|
"Awake": "Despierto",
|
||||||
"Not Awake": "No Despierto",
|
"Not Awake": "No Despierto",
|
||||||
"Apnea Alarm": "Alarma de Apnea",
|
"Apnea Alarm": "Alarma de Apnea",
|
||||||
"Antisnoring": "Antirronquidos",
|
"Antisnoring": "Antirronquidos",
|
||||||
"Before Alarm": "Antes de la Alarma",
|
"Before Alarm": "Antes de la Alarma",
|
||||||
"Snore Detected": "Ronquido Detectado",
|
"Snore Detected": "Ronquido Detectado",
|
||||||
"Talk Detected": "Habla Detectada",
|
"Talk Detected": "Habla Detectada",
|
||||||
"Cough Detected": "Tos Detectada",
|
"Cough Detected": "Tos Detectada",
|
||||||
"Baby Cry Detected": "Llanto de Bebé Detectado",
|
"Baby Cry Detected": "Llanto de Bebé Detectado",
|
||||||
"Laugh Detected": "Risa Detectada",
|
"Laugh Detected": "Risa Detectada",
|
||||||
"Alarm Rescheduled": "Alarma Re-programada",
|
"Alarm Rescheduled": "Alarma Re-programada",
|
||||||
"None": "Ninguno"
|
"None": "Ninguno"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Statut de Sleep As Android",
|
"title": "sleepd - Statut de Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Configuration pour SAAS - Statut de Sleep As Android",
|
"title": "Configuration pour sleepd - Statut de Sleep As Android",
|
||||||
"description": "Configurez les paramètres de base pour l'intégration de SAAS.",
|
"description": "Configurez les paramètres de base pour l'intégration de sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nom pour le Capteur",
|
"name": "Nom pour le Capteur",
|
||||||
"topic_template": "Sujet MQTT pour les Événements de Sleep As Android",
|
"topic_template": "Sujet MQTT pour les Événements de Sleep As Android",
|
||||||
"qos": "Qualité de Service (QoS) pour MQTT",
|
"qos": "Qualité de Service (QoS) pour MQTT",
|
||||||
"awake_duration": "Durée Éveillé",
|
"awake_duration": "Durée Éveillé",
|
||||||
"sleep_duration": "Durée Endormi",
|
"sleep_duration": "Durée Endormi",
|
||||||
"awake_states": "États Éveillé*",
|
"awake_states": "États Éveillé*",
|
||||||
"sleep_states": "États Endormi*"
|
"sleep_states": "États Endormi*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "Paramètres d'Intégration SAAS",
|
"title": "Paramètres d'Intégration sleepd",
|
||||||
"description": "Configurez les paramètres de base pour l'intégration de SAAS.",
|
"description": "Configurez les paramètres de base pour l'intégration de sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nom pour le Capteur",
|
"name": "Nom pour le Capteur",
|
||||||
"topic_template": "Sujet MQTT (de Sleep As Android)",
|
"topic_template": "Sujet MQTT (de Sleep As Android)",
|
||||||
"qos": "Qualité de Service (QoS) de MQTT",
|
"qos": "Qualité de Service (QoS) de MQTT",
|
||||||
"awake_duration": "Durée Éveillé",
|
"awake_duration": "Durée Éveillé",
|
||||||
"sleep_duration": "Durée Endormi",
|
"sleep_duration": "Durée Endormi",
|
||||||
"awake_states": "États Éveillé*",
|
"awake_states": "États Éveillé*",
|
||||||
"sleep_states": "États Endormi*"
|
"sleep_states": "États Endormi*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Inconnu",
|
"Unknown": "Inconnu",
|
||||||
"Sleep Tracking Started": "Suivi du Sommeil Commencé",
|
"Sleep Tracking Started": "Suivi du Sommeil Commencé",
|
||||||
"Sleep Tracking Stopped": "Suivi du Sommeil Arrêté",
|
"Sleep Tracking Stopped": "Suivi du Sommeil Arrêté",
|
||||||
"Sleep Tracking Paused": "Suivi du Sommeil en Pause",
|
"Sleep Tracking Paused": "Suivi du Sommeil en Pause",
|
||||||
"Sleep Tracking Resumed": "Suivi du Sommeil Repris",
|
"Sleep Tracking Resumed": "Suivi du Sommeil Repris",
|
||||||
"Alarm Snoozed": "Alarme en Snooze",
|
"Alarm Snoozed": "Alarme en Snooze",
|
||||||
"Snooze Canceled": "Snooze Annulé",
|
"Snooze Canceled": "Snooze Annulé",
|
||||||
"Time for Bed": "Heure du Coucher",
|
"Time for Bed": "Heure du Coucher",
|
||||||
"Alarm Alert Started": "Alerte d'Alarme Commencée",
|
"Alarm Alert Started": "Alerte d'Alarme Commencée",
|
||||||
"Alarm Dismissed": "Alarme Dismissed",
|
"Alarm Dismissed": "Alarme Dismissed",
|
||||||
"Skip Next Alarm": "Passer la Prochaine Alarme",
|
"Skip Next Alarm": "Passer la Prochaine Alarme",
|
||||||
"Show Skip Next Alarm": "Montrer Passer la Prochaine Alarme",
|
"Show Skip Next Alarm": "Montrer Passer la Prochaine Alarme",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Période Intelligente",
|
"Smart Period": "Période Intelligente",
|
||||||
"Before Smart Period": "Avant la Période Intelligente",
|
"Before Smart Period": "Avant la Période Intelligente",
|
||||||
"Lullaby Start": "Début de Berceuse",
|
"Lullaby Start": "Début de Berceuse",
|
||||||
"Lullaby Stop": "Fin de Berceuse",
|
"Lullaby Stop": "Fin de Berceuse",
|
||||||
"Lullaby Volume Down": "Diminuer le Volume de la Berceuse",
|
"Lullaby Volume Down": "Diminuer le Volume de la Berceuse",
|
||||||
"Deep Sleep": "Sommeil Profond",
|
"Deep Sleep": "Sommeil Profond",
|
||||||
"Light Sleep": "Sommeil Léger",
|
"Light Sleep": "Sommeil Léger",
|
||||||
"Awake": "Éveillé",
|
"Awake": "Éveillé",
|
||||||
"Not Awake": "Pas Éveillé",
|
"Not Awake": "Pas Éveillé",
|
||||||
"Apnea Alarm": "Alarme d'Apnée",
|
"Apnea Alarm": "Alarme d'Apnée",
|
||||||
"Antisnoring": "Anti-ronflement",
|
"Antisnoring": "Anti-ronflement",
|
||||||
"Before Alarm": "Avant l'Alarme",
|
"Before Alarm": "Avant l'Alarme",
|
||||||
"Snore Detected": "Ronflement Détecté",
|
"Snore Detected": "Ronflement Détecté",
|
||||||
"Talk Detected": "Parole Détectée",
|
"Talk Detected": "Parole Détectée",
|
||||||
"Cough Detected": "Toux Détectée",
|
"Cough Detected": "Toux Détectée",
|
||||||
"Baby Cry Detected": "Pleurs de Bébé Détectés",
|
"Baby Cry Detected": "Pleurs de Bébé Détectés",
|
||||||
"Laugh Detected": "Rire Détecté",
|
"Laugh Detected": "Rire Détecté",
|
||||||
"Alarm Rescheduled": "Alarme Re-programmée",
|
"Alarm Rescheduled": "Alarme Re-programmée",
|
||||||
"None": "Aucun"
|
"None": "Aucun"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Stato di Sleep As Android",
|
"title": "sleepd - Stato di Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Configurazione per SAAS - Stato di Sleep As Android",
|
"title": "Configurazione per sleepd - Stato di Sleep As Android",
|
||||||
"description": "Configura le impostazioni di base per l'integrazione SAAS.",
|
"description": "Configura le impostazioni di base per l'integrazione sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nome per Sensore",
|
"name": "Nome per Sensore",
|
||||||
"topic_template": "Topic MQTT per Eventi Sleep As Android",
|
"topic_template": "Topic MQTT per Eventi Sleep As Android",
|
||||||
"qos": "Quality of Service (QoS) per MQTT",
|
"qos": "Quality of Service (QoS) per MQTT",
|
||||||
"awake_duration": "Durata Sveglio",
|
"awake_duration": "Durata Sveglio",
|
||||||
"sleep_duration": "Durata Addormentato",
|
"sleep_duration": "Durata Addormentato",
|
||||||
"awake_states": "Stati di Veglia*",
|
"awake_states": "Stati di Veglia*",
|
||||||
"sleep_states": "Stati di Sonno*"
|
"sleep_states": "Stati di Sonno*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "Impostazioni di Integrazione SAAS",
|
"title": "Impostazioni di Integrazione sleepd",
|
||||||
"description": "Configura le impostazioni di base per l'integrazione SAAS.",
|
"description": "Configura le impostazioni di base per l'integrazione sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nome per Sensore",
|
"name": "Nome per Sensore",
|
||||||
"topic_template": "Topic MQTT (da Sleep As Android)",
|
"topic_template": "Topic MQTT (da Sleep As Android)",
|
||||||
"qos": "Quality of Service (QoS) MQTT",
|
"qos": "Quality of Service (QoS) MQTT",
|
||||||
"awake_duration": "Durata Sveglio",
|
"awake_duration": "Durata Sveglio",
|
||||||
"sleep_duration": "Durata Addormentato",
|
"sleep_duration": "Durata Addormentato",
|
||||||
"awake_states": "Stati di Veglia*",
|
"awake_states": "Stati di Veglia*",
|
||||||
"sleep_states": "Stati di Sonno*"
|
"sleep_states": "Stati di Sonno*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Sconosciuto",
|
"Unknown": "Sconosciuto",
|
||||||
"Sleep Tracking Started": "Inizio Monitoraggio del Sonno",
|
"Sleep Tracking Started": "Inizio Monitoraggio del Sonno",
|
||||||
"Sleep Tracking Stopped": "Fine Monitoraggio del Sonno",
|
"Sleep Tracking Stopped": "Fine Monitoraggio del Sonno",
|
||||||
"Sleep Tracking Paused": "Monitoraggio del Sonno in Pausa",
|
"Sleep Tracking Paused": "Monitoraggio del Sonno in Pausa",
|
||||||
"Sleep Tracking Resumed": "Ripresa Monitoraggio del Sonno",
|
"Sleep Tracking Resumed": "Ripresa Monitoraggio del Sonno",
|
||||||
"Alarm Snoozed": "Allarme Posticipato",
|
"Alarm Snoozed": "Allarme Posticipato",
|
||||||
"Snooze Canceled": "Posticipo Annullato",
|
"Snooze Canceled": "Posticipo Annullato",
|
||||||
"Time for Bed": "Ora di Andare a Letto",
|
"Time for Bed": "Ora di Andare a Letto",
|
||||||
"Alarm Alert Started": "Inizio Allarme",
|
"Alarm Alert Started": "Inizio Allarme",
|
||||||
"Alarm Dismissed": "Allarme Disattivato",
|
"Alarm Dismissed": "Allarme Disattivato",
|
||||||
"Skip Next Alarm": "Salta il Prossimo Allarme",
|
"Skip Next Alarm": "Salta il Prossimo Allarme",
|
||||||
"Show Skip Next Alarm": "Mostra 'Salta il Prossimo Allarme'",
|
"Show Skip Next Alarm": "Mostra 'Salta il Prossimo Allarme'",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Periodo Smart",
|
"Smart Period": "Periodo Smart",
|
||||||
"Before Smart Period": "Prima del Periodo Smart",
|
"Before Smart Period": "Prima del Periodo Smart",
|
||||||
"Lullaby Start": "Inizio Ninna Nanna",
|
"Lullaby Start": "Inizio Ninna Nanna",
|
||||||
"Lullaby Stop": "Fine Ninna Nanna",
|
"Lullaby Stop": "Fine Ninna Nanna",
|
||||||
"Lullaby Volume Down": "Diminuzione Volume Ninna Nanna",
|
"Lullaby Volume Down": "Diminuzione Volume Ninna Nanna",
|
||||||
"Deep Sleep": "Sonno Profondo",
|
"Deep Sleep": "Sonno Profondo",
|
||||||
"Light Sleep": "Sonno Leggero",
|
"Light Sleep": "Sonno Leggero",
|
||||||
"Awake": "Sveglio",
|
"Awake": "Sveglio",
|
||||||
"Not Awake": "Non Sveglio",
|
"Not Awake": "Non Sveglio",
|
||||||
"Apnea Alarm": "Allarme Apnea",
|
"Apnea Alarm": "Allarme Apnea",
|
||||||
"Antisnoring": "Antirussamento",
|
"Antisnoring": "Antirussamento",
|
||||||
"Before Alarm": "Prima dell'Allarme",
|
"Before Alarm": "Prima dell'Allarme",
|
||||||
"Snore Detected": "Russamento Rilevato",
|
"Snore Detected": "Russamento Rilevato",
|
||||||
"Talk Detected": "Conversazione Rilevata",
|
"Talk Detected": "Conversazione Rilevata",
|
||||||
"Cough Detected": "Tosse Rilevata",
|
"Cough Detected": "Tosse Rilevata",
|
||||||
"Baby Cry Detected": "Pianto del Bambino Rilevato",
|
"Baby Cry Detected": "Pianto del Bambino Rilevato",
|
||||||
"Laugh Detected": "Risata Rilevata",
|
"Laugh Detected": "Risata Rilevata",
|
||||||
"Alarm Rescheduled": "Allarme Riprogrammato",
|
"Alarm Rescheduled": "Allarme Riprogrammato",
|
||||||
"None": "Nessuno"
|
"None": "Nessuno"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - 睡眠如 Android 狀態",
|
"title": "sleepd - 睡眠如 Android 狀態",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "SAAS - 睡眠如 Android 狀態配置",
|
"title": "sleepd - 睡眠如 Android 狀態配置",
|
||||||
"description": "配置 SAAS 整合的基本設置。",
|
"description": "配置 sleepd 整合的基本設置。",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "感應器名稱",
|
"name": "感應器名稱",
|
||||||
"topic_template": "睡眠如 Android 事件的 MQTT 主題",
|
"topic_template": "睡眠如 Android 事件的 MQTT 主題",
|
||||||
"qos": "MQTT 的服務質量 (QoS)",
|
"qos": "MQTT 的服務質量 (QoS)",
|
||||||
"awake_duration": "清醒持續時間",
|
"awake_duration": "清醒持續時間",
|
||||||
"sleep_duration": "睡眠持續時間",
|
"sleep_duration": "睡眠持續時間",
|
||||||
"awake_states": "清醒狀態*",
|
"awake_states": "清醒狀態*",
|
||||||
"sleep_states": "睡眠狀態*"
|
"sleep_states": "睡眠狀態*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS 整合設置",
|
"title": "sleepd 整合設置",
|
||||||
"description": "配置 SAAS 整合的基本設置。",
|
"description": "配置 sleepd 整合的基本設置。",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "感應器名稱",
|
"name": "感應器名稱",
|
||||||
"topic_template": "MQTT 主題(來自睡眠如 Android)",
|
"topic_template": "MQTT 主題(來自睡眠如 Android)",
|
||||||
"qos": "MQTT 服務質量 (QoS)",
|
"qos": "MQTT 服務質量 (QoS)",
|
||||||
"awake_duration": "清醒持續時間",
|
"awake_duration": "清醒持續時間",
|
||||||
"sleep_duration": "睡眠持續時間",
|
"sleep_duration": "睡眠持續時間",
|
||||||
"awake_states": "清醒狀態*",
|
"awake_states": "清醒狀態*",
|
||||||
"sleep_states": "睡眠狀態*"
|
"sleep_states": "睡眠狀態*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "未知",
|
"Unknown": "未知",
|
||||||
"Sleep Tracking Started": "開始追蹤睡眠",
|
"Sleep Tracking Started": "開始追蹤睡眠",
|
||||||
"Sleep Tracking Stopped": "停止追蹤睡眠",
|
"Sleep Tracking Stopped": "停止追蹤睡眠",
|
||||||
"Sleep Tracking Paused": "暫停追蹤睡眠",
|
"Sleep Tracking Paused": "暫停追蹤睡眠",
|
||||||
"Sleep Tracking Resumed": "恢復追蹤睡眠",
|
"Sleep Tracking Resumed": "恢復追蹤睡眠",
|
||||||
"Alarm Snoozed": "鬧鐘貪睡",
|
"Alarm Snoozed": "鬧鐘貪睡",
|
||||||
"Snooze Canceled": "取消貪睡",
|
"Snooze Canceled": "取消貪睡",
|
||||||
"Time for Bed": "該睡覺了",
|
"Time for Bed": "該睡覺了",
|
||||||
"Alarm Alert Started": "鬧鐘警報開始",
|
"Alarm Alert Started": "鬧鐘警報開始",
|
||||||
"Alarm Dismissed": "鬧鐘解除",
|
"Alarm Dismissed": "鬧鐘解除",
|
||||||
"Skip Next Alarm": "跳過下一個鬧鐘",
|
"Skip Next Alarm": "跳過下一個鬧鐘",
|
||||||
"Show Skip Next Alarm": "顯示跳過下一個鬧鐘",
|
"Show Skip Next Alarm": "顯示跳過下一個鬧鐘",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "智能期間",
|
"Smart Period": "智能期間",
|
||||||
"Before Smart Period": "在智能期間之前",
|
"Before Smart Period": "在智能期間之前",
|
||||||
"Lullaby Start": "搖籃曲開始",
|
"Lullaby Start": "搖籃曲開始",
|
||||||
"Lullaby Stop": "搖籃曲停止",
|
"Lullaby Stop": "搖籃曲停止",
|
||||||
"Lullaby Volume Down": "搖籃曲音量下降",
|
"Lullaby Volume Down": "搖籃曲音量下降",
|
||||||
"Deep Sleep": "深度睡眠",
|
"Deep Sleep": "深度睡眠",
|
||||||
"Light Sleep": "淺度睡眠",
|
"Light Sleep": "淺度睡眠",
|
||||||
"Awake": "清醒",
|
"Awake": "清醒",
|
||||||
"Not Awake": "未清醒",
|
"Not Awake": "未清醒",
|
||||||
"Apnea Alarm": "呼吸暫停警報",
|
"Apnea Alarm": "呼吸暫停警報",
|
||||||
"Antisnoring": "防打鼾",
|
"Antisnoring": "防打鼾",
|
||||||
"Before Alarm": "在鬧鐘之前",
|
"Before Alarm": "在鬧鐘之前",
|
||||||
"Snore Detected": "檢測到打鼾",
|
"Snore Detected": "檢測到打鼾",
|
||||||
"Talk Detected": "檢測到說話",
|
"Talk Detected": "檢測到說話",
|
||||||
"Cough Detected": "檢測到咳嗽",
|
"Cough Detected": "檢測到咳嗽",
|
||||||
"Baby Cry Detected": "檢測到嬰兒哭聲",
|
"Baby Cry Detected": "檢測到嬰兒哭聲",
|
||||||
"Laugh Detected": "檢測到笑聲",
|
"Laugh Detected": "檢測到笑聲",
|
||||||
"Alarm Rescheduled": "鬧鐘重新安排",
|
"Alarm Rescheduled": "鬧鐘重新安排",
|
||||||
"None": "無"
|
"None": "無"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Sleep As Android 상태",
|
"title": "sleepd - Sleep As Android 상태",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "SAAS - Sleep As Android 상태 설정",
|
"title": "sleepd - Sleep As Android 상태 설정",
|
||||||
"description": "SAAS 통합의 기본 설정을 구성합니다.",
|
"description": "sleepd 통합의 기본 설정을 구성합니다.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "센서 이름",
|
"name": "센서 이름",
|
||||||
"topic_template": "Sleep As Android 이벤트의 MQTT 주제",
|
"topic_template": "Sleep As Android 이벤트의 MQTT 주제",
|
||||||
"qos": "MQTT의 서비스 품질(QoS)",
|
"qos": "MQTT의 서비스 품질(QoS)",
|
||||||
"awake_duration": "깨어 있는 시간",
|
"awake_duration": "깨어 있는 시간",
|
||||||
"sleep_duration": "수면 시간",
|
"sleep_duration": "수면 시간",
|
||||||
"awake_states": "깨어 있는 상태*",
|
"awake_states": "깨어 있는 상태*",
|
||||||
"sleep_states": "수면 상태*"
|
"sleep_states": "수면 상태*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS 통합 설정",
|
"title": "sleepd 통합 설정",
|
||||||
"description": "SAAS 통합의 기본 설정을 구성합니다.",
|
"description": "sleepd 통합의 기본 설정을 구성합니다.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "센서 이름",
|
"name": "센서 이름",
|
||||||
"topic_template": "Sleep As Android에서의 MQTT 주제",
|
"topic_template": "Sleep As Android에서의 MQTT 주제",
|
||||||
"qos": "MQTT의 서비스 품질(QoS)",
|
"qos": "MQTT의 서비스 품질(QoS)",
|
||||||
"awake_duration": "깨어 있는 시간",
|
"awake_duration": "깨어 있는 시간",
|
||||||
"sleep_duration": "수면 시간",
|
"sleep_duration": "수면 시간",
|
||||||
"awake_states": "깨어 있는 상태*",
|
"awake_states": "깨어 있는 상태*",
|
||||||
"sleep_states": "수면 상태*"
|
"sleep_states": "수면 상태*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "알 수 없음",
|
"Unknown": "알 수 없음",
|
||||||
"Sleep Tracking Started": "수면 추적 시작",
|
"Sleep Tracking Started": "수면 추적 시작",
|
||||||
"Sleep Tracking Stopped": "수면 추적 중지",
|
"Sleep Tracking Stopped": "수면 추적 중지",
|
||||||
"Sleep Tracking Paused": "수면 추적 일시 중지",
|
"Sleep Tracking Paused": "수면 추적 일시 중지",
|
||||||
"Sleep Tracking Resumed": "수면 추적 재개",
|
"Sleep Tracking Resumed": "수면 추적 재개",
|
||||||
"Alarm Snoozed": "알람 스누즈",
|
"Alarm Snoozed": "알람 스누즈",
|
||||||
"Snooze Canceled": "스누즈 취소",
|
"Snooze Canceled": "스누즈 취소",
|
||||||
"Time for Bed": "침대 시간",
|
"Time for Bed": "침대 시간",
|
||||||
"Alarm Alert Started": "알람 경고 시작",
|
"Alarm Alert Started": "알람 경고 시작",
|
||||||
"Alarm Dismissed": "알람 해제",
|
"Alarm Dismissed": "알람 해제",
|
||||||
"Skip Next Alarm": "다음 알람 건너뛰기",
|
"Skip Next Alarm": "다음 알람 건너뛰기",
|
||||||
"Show Skip Next Alarm": "다음 알람 건너뛰기 표시",
|
"Show Skip Next Alarm": "다음 알람 건너뛰기 표시",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "스마트 기간",
|
"Smart Period": "스마트 기간",
|
||||||
"Before Smart Period": "스마트 기간 이전",
|
"Before Smart Period": "스마트 기간 이전",
|
||||||
"Lullaby Start": "자장가 시작",
|
"Lullaby Start": "자장가 시작",
|
||||||
"Lullaby Stop": "자장가 중지",
|
"Lullaby Stop": "자장가 중지",
|
||||||
"Lullaby Volume Down": "자장가 볼륨 다운",
|
"Lullaby Volume Down": "자장가 볼륨 다운",
|
||||||
"Deep Sleep": "깊은 잠",
|
"Deep Sleep": "깊은 잠",
|
||||||
"Light Sleep": "얕은 잠",
|
"Light Sleep": "얕은 잠",
|
||||||
"Awake": "깨어 있음",
|
"Awake": "깨어 있음",
|
||||||
"Not Awake": "깨어 있지 않음",
|
"Not Awake": "깨어 있지 않음",
|
||||||
"Apnea Alarm": "무호흡 알람",
|
"Apnea Alarm": "무호흡 알람",
|
||||||
"Antisnoring": "코골이 방지",
|
"Antisnoring": "코골이 방지",
|
||||||
"Before Alarm": "알람 이전",
|
"Before Alarm": "알람 이전",
|
||||||
"Snore Detected": "코골이 감지됨",
|
"Snore Detected": "코골이 감지됨",
|
||||||
"Talk Detected": "대화 감지됨",
|
"Talk Detected": "대화 감지됨",
|
||||||
"Cough Detected": "기침 감지됨",
|
"Cough Detected": "기침 감지됨",
|
||||||
"Baby Cry Detected": "아기 울음소리 감지됨",
|
"Baby Cry Detected": "아기 울음소리 감지됨",
|
||||||
"Laugh Detected": "웃음소리 감지됨",
|
"Laugh Detected": "웃음소리 감지됨",
|
||||||
"Alarm Rescheduled": "알람 재스케줄",
|
"Alarm Rescheduled": "알람 재스케줄",
|
||||||
"None": "없음"
|
"None": "없음"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "Configuratie voor SAAS - Sleep As Android Status",
|
"title": "Configuratie voor sleepd - Sleep As Android Status",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Configuratie voor SAAS - Sleep As Android Status",
|
"title": "Configuratie voor sleepd - Sleep As Android Status",
|
||||||
"description": "Configureer de basisinstellingen voor de SAAS-integratie.",
|
"description": "Configureer de basisinstellingen voor de sleepd-integratie.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Naam voor Sensor",
|
"name": "Naam voor Sensor",
|
||||||
"topic_template": "MQTT-onderwerp voor Sleep As Android Gebeurtenissen",
|
"topic_template": "MQTT-onderwerp voor Sleep As Android Gebeurtenissen",
|
||||||
"qos": "Quality of Service (QoS) voor MQTT",
|
"qos": "Quality of Service (QoS) voor MQTT",
|
||||||
"awake_duration": "Wakker Duur",
|
"awake_duration": "Wakker Duur",
|
||||||
"sleep_duration": "Slaapduur",
|
"sleep_duration": "Slaapduur",
|
||||||
"awake_states": "Wakker Staten*",
|
"awake_states": "Wakker Staten*",
|
||||||
"sleep_states": "Slaap Staten*"
|
"sleep_states": "Slaap Staten*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS-Integratie-Instellingen",
|
"title": "sleepd-Integratie-Instellingen",
|
||||||
"description": "Configureer de basisinstellingen voor de SAAS-integratie.",
|
"description": "Configureer de basisinstellingen voor de sleepd-integratie.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Naam voor Sensor",
|
"name": "Naam voor Sensor",
|
||||||
"topic_template": "MQTT-Onderwerp (van Sleep As Android)",
|
"topic_template": "MQTT-Onderwerp (van Sleep As Android)",
|
||||||
"qos": "MQTT Quality of Service (QoS)",
|
"qos": "MQTT Quality of Service (QoS)",
|
||||||
"awake_duration": "Wakker Duur",
|
"awake_duration": "Wakker Duur",
|
||||||
"sleep_duration": "Slaapduur",
|
"sleep_duration": "Slaapduur",
|
||||||
"awake_states": "Wakker Staten*",
|
"awake_states": "Wakker Staten*",
|
||||||
"sleep_states": "Slaap Staten*"
|
"sleep_states": "Slaap Staten*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Onbekend",
|
"Unknown": "Onbekend",
|
||||||
"Sleep Tracking Started": "Slaaptracking Gestart",
|
"Sleep Tracking Started": "Slaaptracking Gestart",
|
||||||
"Sleep Tracking Stopped": "Slaaptracking Gestopt",
|
"Sleep Tracking Stopped": "Slaaptracking Gestopt",
|
||||||
"Sleep Tracking Paused": "Slaaptracking Gepauzeerd",
|
"Sleep Tracking Paused": "Slaaptracking Gepauzeerd",
|
||||||
"Sleep Tracking Resumed": "Slaaptracking Hervat",
|
"Sleep Tracking Resumed": "Slaaptracking Hervat",
|
||||||
"Alarm Snoozed": "Alarm Gesnoozed",
|
"Alarm Snoozed": "Alarm Gesnoozed",
|
||||||
"Snooze Canceled": "Snooze Geannuleerd",
|
"Snooze Canceled": "Snooze Geannuleerd",
|
||||||
"Time for Bed": "Tijd om te Gaan Slapen",
|
"Time for Bed": "Tijd om te Gaan Slapen",
|
||||||
"Alarm Alert Started": "Alarm Alert Gestart",
|
"Alarm Alert Started": "Alarm Alert Gestart",
|
||||||
"Alarm Dismissed": "Alarm Afgeslagen",
|
"Alarm Dismissed": "Alarm Afgeslagen",
|
||||||
"Skip Next Alarm": "Volgende Alarm Overslaan",
|
"Skip Next Alarm": "Volgende Alarm Overslaan",
|
||||||
"Show Skip Next Alarm": "Toon 'Volgende Alarm Overslaan'",
|
"Show Skip Next Alarm": "Toon 'Volgende Alarm Overslaan'",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Slimme Periode",
|
"Smart Period": "Slimme Periode",
|
||||||
"Before Smart Period": "Voor Slimme Periode",
|
"Before Smart Period": "Voor Slimme Periode",
|
||||||
"Lullaby Start": "Slaapliedje Start",
|
"Lullaby Start": "Slaapliedje Start",
|
||||||
"Lullaby Stop": "Slaapliedje Stop",
|
"Lullaby Stop": "Slaapliedje Stop",
|
||||||
"Lullaby Volume Down": "Slaapliedje Volume Omlaag",
|
"Lullaby Volume Down": "Slaapliedje Volume Omlaag",
|
||||||
"Deep Sleep": "Diepe Slaap",
|
"Deep Sleep": "Diepe Slaap",
|
||||||
"Light Sleep": "Lichte Slaap",
|
"Light Sleep": "Lichte Slaap",
|
||||||
"Awake": "Wakker",
|
"Awake": "Wakker",
|
||||||
"Not Awake": "Niet Wakker",
|
"Not Awake": "Niet Wakker",
|
||||||
"Apnea Alarm": "Apneu Alarm",
|
"Apnea Alarm": "Apneu Alarm",
|
||||||
"Antisnoring": "Antisnurken",
|
"Antisnoring": "Antisnurken",
|
||||||
"Before Alarm": "Voor Alarm",
|
"Before Alarm": "Voor Alarm",
|
||||||
"Snore Detected": "Snurken Gedetecteerd",
|
"Snore Detected": "Snurken Gedetecteerd",
|
||||||
"Talk Detected": "Gesprek Gedetecteerd",
|
"Talk Detected": "Gesprek Gedetecteerd",
|
||||||
"Cough Detected": "Hoesten Gedetecteerd",
|
"Cough Detected": "Hoesten Gedetecteerd",
|
||||||
"Baby Cry Detected": "Baby Huilen Gedetecteerd",
|
"Baby Cry Detected": "Baby Huilen Gedetecteerd",
|
||||||
"Laugh Detected": "Lachen Gedetecteerd",
|
"Laugh Detected": "Lachen Gedetecteerd",
|
||||||
"Alarm Rescheduled": "Alarm Herpland",
|
"Alarm Rescheduled": "Alarm Herpland",
|
||||||
"None": "Geen"
|
"None": "Geen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Status Sleep As Android",
|
"title": "sleepd - Status Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Konfiguracja dla SAAS - Status Sleep As Android",
|
"title": "Konfiguracja dla sleepd - Status Sleep As Android",
|
||||||
"description": "Konfiguracja podstawowych ustawień dla integracji SAAS.",
|
"description": "Konfiguracja podstawowych ustawień dla integracji sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nazwa dla czujnika",
|
"name": "Nazwa dla czujnika",
|
||||||
"topic_template": "Temat MQTT dla zdarzeń Sleep As Android",
|
"topic_template": "Temat MQTT dla zdarzeń Sleep As Android",
|
||||||
"qos": "Jakość usługi (QoS) dla MQTT",
|
"qos": "Jakość usługi (QoS) dla MQTT",
|
||||||
"awake_duration": "Czas czuwania",
|
"awake_duration": "Czas czuwania",
|
||||||
"sleep_duration": "Czas snu",
|
"sleep_duration": "Czas snu",
|
||||||
"awake_states": "Stany czuwania*",
|
"awake_states": "Stany czuwania*",
|
||||||
"sleep_states": "Stany snu*"
|
"sleep_states": "Stany snu*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "Ustawienia integracji SAAS",
|
"title": "Ustawienia integracji sleepd",
|
||||||
"description": "Konfiguracja podstawowych ustawień dla integracji SAAS.",
|
"description": "Konfiguracja podstawowych ustawień dla integracji sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nazwa dla czujnika",
|
"name": "Nazwa dla czujnika",
|
||||||
"topic_template": "Temat MQTT (od Sleep As Android)",
|
"topic_template": "Temat MQTT (od Sleep As Android)",
|
||||||
"qos": "Jakość usługi (QoS) MQTT",
|
"qos": "Jakość usługi (QoS) MQTT",
|
||||||
"awake_duration": "Czas czuwania",
|
"awake_duration": "Czas czuwania",
|
||||||
"sleep_duration": "Czas snu",
|
"sleep_duration": "Czas snu",
|
||||||
"awake_states": "Stany czuwania*",
|
"awake_states": "Stany czuwania*",
|
||||||
"sleep_states": "Stany snu*"
|
"sleep_states": "Stany snu*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Nieznane",
|
"Unknown": "Nieznane",
|
||||||
"Sleep Tracking Started": "Rozpoczęto śledzenie snu",
|
"Sleep Tracking Started": "Rozpoczęto śledzenie snu",
|
||||||
"Sleep Tracking Stopped": "Zatrzymano śledzenie snu",
|
"Sleep Tracking Stopped": "Zatrzymano śledzenie snu",
|
||||||
"Sleep Tracking Paused": "Wstrzymano śledzenie snu",
|
"Sleep Tracking Paused": "Wstrzymano śledzenie snu",
|
||||||
"Sleep Tracking Resumed": "Wznowiono śledzenie snu",
|
"Sleep Tracking Resumed": "Wznowiono śledzenie snu",
|
||||||
"Alarm Snoozed": "Alarm w drzemce",
|
"Alarm Snoozed": "Alarm w drzemce",
|
||||||
"Snooze Canceled": "Drzemka anulowana",
|
"Snooze Canceled": "Drzemka anulowana",
|
||||||
"Time for Bed": "Czas na sen",
|
"Time for Bed": "Czas na sen",
|
||||||
"Alarm Alert Started": "Rozpoczęto alarm",
|
"Alarm Alert Started": "Rozpoczęto alarm",
|
||||||
"Alarm Dismissed": "Alarm wyłączony",
|
"Alarm Dismissed": "Alarm wyłączony",
|
||||||
"Skip Next Alarm": "Pomiń następny alarm",
|
"Skip Next Alarm": "Pomiń następny alarm",
|
||||||
"Show Skip Next Alarm": "Pokaż pomiń następny alarm",
|
"Show Skip Next Alarm": "Pokaż pomiń następny alarm",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Inteligentny okres",
|
"Smart Period": "Inteligentny okres",
|
||||||
"Before Smart Period": "Przed inteligentnym okresem",
|
"Before Smart Period": "Przed inteligentnym okresem",
|
||||||
"Lullaby Start": "Rozpoczęcie kołysanki",
|
"Lullaby Start": "Rozpoczęcie kołysanki",
|
||||||
"Lullaby Stop": "Zakończenie kołysanki",
|
"Lullaby Stop": "Zakończenie kołysanki",
|
||||||
"Lullaby Volume Down": "Zmniejsz głośność kołysanki",
|
"Lullaby Volume Down": "Zmniejsz głośność kołysanki",
|
||||||
"Deep Sleep": "Głęboki sen",
|
"Deep Sleep": "Głęboki sen",
|
||||||
"Light Sleep": "Lekki sen",
|
"Light Sleep": "Lekki sen",
|
||||||
"Awake": "Czuwanie",
|
"Awake": "Czuwanie",
|
||||||
"Not Awake": "Nie czuwa",
|
"Not Awake": "Nie czuwa",
|
||||||
"Apnea Alarm": "Alarm apnei",
|
"Apnea Alarm": "Alarm apnei",
|
||||||
"Antisnoring": "Przeciw chrapaniu",
|
"Antisnoring": "Przeciw chrapaniu",
|
||||||
"Before Alarm": "Przed alarmem",
|
"Before Alarm": "Przed alarmem",
|
||||||
"Snore Detected": "Wykryto chrapanie",
|
"Snore Detected": "Wykryto chrapanie",
|
||||||
"Talk Detected": "Wykryto mówienie",
|
"Talk Detected": "Wykryto mówienie",
|
||||||
"Cough Detected": "Wykryto kaszel",
|
"Cough Detected": "Wykryto kaszel",
|
||||||
"Baby Cry Detected": "Wykryto płacz dziecka",
|
"Baby Cry Detected": "Wykryto płacz dziecka",
|
||||||
"Laugh Detected": "Wykryto śmiech",
|
"Laugh Detected": "Wykryto śmiech",
|
||||||
"Alarm Rescheduled": "Alarm został przesunięty",
|
"Alarm Rescheduled": "Alarm został przesunięty",
|
||||||
"None": "Brak"
|
"None": "Brak"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Status do Sleep As Android",
|
"title": "sleepd - Status do Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Configuração para SAAS - Status do Sleep As Android",
|
"title": "Configuração para sleepd - Status do Sleep As Android",
|
||||||
"description": "Configure as configurações básicas para a integração SAAS.",
|
"description": "Configure as configurações básicas para a integração sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nome para Sensor",
|
"name": "Nome para Sensor",
|
||||||
"topic_template": "Tópico MQTT para Eventos do Sleep As Android",
|
"topic_template": "Tópico MQTT para Eventos do Sleep As Android",
|
||||||
"qos": "Qualidade de Serviço (QoS) para MQTT",
|
"qos": "Qualidade de Serviço (QoS) para MQTT",
|
||||||
"awake_duration": "Duração Acordado",
|
"awake_duration": "Duração Acordado",
|
||||||
"sleep_duration": "Duração Adormecido",
|
"sleep_duration": "Duração Adormecido",
|
||||||
"awake_states": "Estados Acordado*",
|
"awake_states": "Estados Acordado*",
|
||||||
"sleep_states": "Estados Adormecido*"
|
"sleep_states": "Estados Adormecido*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "Configurações de Integração SAAS",
|
"title": "Configurações de Integração sleepd",
|
||||||
"description": "Configure as configurações básicas para a integração SAAS.",
|
"description": "Configure as configurações básicas para a integração sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nome para Sensor",
|
"name": "Nome para Sensor",
|
||||||
"topic_template": "Tópico MQTT (do Sleep As Android)",
|
"topic_template": "Tópico MQTT (do Sleep As Android)",
|
||||||
"qos": "Qualidade de Serviço (QoS) MQTT",
|
"qos": "Qualidade de Serviço (QoS) MQTT",
|
||||||
"awake_duration": "Duração Acordado",
|
"awake_duration": "Duração Acordado",
|
||||||
"sleep_duration": "Duração Adormecido",
|
"sleep_duration": "Duração Adormecido",
|
||||||
"awake_states": "Estados Acordado*",
|
"awake_states": "Estados Acordado*",
|
||||||
"sleep_states": "Estados Adormecido*"
|
"sleep_states": "Estados Adormecido*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Desconhecido",
|
"Unknown": "Desconhecido",
|
||||||
"Sleep Tracking Started": "Monitoramento do Sono Iniciado",
|
"Sleep Tracking Started": "Monitoramento do Sono Iniciado",
|
||||||
"Sleep Tracking Stopped": "Monitoramento do Sono Parado",
|
"Sleep Tracking Stopped": "Monitoramento do Sono Parado",
|
||||||
"Sleep Tracking Paused": "Monitoramento do Sono Pausado",
|
"Sleep Tracking Paused": "Monitoramento do Sono Pausado",
|
||||||
"Sleep Tracking Resumed": "Monitoramento do Sono Retomado",
|
"Sleep Tracking Resumed": "Monitoramento do Sono Retomado",
|
||||||
"Alarm Snoozed": "Alarme Adiado",
|
"Alarm Snoozed": "Alarme Adiado",
|
||||||
"Snooze Canceled": "Adiamento Cancelado",
|
"Snooze Canceled": "Adiamento Cancelado",
|
||||||
"Time for Bed": "Hora de Dormir",
|
"Time for Bed": "Hora de Dormir",
|
||||||
"Alarm Alert Started": "Alerta de Alarme Iniciado",
|
"Alarm Alert Started": "Alerta de Alarme Iniciado",
|
||||||
"Alarm Dismissed": "Alarme Desligado",
|
"Alarm Dismissed": "Alarme Desligado",
|
||||||
"Skip Next Alarm": "Pular Próximo Alarme",
|
"Skip Next Alarm": "Pular Próximo Alarme",
|
||||||
"Show Skip Next Alarm": "Mostrar 'Pular Próximo Alarme'",
|
"Show Skip Next Alarm": "Mostrar 'Pular Próximo Alarme'",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Período Inteligente",
|
"Smart Period": "Período Inteligente",
|
||||||
"Before Smart Period": "Antes do Período Inteligente",
|
"Before Smart Period": "Antes do Período Inteligente",
|
||||||
"Lullaby Start": "Início de Canção de Ninar",
|
"Lullaby Start": "Início de Canção de Ninar",
|
||||||
"Lullaby Stop": "Fim de Canção de Ninar",
|
"Lullaby Stop": "Fim de Canção de Ninar",
|
||||||
"Lullaby Volume Down": "Diminuir Volume da Canção de Ninar",
|
"Lullaby Volume Down": "Diminuir Volume da Canção de Ninar",
|
||||||
"Deep Sleep": "Sono Profundo",
|
"Deep Sleep": "Sono Profundo",
|
||||||
"Light Sleep": "Sono Leve",
|
"Light Sleep": "Sono Leve",
|
||||||
"Awake": "Acordado",
|
"Awake": "Acordado",
|
||||||
"Not Awake": "Não Acordado",
|
"Not Awake": "Não Acordado",
|
||||||
"Apnea Alarm": "Alarme de Apneia",
|
"Apnea Alarm": "Alarme de Apneia",
|
||||||
"Antisnoring": "Antirronco",
|
"Antisnoring": "Antirronco",
|
||||||
"Before Alarm": "Antes do Alarme",
|
"Before Alarm": "Antes do Alarme",
|
||||||
"Snore Detected": "Ronco Detectado",
|
"Snore Detected": "Ronco Detectado",
|
||||||
"Talk Detected": "Conversa Detectada",
|
"Talk Detected": "Conversa Detectada",
|
||||||
"Cough Detected": "Tosse Detectada",
|
"Cough Detected": "Tosse Detectada",
|
||||||
"Baby Cry Detected": "Choro de Bebê Detectado",
|
"Baby Cry Detected": "Choro de Bebê Detectado",
|
||||||
"Laugh Detected": "Risada Detectada",
|
"Laugh Detected": "Risada Detectada",
|
||||||
"Alarm Rescheduled": "Alarme Remarcado",
|
"Alarm Rescheduled": "Alarme Remarcado",
|
||||||
"None": "Nenhum"
|
"None": "Nenhum"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - 睡眠如 Android 狀態",
|
"title": "sleepd - 睡眠如 Android 狀態",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "SAAS - 睡眠如 Android 狀態配置",
|
"title": "sleepd - 睡眠如 Android 狀態配置",
|
||||||
"description": "配置 SAAS 整合的基本設置。",
|
"description": "配置 sleepd 整合的基本設置。",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "感應器名稱",
|
"name": "感應器名稱",
|
||||||
"topic_template": "睡眠如 Android 事件的 MQTT 主題",
|
"topic_template": "睡眠如 Android 事件的 MQTT 主題",
|
||||||
"qos": "MQTT 的服務質量 (QoS)",
|
"qos": "MQTT 的服務質量 (QoS)",
|
||||||
"awake_duration": "清醒持續時間",
|
"awake_duration": "清醒持續時間",
|
||||||
"sleep_duration": "睡眠持續時間",
|
"sleep_duration": "睡眠持續時間",
|
||||||
"awake_states": "清醒狀態*",
|
"awake_states": "清醒狀態*",
|
||||||
"sleep_states": "睡眠狀態*"
|
"sleep_states": "睡眠狀態*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS 整合設置",
|
"title": "sleepd 整合設置",
|
||||||
"description": "配置 SAAS 整合的基本設置。",
|
"description": "配置 sleepd 整合的基本設置。",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "感應器名稱",
|
"name": "感應器名稱",
|
||||||
"topic_template": "MQTT 主題(來自睡眠如 Android)",
|
"topic_template": "MQTT 主題(來自睡眠如 Android)",
|
||||||
"qos": "MQTT 服務質量 (QoS)",
|
"qos": "MQTT 服務質量 (QoS)",
|
||||||
"awake_duration": "清醒持續時間",
|
"awake_duration": "清醒持續時間",
|
||||||
"sleep_duration": "睡眠持續時間",
|
"sleep_duration": "睡眠持續時間",
|
||||||
"awake_states": "清醒狀態*",
|
"awake_states": "清醒狀態*",
|
||||||
"sleep_states": "睡眠狀態*"
|
"sleep_states": "睡眠狀態*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "未知",
|
"Unknown": "未知",
|
||||||
"Sleep Tracking Started": "開始追蹤睡眠",
|
"Sleep Tracking Started": "開始追蹤睡眠",
|
||||||
"Sleep Tracking Stopped": "停止追蹤睡眠",
|
"Sleep Tracking Stopped": "停止追蹤睡眠",
|
||||||
"Sleep Tracking Paused": "暫停追蹤睡眠",
|
"Sleep Tracking Paused": "暫停追蹤睡眠",
|
||||||
"Sleep Tracking Resumed": "恢復追蹤睡眠",
|
"Sleep Tracking Resumed": "恢復追蹤睡眠",
|
||||||
"Alarm Snoozed": "鬧鐘貪睡",
|
"Alarm Snoozed": "鬧鐘貪睡",
|
||||||
"Snooze Canceled": "取消貪睡",
|
"Snooze Canceled": "取消貪睡",
|
||||||
"Time for Bed": "該睡覺了",
|
"Time for Bed": "該睡覺了",
|
||||||
"Alarm Alert Started": "鬧鐘警報開始",
|
"Alarm Alert Started": "鬧鐘警報開始",
|
||||||
"Alarm Dismissed": "鬧鐘解除",
|
"Alarm Dismissed": "鬧鐘解除",
|
||||||
"Skip Next Alarm": "跳過下一個鬧鐘",
|
"Skip Next Alarm": "跳過下一個鬧鐘",
|
||||||
"Show Skip Next Alarm": "顯示跳過下一個鬧鐘",
|
"Show Skip Next Alarm": "顯示跳過下一個鬧鐘",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "智能期間",
|
"Smart Period": "智能期間",
|
||||||
"Before Smart Period": "在智能期間之前",
|
"Before Smart Period": "在智能期間之前",
|
||||||
"Lullaby Start": "搖籃曲開始",
|
"Lullaby Start": "搖籃曲開始",
|
||||||
"Lullaby Stop": "搖籃曲停止",
|
"Lullaby Stop": "搖籃曲停止",
|
||||||
"Lullaby Volume Down": "搖籃曲音量下降",
|
"Lullaby Volume Down": "搖籃曲音量下降",
|
||||||
"Deep Sleep": "深度睡眠",
|
"Deep Sleep": "深度睡眠",
|
||||||
"Light Sleep": "淺度睡眠",
|
"Light Sleep": "淺度睡眠",
|
||||||
"Awake": "清醒",
|
"Awake": "清醒",
|
||||||
"Not Awake": "未清醒",
|
"Not Awake": "未清醒",
|
||||||
"Apnea Alarm": "呼吸暫停警報",
|
"Apnea Alarm": "呼吸暫停警報",
|
||||||
"Antisnoring": "防打鼾",
|
"Antisnoring": "防打鼾",
|
||||||
"Before Alarm": "在鬧鐘之前",
|
"Before Alarm": "在鬧鐘之前",
|
||||||
"Snore Detected": "檢測到打鼾",
|
"Snore Detected": "檢測到打鼾",
|
||||||
"Talk Detected": "檢測到說話",
|
"Talk Detected": "檢測到說話",
|
||||||
"Cough Detected": "檢測到咳嗽",
|
"Cough Detected": "檢測到咳嗽",
|
||||||
"Baby Cry Detected": "檢測到嬰兒哭聲",
|
"Baby Cry Detected": "檢測到嬰兒哭聲",
|
||||||
"Laugh Detected": "檢測到笑聲",
|
"Laugh Detected": "檢測到笑聲",
|
||||||
"Alarm Rescheduled": "鬧鐘重新安排",
|
"Alarm Rescheduled": "鬧鐘重新安排",
|
||||||
"None": "無"
|
"None": "無"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Статус Sleep As Android",
|
"title": "sleepd - Статус Sleep As Android",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Конфигурация для SAAS - Статус Sleep As Android",
|
"title": "Конфигурация для sleepd - Статус Sleep As Android",
|
||||||
"description": "Настройка основных параметров для интеграции SAAS.",
|
"description": "Настройка основных параметров для интеграции sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Имя для датчика",
|
"name": "Имя для датчика",
|
||||||
"topic_template": "Тема MQTT для событий Sleep As Android",
|
"topic_template": "Тема MQTT для событий Sleep As Android",
|
||||||
|
|
@ -20,8 +20,8 @@
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "Настройки интеграции SAAS",
|
"title": "Настройки интеграции sleepd",
|
||||||
"description": "Настройка основных параметров для интеграции SAAS.",
|
"description": "Настройка основных параметров для интеграции sleepd.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Имя для датчика",
|
"name": "Имя для датчика",
|
||||||
"topic_template": "Тема MQTT (от Sleep As Android)",
|
"topic_template": "Тема MQTT (от Sleep As Android)",
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Sleep As Android Status",
|
"title": "sleepd - Sleep As Android Status",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "Konfiguration för SAAS - Sleep As Android Status",
|
"title": "Konfiguration för sleepd - Sleep As Android Status",
|
||||||
"description": "Konfigurera de grundläggande inställningarna för SAAS-integrationen.",
|
"description": "Konfigurera de grundläggande inställningarna för sleepd-integrationen.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Namn för Sensor",
|
"name": "Namn för Sensor",
|
||||||
"topic_template": "MQTT Ämne för Sleep As Android Händelser",
|
"topic_template": "MQTT Ämne för Sleep As Android Händelser",
|
||||||
"qos": "Kvalitet på Tjänst (QoS) för MQTT",
|
"qos": "Kvalitet på Tjänst (QoS) för MQTT",
|
||||||
"awake_duration": "Vaken Varaktighet",
|
"awake_duration": "Vaken Varaktighet",
|
||||||
"sleep_duration": "Sovande Varaktighet",
|
"sleep_duration": "Sovande Varaktighet",
|
||||||
"awake_states": "Vakna Tillstånd*",
|
"awake_states": "Vakna Tillstånd*",
|
||||||
"sleep_states": "Sovande Tillstånd*"
|
"sleep_states": "Sovande Tillstånd*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS Integrationsinställningar",
|
"title": "sleepd Integrationsinställningar",
|
||||||
"description": "Konfigurera de grundläggande inställningarna för SAAS-integrationen.",
|
"description": "Konfigurera de grundläggande inställningarna för sleepd-integrationen.",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Namn för Sensor",
|
"name": "Namn för Sensor",
|
||||||
"topic_template": "MQTT Ämne (från Sleep As Android)",
|
"topic_template": "MQTT Ämne (från Sleep As Android)",
|
||||||
"qos": "MQTT Kvalitet på Tjänst (QoS)",
|
"qos": "MQTT Kvalitet på Tjänst (QoS)",
|
||||||
"awake_duration": "Vaken Varaktighet",
|
"awake_duration": "Vaken Varaktighet",
|
||||||
"sleep_duration": "Sovande Varaktighet",
|
"sleep_duration": "Sovande Varaktighet",
|
||||||
"awake_states": "Vakna Tillstånd*",
|
"awake_states": "Vakna Tillstånd*",
|
||||||
"sleep_states": "Sovande Tillstånd*"
|
"sleep_states": "Sovande Tillstånd*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "Okänd",
|
"Unknown": "Okänd",
|
||||||
"Sleep Tracking Started": "Sömnmätning Startad",
|
"Sleep Tracking Started": "Sömnmätning Startad",
|
||||||
"Sleep Tracking Stopped": "Sömnmätning Stoppad",
|
"Sleep Tracking Stopped": "Sömnmätning Stoppad",
|
||||||
"Sleep Tracking Paused": "Sömnmätning Pausad",
|
"Sleep Tracking Paused": "Sömnmätning Pausad",
|
||||||
"Sleep Tracking Resumed": "Sömnmätning Återupptagen",
|
"Sleep Tracking Resumed": "Sömnmätning Återupptagen",
|
||||||
"Alarm Snoozed": "Alarm Snoozed",
|
"Alarm Snoozed": "Alarm Snoozed",
|
||||||
"Snooze Canceled": "Snooze Avbruten",
|
"Snooze Canceled": "Snooze Avbruten",
|
||||||
"Time for Bed": "Dags att Gå och Lägga Sig",
|
"Time for Bed": "Dags att Gå och Lägga Sig",
|
||||||
"Alarm Alert Started": "Alarmvarning Startad",
|
"Alarm Alert Started": "Alarmvarning Startad",
|
||||||
"Alarm Dismissed": "Alarm Avvisat",
|
"Alarm Dismissed": "Alarm Avvisat",
|
||||||
"Skip Next Alarm": "Hoppa över Nästa Alarm",
|
"Skip Next Alarm": "Hoppa över Nästa Alarm",
|
||||||
"Show Skip Next Alarm": "Visa 'Hoppa över Nästa Alarm'",
|
"Show Skip Next Alarm": "Visa 'Hoppa över Nästa Alarm'",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "Smart Period",
|
"Smart Period": "Smart Period",
|
||||||
"Before Smart Period": "Före Smart Period",
|
"Before Smart Period": "Före Smart Period",
|
||||||
"Lullaby Start": "Vaggvisa Start",
|
"Lullaby Start": "Vaggvisa Start",
|
||||||
"Lullaby Stop": "Vaggvisa Stopp",
|
"Lullaby Stop": "Vaggvisa Stopp",
|
||||||
"Lullaby Volume Down": "Vaggvisa Volym Ner",
|
"Lullaby Volume Down": "Vaggvisa Volym Ner",
|
||||||
"Deep Sleep": "Djup Sömn",
|
"Deep Sleep": "Djup Sömn",
|
||||||
"Light Sleep": "Lätt Sömn",
|
"Light Sleep": "Lätt Sömn",
|
||||||
"Awake": "Vaken",
|
"Awake": "Vaken",
|
||||||
"Not Awake": "Inte Vaken",
|
"Not Awake": "Inte Vaken",
|
||||||
"Apnea Alarm": "Apné Alarm",
|
"Apnea Alarm": "Apné Alarm",
|
||||||
"Antisnoring": "Antisnarkning",
|
"Antisnoring": "Antisnarkning",
|
||||||
"Before Alarm": "Före Alarm",
|
"Before Alarm": "Före Alarm",
|
||||||
"Snore Detected": "Snarkning Upptäckt",
|
"Snore Detected": "Snarkning Upptäckt",
|
||||||
"Talk Detected": "Prat Upptäckt",
|
"Talk Detected": "Prat Upptäckt",
|
||||||
"Cough Detected": "Hosta Upptäckt",
|
"Cough Detected": "Hosta Upptäckt",
|
||||||
"Baby Cry Detected": "Bebisgråt Upptäckt",
|
"Baby Cry Detected": "Bebisgråt Upptäckt",
|
||||||
"Laugh Detected": "Skratt Upptäckt",
|
"Laugh Detected": "Skratt Upptäckt",
|
||||||
"Alarm Rescheduled": "Alarm Omplanerat",
|
"Alarm Rescheduled": "Alarm Omplanerat",
|
||||||
"None": "Ingen"
|
"None": "Ingen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
"title": "SAAS - Sleep As Android 状态",
|
"title": "sleepd - Sleep As Android 状态",
|
||||||
"config": {
|
"config": {
|
||||||
"step": {
|
"step": {
|
||||||
"user": {
|
"user": {
|
||||||
"title": "SAAS - Sleep As Android 状态配置",
|
"title": "sleepd - Sleep As Android 状态配置",
|
||||||
"description": "配置 SAAS 集成的基本设置。",
|
"description": "配置 sleepd 集成的基本设置。",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "传感器名称",
|
"name": "传感器名称",
|
||||||
"topic_template": "Sleep As Android 事件的 MQTT 主题",
|
"topic_template": "Sleep As Android 事件的 MQTT 主题",
|
||||||
"qos": "MQTT 的服务质量 (QoS)",
|
"qos": "MQTT 的服务质量 (QoS)",
|
||||||
"awake_duration": "清醒持续时间",
|
"awake_duration": "清醒持续时间",
|
||||||
"sleep_duration": "睡眠持续时间",
|
"sleep_duration": "睡眠持续时间",
|
||||||
"awake_states": "清醒状态*",
|
"awake_states": "清醒状态*",
|
||||||
"sleep_states": "睡眠状态*"
|
"sleep_states": "睡眠状态*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"title": "SAAS 集成设置",
|
"title": "sleepd 集成设置",
|
||||||
"description": "配置 SAAS 集成的基本设置。",
|
"description": "配置 sleepd 集成的基本设置。",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "传感器名称",
|
"name": "传感器名称",
|
||||||
"topic_template": "Sleep As Android 的 MQTT 主题",
|
"topic_template": "Sleep As Android 的 MQTT 主题",
|
||||||
"qos": "MQTT 的服务质量 (QoS)",
|
"qos": "MQTT 的服务质量 (QoS)",
|
||||||
"awake_duration": "清醒持续时间",
|
"awake_duration": "清醒持续时间",
|
||||||
"sleep_duration": "睡眠持续时间",
|
"sleep_duration": "睡眠持续时间",
|
||||||
"awake_states": "清醒状态*",
|
"awake_states": "清醒状态*",
|
||||||
"sleep_states": "睡眠状态*"
|
"sleep_states": "睡眠状态*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"sensor": {
|
"sensor": {
|
||||||
"state": {
|
"state": {
|
||||||
"Unknown": "未知",
|
"Unknown": "未知",
|
||||||
"Sleep Tracking Started": "开始睡眠跟踪",
|
"Sleep Tracking Started": "开始睡眠跟踪",
|
||||||
"Sleep Tracking Stopped": "停止睡眠跟踪",
|
"Sleep Tracking Stopped": "停止睡眠跟踪",
|
||||||
"Sleep Tracking Paused": "暂停睡眠跟踪",
|
"Sleep Tracking Paused": "暂停睡眠跟踪",
|
||||||
"Sleep Tracking Resumed": "恢复睡眠跟踪",
|
"Sleep Tracking Resumed": "恢复睡眠跟踪",
|
||||||
"Alarm Snoozed": "闹钟贪睡",
|
"Alarm Snoozed": "闹钟贪睡",
|
||||||
"Snooze Canceled": "取消贪睡",
|
"Snooze Canceled": "取消贪睡",
|
||||||
"Time for Bed": "该睡觉了",
|
"Time for Bed": "该睡觉了",
|
||||||
"Alarm Alert Started": "闹钟警报开始",
|
"Alarm Alert Started": "闹钟警报开始",
|
||||||
"Alarm Dismissed": "闹钟解除",
|
"Alarm Dismissed": "闹钟解除",
|
||||||
"Skip Next Alarm": "跳过下一个闹钟",
|
"Skip Next Alarm": "跳过下一个闹钟",
|
||||||
"Show Skip Next Alarm": "显示跳过下一个闹钟",
|
"Show Skip Next Alarm": "显示跳过下一个闹钟",
|
||||||
"REM": "REM",
|
"REM": "REM",
|
||||||
"Smart Period": "智能周期",
|
"Smart Period": "智能周期",
|
||||||
"Before Smart Period": "在智能周期之前",
|
"Before Smart Period": "在智能周期之前",
|
||||||
"Lullaby Start": "开始摇篮曲",
|
"Lullaby Start": "开始摇篮曲",
|
||||||
"Lullaby Stop": "停止摇篮曲",
|
"Lullaby Stop": "停止摇篮曲",
|
||||||
"Lullaby Volume Down": "降低摇篮曲音量",
|
"Lullaby Volume Down": "降低摇篮曲音量",
|
||||||
"Deep Sleep": "深度睡眠",
|
"Deep Sleep": "深度睡眠",
|
||||||
"Light Sleep": "浅睡",
|
"Light Sleep": "浅睡",
|
||||||
"Awake": "清醒",
|
"Awake": "清醒",
|
||||||
"Not Awake": "未清醒",
|
"Not Awake": "未清醒",
|
||||||
"Apnea Alarm": "呼吸暂停警报",
|
"Apnea Alarm": "呼吸暂停警报",
|
||||||
"Antisnoring": "防打鼾",
|
"Antisnoring": "防打鼾",
|
||||||
"Before Alarm": "在闹钟之前",
|
"Before Alarm": "在闹钟之前",
|
||||||
"Snore Detected": "检测到打鼾",
|
"Snore Detected": "检测到打鼾",
|
||||||
"Talk Detected": "检测到说话",
|
"Talk Detected": "检测到说话",
|
||||||
"Cough Detected": "检测到咳嗽",
|
"Cough Detected": "检测到咳嗽",
|
||||||
"Baby Cry Detected": "检测到婴儿哭声",
|
"Baby Cry Detected": "检测到婴儿哭声",
|
||||||
"Laugh Detected": "检测到笑声",
|
"Laugh Detected": "检测到笑声",
|
||||||
"Alarm Rescheduled": "闹钟重新安排",
|
"Alarm Rescheduled": "闹钟重新安排",
|
||||||
"None": "无"
|
"None": "无"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"name": "SAAS - Sleep As Android Status",
|
"name": "sleepd - Sleep As Android Status",
|
||||||
"render_readme": true
|
"render_readme": true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue