iobroker.amazon-kids 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +109 -30
- package/admin/amazon-kids.png +0 -0
- package/admin/i18n/de/translations.json +15 -0
- package/admin/i18n/en/translations.json +15 -0
- package/admin/i18n/es/translations.json +15 -0
- package/admin/i18n/fr/translations.json +15 -0
- package/admin/i18n/it/translations.json +15 -0
- package/admin/i18n/nl/translations.json +15 -0
- package/admin/i18n/pl/translations.json +15 -0
- package/admin/i18n/pt/translations.json +15 -0
- package/admin/i18n/ru/translations.json +15 -0
- package/admin/i18n/uk/translations.json +15 -0
- package/admin/i18n/zh-cn/translations.json +15 -0
- package/admin/jsonConfig.json +130 -0
- package/io-package.json +198 -0
- package/lib/discover.js +188 -0
- package/lib/login.js +187 -0
- package/lib/parentDashboard.js +622 -0
- package/lib/schedule.js +234 -0
- package/lib/usage.js +42 -0
- package/main.js +1488 -0
- package/package.json +58 -8
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Henrik Schönhofen (backfisch88) <henrik.schoenhofen@icloud.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,45 +1,124 @@
|
|
|
1
|
-
|
|
1
|
+
<img src="admin/amazon-kids.png" alt="Logo" width="128">
|
|
2
|
+
|
|
3
|
+
# ioBroker.amazon-kids
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/iobroker.amazon-kids)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
Parental controls for Amazon Kids profiles (Fire tablets, Fire Kids tablets) in ioBroker.
|
|
9
|
+
|
|
10
|
+
I use the web endpoints of the [Amazon Kids Parent Dashboard](https://parents.amazon.com) for this. Amazon does not offer a public API, so the adapter can stop working whenever Amazon changes the dashboard. The endpoints come from the Python project [amazon_parent_dashboard](https://github.com/GrantGMiller/amazon_parent_dashboard).
|
|
11
|
+
|
|
12
|
+
This adapter is not affiliated with or endorsed by Amazon.
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
- Lists the child profiles of the Amazon household
|
|
17
|
+
- Reads the screen time limit of the current day
|
|
18
|
+
- Pauses and resumes the devices of a child
|
|
19
|
+
- Sends bonus time
|
|
20
|
+
|
|
21
|
+
## Setup
|
|
2
22
|
|
|
3
|
-
|
|
23
|
+
1. Select the Parent Dashboard address of your country in the instance settings (Germany: `https://eltern.amazon.de`) and start the instance.
|
|
24
|
+
2. Read the login address from the log or from the state `info.loginUrl`. It looks like `http://192.168.1.10:3457`.
|
|
25
|
+
3. Open that address on a phone or computer in your home network and sign in to Amazon.
|
|
26
|
+
4. Wait for the page that tells you the login was successful. The adapter starts reading the dashboard then.
|
|
4
27
|
|
|
5
|
-
|
|
28
|
+
The login works the same way as in the Alexa2 adapter: I use the library [alexa-cookie2](https://github.com/Apollon77/alexa-cookie), which registers the adapter as an app device in the Amazon account and renews the session cookies with the refresh token of that login. The login data is stored encrypted in the instance data directory.
|
|
6
29
|
|
|
7
|
-
|
|
30
|
+
The login page is only available while a login is pending. It is plain HTTP, so only open it inside your own network. Write `true` to `info.login` to sign in again at any time.
|
|
8
31
|
|
|
9
|
-
|
|
32
|
+
### Alternative: paste session cookies
|
|
10
33
|
|
|
11
|
-
|
|
12
|
-
1. Configure OIDC trusted publishing for the package name `iobroker.amazon-kids`
|
|
13
|
-
2. Enable secure, token-less publishing from CI/CD workflows
|
|
14
|
-
3. Establish provenance for packages published under this name
|
|
34
|
+
Use this if the login page does not work for your account.
|
|
15
35
|
|
|
16
|
-
|
|
36
|
+
1. Open the Parent Dashboard in a desktop browser and log in.
|
|
37
|
+
2. Open the developer tools (F12) and switch to the "Network" tab.
|
|
38
|
+
3. Reload the page and click the first request in the list.
|
|
39
|
+
4. Copy the complete value of the request header `cookie`.
|
|
40
|
+
5. Paste the value into "Session cookies" in the instance settings.
|
|
17
41
|
|
|
18
|
-
|
|
42
|
+
Pasted cookies are not renewed. When Amazon ends the session, the adapter logs an error and you have to paste fresh cookies.
|
|
19
43
|
|
|
20
|
-
##
|
|
44
|
+
## States
|
|
21
45
|
|
|
22
|
-
|
|
46
|
+
| State | Description |
|
|
47
|
+
| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| `info.connection` | Last request to the dashboard was successful |
|
|
49
|
+
| `info.loginUrl` | Address of the login page while a login is pending |
|
|
50
|
+
| `info.login` | Button: start a new Amazon login |
|
|
51
|
+
| `info.discover` | Button: scan the dashboard page for its web endpoints and read a few of them (diagnosis, changes nothing) |
|
|
52
|
+
| `info.endpoints` | Result of that scan as JSON |
|
|
53
|
+
| `children.<name>.limits.enabledToday` | A total screen time limit is active today |
|
|
54
|
+
| `children.<name>.limits.minutesToday` | Total screen time limit of today in minutes |
|
|
55
|
+
| `children.<name>.limits.raw` | Complete time limit configuration as JSON |
|
|
56
|
+
| `children.<name>.today.allowedWindows` | Time windows in which the devices may be used today, e.g. `06:00-07:30, 10:00-17:00` |
|
|
57
|
+
| `children.<name>.today.allowedNow` | The current time is inside one of these windows (updated every minute) |
|
|
58
|
+
| `children.<name>.today.nextChange` | Next start or end of a time window today |
|
|
59
|
+
| `children.<name>.today.learnFirst` | Learning goals have to be reached before entertainment |
|
|
60
|
+
| `children.<name>.today.usedMinutes` | Screen time used today |
|
|
61
|
+
| `children.<name>.today.remainingMinutes` | Screen time left today: limit plus bonus minus used time |
|
|
62
|
+
| `children.<name>.today.usage` | What was used today, as JSON list with title, category and minutes |
|
|
63
|
+
| `children.<name>.today.goals.*` | Daily learning goals in minutes per category |
|
|
64
|
+
| `children.<name>.limits.bonusMinutes` | Bonus time currently granted |
|
|
65
|
+
| `children.<name>.schedule.windowsToday` | Write new time windows for this weekday, e.g. `06:00-07:30, 10:00-18:00` |
|
|
66
|
+
| `children.<name>.schedule.limitToday` | Write a new total screen time limit for this weekday |
|
|
67
|
+
| `children.<name>.schedule.learnFirstToday` | Switch: learning goals have to be reached before entertainment on this weekday |
|
|
68
|
+
| `children.<name>.schedule.limitEnabledToday` | Switch: total screen time limit active on this weekday |
|
|
69
|
+
| `children.<name>.schedule.goalAppToday`, `goalVideoToday`, `goalAudibleToday` | Write a new daily learning goal in minutes for this weekday |
|
|
70
|
+
| `children.<name>.schedule.saveTemplate` | Button: save the current weekly rules as template |
|
|
71
|
+
| `children.<name>.schedule.restoreTemplate` | Button: write the template back to Amazon |
|
|
72
|
+
| `children.<name>.schedule.restoreDaily` | Switch: restore the template every night shortly after midnight |
|
|
73
|
+
| `children.<name>.schedule.template` | The saved template as JSON |
|
|
74
|
+
| `children.<name>.schedule.backup` | Weekly rules before the last change by the adapter |
|
|
75
|
+
| `children.<name>.control.pause` | Write minutes to pause all devices of the child, 0 resumes. Returns to 0 after sending |
|
|
76
|
+
| `children.<name>.control.paused` | Devices are paused by a pause set through ioBroker |
|
|
77
|
+
| `children.<name>.control.pausedUntil` | End of that pause as timestamp, 0 if not paused |
|
|
78
|
+
| `children.<name>.control.resume` | Button: resume the devices |
|
|
79
|
+
| `children.<name>.control.bonusTime` | Write minutes to add bonus time. Returns to 0 after sending |
|
|
80
|
+
| `children.<name>.control.clearBonus` | Button: remove the granted bonus time |
|
|
81
|
+
| `children.<name>.access.smartHome` | Switch: the child may control Alexa smart home devices |
|
|
82
|
+
| `children.<name>.access.explicitFilter` | Switch: explicit language filter of the child (Amazon cannot be read back, shows the last value sent) |
|
|
83
|
+
| `children.<name>.access.blockedWebsites`, `allowedWebsites` | Blocked and allowed websites as JSON list |
|
|
84
|
+
| `children.<name>.access.blockWebsite`, `unblockWebsite` | Write a website address to block or unblock it. Returns to empty after sending |
|
|
85
|
+
| `children.<name>.access.allowWebsite`, `disallowWebsite` | Write a website address to add it to or remove it from the allowed list. Returns to empty after sending |
|
|
86
|
+
| `devices.<name>.volume` | Maximum volume of the Kids device, 10 to 100 |
|
|
87
|
+
| `devices.<name>.videoEnabled`, `musicEnabled`, `musicFilter` | Switches: Prime Video, music and explicit lyrics filter on the Kids device |
|
|
88
|
+
| `household.pause` | Write minutes to pause the devices of all children, 0 resumes. Returns to 0 after sending |
|
|
89
|
+
| `household.resume` | Button: resume the devices of all children |
|
|
23
90
|
|
|
24
|
-
|
|
25
|
-
2. Configure the trusted publisher (e.g., GitHub Actions)
|
|
26
|
-
3. Specify the repository and workflow that should be allowed to publish
|
|
27
|
-
4. Use the configured workflow to publish your actual package
|
|
91
|
+
## Keeping the weekly rules
|
|
28
92
|
|
|
29
|
-
|
|
93
|
+
I change the times quite often for a single day and want the usual rules back the next day. This is how to set that up:
|
|
30
94
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- Should not be installed as a dependency
|
|
35
|
-
- Exists only for administrative purposes
|
|
95
|
+
1. Set the rules in the Parent Dashboard the way they should normally be.
|
|
96
|
+
2. Press `schedule.saveTemplate` for the child.
|
|
97
|
+
3. Switch `schedule.restoreDaily` on.
|
|
36
98
|
|
|
37
|
-
|
|
99
|
+
Every night the adapter compares the rules at Amazon with the template and writes the template back if they differ.
|
|
38
100
|
|
|
39
|
-
|
|
40
|
-
- [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
|
|
41
|
-
- [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
|
|
101
|
+
## Limitations
|
|
42
102
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
103
|
+
- The login registers an app device named "ioBroker Amazon Kids" in the Amazon account.
|
|
104
|
+
- Amazon stores the rules per weekday. A change through `schedule.windowsToday`, `schedule.limitToday` or `schedule.learnFirstToday` therefore also applies to the same weekday in the following weeks, until the template is restored.
|
|
105
|
+
- The nightly restore runs up to five minutes after midnight and only while the adapter is running.
|
|
106
|
+
- `today.allowedNow` only reflects the time windows. It does not know the used screen time, bonus time or a pause.
|
|
107
|
+
- The used time comes from the activity report of the dashboard. The tablet uploads it with a delay, so `today.usedMinutes` and `today.remainingMinutes` can lag behind.
|
|
108
|
+
- Amazon offers no way to read whether devices are paused. `control.paused` and `control.pausedUntil` only know pauses set through ioBroker.
|
|
109
|
+
|
|
110
|
+
## Changelog
|
|
111
|
+
|
|
112
|
+
### **WORK IN PROGRESS**
|
|
113
|
+
|
|
114
|
+
### 0.1.0 (2026-11-15)
|
|
115
|
+
|
|
116
|
+
- (backfisch88) Initial release
|
|
117
|
+
|
|
118
|
+
## License
|
|
119
|
+
|
|
120
|
+
MIT License
|
|
121
|
+
|
|
122
|
+
Copyright (c) 2026 Henrik Schönhofen (backfisch88) <henrik.schoenhofen@icloud.com>
|
|
123
|
+
|
|
124
|
+
See [LICENSE](LICENSE) for the full license text.
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Nur nötig, wenn die Anmeldeseite nicht funktioniert. Melde dich im Eltern-Dashboard in einem Desktop-Browser an, öffne die Entwicklertools (F12), wechsle zu „Netzwerk“, lade die Seite neu, klicke die erste Anfrage an und kopiere den kompletten Wert des Anfrage-Headers „cookie“. Füge ihn unten ein. Wenn Amazon die Sitzung beendet, musst du das wiederholen.",
|
|
3
|
+
"baseUrl": "Adresse des Eltern-Dashboards",
|
|
4
|
+
"cookies": "Sitzungs-Cookies",
|
|
5
|
+
"pollInterval": "Abfrageintervall (Minuten)",
|
|
6
|
+
"timeZone": "Zeitzone (optional)",
|
|
7
|
+
"timeZone_help": "IANA-Name wie Europe/Berlin. Leer = Zeitzone des Systems.",
|
|
8
|
+
"header_login": "Anmeldung",
|
|
9
|
+
"header_manual": "Alternative: Sitzungs-Cookies einfügen",
|
|
10
|
+
"header_general": "Allgemein",
|
|
11
|
+
"help_login": "Speichere die Einstellungen und starte die Instanz. Der Adapter stellt dann unter http://<IP des ioBroker-Hosts>:<Port> eine Anmeldeseite bereit. Die genaue Adresse steht im Log und im Datenpunkt info.loginUrl. Öffne sie am Handy oder Computer in deinem Heimnetz und melde dich bei Amazon an. Danach erneuert der Adapter die Sitzung selbst.",
|
|
12
|
+
"proxyOwnIp": "IP-Adresse des ioBroker-Hosts (optional)",
|
|
13
|
+
"proxyOwnIp_help": "Leer: wird automatisch ermittelt",
|
|
14
|
+
"proxyPort": "Port der Anmeldeseite"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Only needed if the login page does not work. Log in to the Parent Dashboard in a desktop browser, open the developer tools (F12), go to \"Network\", reload the page, click the first request and copy the complete value of the request header \"cookie\". Paste it below. When Amazon ends the session you have to repeat this.",
|
|
3
|
+
"baseUrl": "Parent Dashboard address",
|
|
4
|
+
"cookies": "Session cookies",
|
|
5
|
+
"pollInterval": "Polling interval (minutes)",
|
|
6
|
+
"timeZone": "Time zone (optional)",
|
|
7
|
+
"timeZone_help": "IANA name such as Europe/Berlin. Empty uses the system time zone.",
|
|
8
|
+
"header_login": "Login",
|
|
9
|
+
"header_manual": "Alternative: paste session cookies",
|
|
10
|
+
"header_general": "General",
|
|
11
|
+
"help_login": "Save the settings and start the instance. The adapter then provides a login page at http://<IP of the ioBroker host>:<port>. The exact address is written to the log and to the state info.loginUrl. Open it on a phone or computer in your home network and sign in to Amazon. The adapter renews the session on its own afterwards.",
|
|
12
|
+
"proxyOwnIp": "IP address of the ioBroker host (optional)",
|
|
13
|
+
"proxyOwnIp_help": "Empty: detected automatically",
|
|
14
|
+
"proxyPort": "Port of the login page"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Solo es necesario si la página de inicio de sesión no funciona. Inicia sesión en el Panel para padres en un navegador de escritorio, abre las herramientas de desarrollo (F12), ve a \"Red\", recarga la página, haz clic en la primera solicitud y copia el valor completo de la cabecera de solicitud \"cookie\". Pégalo abajo. Cuando Amazon cierre la sesión, tendrás que repetirlo.",
|
|
3
|
+
"baseUrl": "Dirección del Panel para padres",
|
|
4
|
+
"cookies": "Cookies de sesión",
|
|
5
|
+
"pollInterval": "Intervalo de consulta (minutos)",
|
|
6
|
+
"timeZone": "Zona horaria (opcional)",
|
|
7
|
+
"timeZone_help": "Nombre IANA, por ejemplo Europe/Berlin. Vacío usa la zona horaria del sistema.",
|
|
8
|
+
"header_login": "Inicio de sesión",
|
|
9
|
+
"header_manual": "Alternativa: pegar cookies de sesión",
|
|
10
|
+
"header_general": "General",
|
|
11
|
+
"help_login": "Guarda la configuración e inicia la instancia. El adaptador ofrece entonces una página de inicio de sesión en http://<IP del host de ioBroker>:<puerto>. La dirección exacta se escribe en el registro y en el estado info.loginUrl. Ábrela en un teléfono u ordenador de tu red doméstica e inicia sesión en Amazon. Después el adaptador renueva la sesión por sí mismo.",
|
|
12
|
+
"proxyOwnIp": "Dirección IP del host de ioBroker (opcional)",
|
|
13
|
+
"proxyOwnIp_help": "Vacío: se detecta automáticamente",
|
|
14
|
+
"proxyPort": "Puerto de la página de inicio de sesión"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Nécessaire uniquement si la page de connexion ne fonctionne pas. Connectez-vous au Tableau de bord parents dans un navigateur de bureau, ouvrez les outils de développement (F12), allez dans « Réseau », rechargez la page, cliquez sur la première requête et copiez la valeur complète de l'en-tête de requête « cookie ». Collez-la ci-dessous. Lorsque Amazon met fin à la session, il faut recommencer.",
|
|
3
|
+
"baseUrl": "Adresse du Tableau de bord parents",
|
|
4
|
+
"cookies": "Cookies de session",
|
|
5
|
+
"pollInterval": "Intervalle d'interrogation (minutes)",
|
|
6
|
+
"timeZone": "Fuseau horaire (facultatif)",
|
|
7
|
+
"timeZone_help": "Nom IANA tel que Europe/Berlin. Vide : fuseau horaire du système.",
|
|
8
|
+
"header_login": "Connexion",
|
|
9
|
+
"header_manual": "Alternative : coller les cookies de session",
|
|
10
|
+
"header_general": "Général",
|
|
11
|
+
"help_login": "Enregistrez les paramètres et démarrez l'instance. L'adaptateur fournit alors une page de connexion à l'adresse http://<IP de l'hôte ioBroker>:<port>. L'adresse exacte est écrite dans le journal et dans l'état info.loginUrl. Ouvrez-la sur un téléphone ou un ordinateur de votre réseau domestique et connectez-vous à Amazon. L'adaptateur renouvelle ensuite la session lui-même.",
|
|
12
|
+
"proxyOwnIp": "Adresse IP de l'hôte ioBroker (facultatif)",
|
|
13
|
+
"proxyOwnIp_help": "Vide : détectée automatiquement",
|
|
14
|
+
"proxyPort": "Port de la page de connexion"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Necessario solo se la pagina di accesso non funziona. Accedi alla Dashboard genitori in un browser desktop, apri gli strumenti per sviluppatori (F12), vai su \"Rete\", ricarica la pagina, fai clic sulla prima richiesta e copia il valore completo dell'intestazione di richiesta \"cookie\". Incollalo qui sotto. Quando Amazon termina la sessione, devi ripetere l'operazione.",
|
|
3
|
+
"baseUrl": "Indirizzo della Dashboard genitori",
|
|
4
|
+
"cookies": "Cookie di sessione",
|
|
5
|
+
"pollInterval": "Intervallo di interrogazione (minuti)",
|
|
6
|
+
"timeZone": "Fuso orario (facoltativo)",
|
|
7
|
+
"timeZone_help": "Nome IANA, ad esempio Europe/Berlin. Vuoto usa il fuso orario del sistema.",
|
|
8
|
+
"header_login": "Accesso",
|
|
9
|
+
"header_manual": "Alternativa: incollare i cookie di sessione",
|
|
10
|
+
"header_general": "Generale",
|
|
11
|
+
"help_login": "Salva le impostazioni e avvia l'istanza. L'adattatore mette quindi a disposizione una pagina di accesso all'indirizzo http://<IP dell'host ioBroker>:<porta>. L'indirizzo esatto viene scritto nel log e nello stato info.loginUrl. Aprilo su un telefono o computer nella rete di casa e accedi ad Amazon. In seguito l'adattatore rinnova la sessione da solo.",
|
|
12
|
+
"proxyOwnIp": "Indirizzo IP dell'host ioBroker (facoltativo)",
|
|
13
|
+
"proxyOwnIp_help": "Vuoto: rilevato automaticamente",
|
|
14
|
+
"proxyPort": "Porta della pagina di accesso"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Alleen nodig als de aanmeldpagina niet werkt. Meld je aan bij het Ouderdashboard in een desktopbrowser, open de ontwikkelaarstools (F12), ga naar \"Netwerk\", laad de pagina opnieuw, klik op het eerste verzoek en kopieer de volledige waarde van de verzoekheader \"cookie\". Plak die hieronder. Als Amazon de sessie beëindigt, moet je dit herhalen.",
|
|
3
|
+
"baseUrl": "Adres van het Ouderdashboard",
|
|
4
|
+
"cookies": "Sessiecookies",
|
|
5
|
+
"pollInterval": "Opvraaginterval (minuten)",
|
|
6
|
+
"timeZone": "Tijdzone (optioneel)",
|
|
7
|
+
"timeZone_help": "IANA-naam zoals Europe/Berlin. Leeg gebruikt de tijdzone van het systeem.",
|
|
8
|
+
"header_login": "Aanmelden",
|
|
9
|
+
"header_manual": "Alternatief: sessiecookies plakken",
|
|
10
|
+
"header_general": "Algemeen",
|
|
11
|
+
"help_login": "Sla de instellingen op en start de instantie. De adapter biedt dan een aanmeldpagina aan op http://<IP van de ioBroker-host>:<poort>. Het exacte adres staat in het logboek en in de state info.loginUrl. Open het op een telefoon of computer in je thuisnetwerk en meld je aan bij Amazon. Daarna vernieuwt de adapter de sessie zelf.",
|
|
12
|
+
"proxyOwnIp": "IP-adres van de ioBroker-host (optioneel)",
|
|
13
|
+
"proxyOwnIp_help": "Leeg: wordt automatisch bepaald",
|
|
14
|
+
"proxyPort": "Poort van de aanmeldpagina"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Potrzebne tylko wtedy, gdy strona logowania nie działa. Zaloguj się do Panelu rodzica w przeglądarce na komputerze, otwórz narzędzia deweloperskie (F12), przejdź do „Sieć”, odśwież stronę, kliknij pierwsze żądanie i skopiuj pełną wartość nagłówka żądania „cookie”. Wklej ją poniżej. Gdy Amazon zakończy sesję, trzeba to powtórzyć.",
|
|
3
|
+
"baseUrl": "Adres Panelu rodzica",
|
|
4
|
+
"cookies": "Pliki cookie sesji",
|
|
5
|
+
"pollInterval": "Interwał odpytywania (minuty)",
|
|
6
|
+
"timeZone": "Strefa czasowa (opcjonalnie)",
|
|
7
|
+
"timeZone_help": "Nazwa IANA, np. Europe/Berlin. Puste oznacza strefę czasową systemu.",
|
|
8
|
+
"header_login": "Logowanie",
|
|
9
|
+
"header_manual": "Alternatywa: wklej pliki cookie sesji",
|
|
10
|
+
"header_general": "Ogólne",
|
|
11
|
+
"help_login": "Zapisz ustawienia i uruchom instancję. Adapter udostępni wtedy stronę logowania pod adresem http://<IP hosta ioBroker>:<port>. Dokładny adres jest zapisywany w logu i w stanie info.loginUrl. Otwórz go na telefonie lub komputerze w sieci domowej i zaloguj się do Amazon. Potem adapter sam odnawia sesję.",
|
|
12
|
+
"proxyOwnIp": "Adres IP hosta ioBroker (opcjonalnie)",
|
|
13
|
+
"proxyOwnIp_help": "Puste: wykrywany automatycznie",
|
|
14
|
+
"proxyPort": "Port strony logowania"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Só é necessário se a página de início de sessão não funcionar. Inicie sessão no Painel dos Pais num navegador de computador, abra as ferramentas de programador (F12), vá a \"Rede\", recarregue a página, clique no primeiro pedido e copie o valor completo do cabeçalho de pedido \"cookie\". Cole-o abaixo. Quando a Amazon terminar a sessão, terá de repetir este passo.",
|
|
3
|
+
"baseUrl": "Endereço do Painel dos Pais",
|
|
4
|
+
"cookies": "Cookies de sessão",
|
|
5
|
+
"pollInterval": "Intervalo de consulta (minutos)",
|
|
6
|
+
"timeZone": "Fuso horário (opcional)",
|
|
7
|
+
"timeZone_help": "Nome IANA, por exemplo Europe/Berlin. Vazio usa o fuso horário do sistema.",
|
|
8
|
+
"header_login": "Início de sessão",
|
|
9
|
+
"header_manual": "Alternativa: colar cookies de sessão",
|
|
10
|
+
"header_general": "Geral",
|
|
11
|
+
"help_login": "Guarde as definições e inicie a instância. O adaptador disponibiliza então uma página de início de sessão em http://<IP do anfitrião ioBroker>:<porta>. O endereço exato é escrito no registo e no estado info.loginUrl. Abra-o num telemóvel ou computador na sua rede doméstica e inicie sessão na Amazon. Depois disso, o adaptador renova a sessão sozinho.",
|
|
12
|
+
"proxyOwnIp": "Endereço IP do anfitrião ioBroker (opcional)",
|
|
13
|
+
"proxyOwnIp_help": "Vazio: detetado automaticamente",
|
|
14
|
+
"proxyPort": "Porta da página de início de sessão"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Нужно только если страница входа не работает. Войдите в родительскую панель в браузере на компьютере, откройте инструменты разработчика (F12), перейдите в «Сеть», обновите страницу, выберите первый запрос и скопируйте полное значение заголовка запроса «cookie». Вставьте его ниже. Когда Amazon завершит сеанс, это нужно повторить.",
|
|
3
|
+
"baseUrl": "Адрес родительской панели",
|
|
4
|
+
"cookies": "Cookie сеанса",
|
|
5
|
+
"pollInterval": "Интервал опроса (минуты)",
|
|
6
|
+
"timeZone": "Часовой пояс (необязательно)",
|
|
7
|
+
"timeZone_help": "Имя IANA, например Europe/Berlin. Пусто — часовой пояс системы.",
|
|
8
|
+
"header_login": "Вход",
|
|
9
|
+
"header_manual": "Альтернатива: вставить cookie сеанса",
|
|
10
|
+
"header_general": "Общее",
|
|
11
|
+
"help_login": "Сохраните настройки и запустите экземпляр. Адаптер откроет страницу входа по адресу http://<IP хоста ioBroker>:<порт>. Точный адрес записывается в журнал и в состояние info.loginUrl. Откройте его на телефоне или компьютере в домашней сети и войдите в Amazon. После этого адаптер сам обновляет сеанс.",
|
|
12
|
+
"proxyOwnIp": "IP-адрес хоста ioBroker (необязательно)",
|
|
13
|
+
"proxyOwnIp_help": "Пусто: определяется автоматически",
|
|
14
|
+
"proxyPort": "Порт страницы входа"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "Потрібно лише якщо сторінка входу не працює. Увійдіть до батьківської панелі в браузері на комп'ютері, відкрийте інструменти розробника (F12), перейдіть до «Мережа», оновіть сторінку, виберіть перший запит і скопіюйте повне значення заголовка запиту «cookie». Вставте його нижче. Коли Amazon завершить сеанс, це потрібно повторити.",
|
|
3
|
+
"baseUrl": "Адреса батьківської панелі",
|
|
4
|
+
"cookies": "Cookie сеансу",
|
|
5
|
+
"pollInterval": "Інтервал опитування (хвилини)",
|
|
6
|
+
"timeZone": "Часовий пояс (необов'язково)",
|
|
7
|
+
"timeZone_help": "Назва IANA, наприклад Europe/Berlin. Порожньо — часовий пояс системи.",
|
|
8
|
+
"header_login": "Вхід",
|
|
9
|
+
"header_manual": "Альтернатива: вставити cookie сеансу",
|
|
10
|
+
"header_general": "Загальне",
|
|
11
|
+
"help_login": "Збережіть налаштування та запустіть екземпляр. Адаптер відкриє сторінку входу за адресою http://<IP хоста ioBroker>:<порт>. Точна адреса записується в журнал і в стан info.loginUrl. Відкрийте її на телефоні або комп'ютері у домашній мережі та увійдіть в Amazon. Після цього адаптер сам оновлює сеанс.",
|
|
12
|
+
"proxyOwnIp": "IP-адреса хоста ioBroker (необов'язково)",
|
|
13
|
+
"proxyOwnIp_help": "Порожньо: визначається автоматично",
|
|
14
|
+
"proxyPort": "Порт сторінки входу"
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"help_cookies": "仅在登录页面无法使用时需要。在电脑浏览器中登录家长控制面板,打开开发者工具(F12),切换到“网络”,刷新页面,点击第一个请求并复制请求标头“cookie”的完整值,然后粘贴到下方。当亚马逊结束会话后,需要重新执行此操作。",
|
|
3
|
+
"baseUrl": "家长控制面板地址",
|
|
4
|
+
"cookies": "会话 Cookie",
|
|
5
|
+
"pollInterval": "轮询间隔(分钟)",
|
|
6
|
+
"timeZone": "时区(可选)",
|
|
7
|
+
"timeZone_help": "IANA 名称,例如 Europe/Berlin。留空则使用系统时区。",
|
|
8
|
+
"header_login": "登录",
|
|
9
|
+
"header_manual": "备选方式:粘贴会话 Cookie",
|
|
10
|
+
"header_general": "常规",
|
|
11
|
+
"help_login": "保存设置并启动实例。适配器随后会在 http://<ioBroker 主机 IP>:<端口> 提供登录页面,确切地址会写入日志和状态 info.loginUrl。在家庭网络中的手机或电脑上打开该地址并登录亚马逊。之后适配器会自行更新会话。",
|
|
12
|
+
"proxyOwnIp": "ioBroker 主机的 IP 地址(可选)",
|
|
13
|
+
"proxyOwnIp_help": "留空:自动检测",
|
|
14
|
+
"proxyPort": "登录页面端口"
|
|
15
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
{
|
|
2
|
+
"i18n": true,
|
|
3
|
+
"type": "panel",
|
|
4
|
+
"items": {
|
|
5
|
+
"_headerGeneral": {
|
|
6
|
+
"type": "header",
|
|
7
|
+
"text": "header_general",
|
|
8
|
+
"size": 2,
|
|
9
|
+
"newLine": true,
|
|
10
|
+
"xs": 12,
|
|
11
|
+
"sm": 12,
|
|
12
|
+
"md": 12,
|
|
13
|
+
"lg": 12,
|
|
14
|
+
"xl": 12
|
|
15
|
+
},
|
|
16
|
+
"baseUrl": {
|
|
17
|
+
"type": "autocomplete",
|
|
18
|
+
"freeSolo": true,
|
|
19
|
+
"label": "baseUrl",
|
|
20
|
+
"options": [
|
|
21
|
+
"https://eltern.amazon.de",
|
|
22
|
+
"https://parents.amazon.com",
|
|
23
|
+
"https://parents.amazon.co.uk"
|
|
24
|
+
],
|
|
25
|
+
"newLine": true,
|
|
26
|
+
"xs": 12,
|
|
27
|
+
"sm": 12,
|
|
28
|
+
"md": 6,
|
|
29
|
+
"lg": 6,
|
|
30
|
+
"xl": 6
|
|
31
|
+
},
|
|
32
|
+
"pollInterval": {
|
|
33
|
+
"type": "number",
|
|
34
|
+
"label": "pollInterval",
|
|
35
|
+
"min": 5,
|
|
36
|
+
"max": 1440,
|
|
37
|
+
"newLine": true,
|
|
38
|
+
"xs": 12,
|
|
39
|
+
"sm": 12,
|
|
40
|
+
"md": 4,
|
|
41
|
+
"lg": 4,
|
|
42
|
+
"xl": 4
|
|
43
|
+
},
|
|
44
|
+
"timeZone": {
|
|
45
|
+
"type": "text",
|
|
46
|
+
"label": "timeZone",
|
|
47
|
+
"help": "timeZone_help",
|
|
48
|
+
"xs": 12,
|
|
49
|
+
"sm": 12,
|
|
50
|
+
"md": 4,
|
|
51
|
+
"lg": 4,
|
|
52
|
+
"xl": 4
|
|
53
|
+
},
|
|
54
|
+
"_headerLogin": {
|
|
55
|
+
"type": "header",
|
|
56
|
+
"text": "header_login",
|
|
57
|
+
"size": 2,
|
|
58
|
+
"newLine": true,
|
|
59
|
+
"xs": 12,
|
|
60
|
+
"sm": 12,
|
|
61
|
+
"md": 12,
|
|
62
|
+
"lg": 12,
|
|
63
|
+
"xl": 12
|
|
64
|
+
},
|
|
65
|
+
"_helpLogin": {
|
|
66
|
+
"type": "staticText",
|
|
67
|
+
"text": "help_login",
|
|
68
|
+
"newLine": true,
|
|
69
|
+
"xs": 12,
|
|
70
|
+
"sm": 12,
|
|
71
|
+
"md": 12,
|
|
72
|
+
"lg": 12,
|
|
73
|
+
"xl": 12
|
|
74
|
+
},
|
|
75
|
+
"proxyOwnIp": {
|
|
76
|
+
"type": "text",
|
|
77
|
+
"label": "proxyOwnIp",
|
|
78
|
+
"help": "proxyOwnIp_help",
|
|
79
|
+
"newLine": true,
|
|
80
|
+
"xs": 12,
|
|
81
|
+
"sm": 12,
|
|
82
|
+
"md": 4,
|
|
83
|
+
"lg": 4,
|
|
84
|
+
"xl": 4
|
|
85
|
+
},
|
|
86
|
+
"proxyPort": {
|
|
87
|
+
"type": "number",
|
|
88
|
+
"label": "proxyPort",
|
|
89
|
+
"min": 1024,
|
|
90
|
+
"max": 65535,
|
|
91
|
+
"xs": 12,
|
|
92
|
+
"sm": 12,
|
|
93
|
+
"md": 4,
|
|
94
|
+
"lg": 4,
|
|
95
|
+
"xl": 4
|
|
96
|
+
},
|
|
97
|
+
"_headerManual": {
|
|
98
|
+
"type": "header",
|
|
99
|
+
"text": "header_manual",
|
|
100
|
+
"size": 2,
|
|
101
|
+
"newLine": true,
|
|
102
|
+
"xs": 12,
|
|
103
|
+
"sm": 12,
|
|
104
|
+
"md": 12,
|
|
105
|
+
"lg": 12,
|
|
106
|
+
"xl": 12
|
|
107
|
+
},
|
|
108
|
+
"_help": {
|
|
109
|
+
"type": "staticText",
|
|
110
|
+
"text": "help_cookies",
|
|
111
|
+
"newLine": true,
|
|
112
|
+
"xs": 12,
|
|
113
|
+
"sm": 12,
|
|
114
|
+
"md": 12,
|
|
115
|
+
"lg": 12,
|
|
116
|
+
"xl": 12
|
|
117
|
+
},
|
|
118
|
+
"cookies": {
|
|
119
|
+
"type": "password",
|
|
120
|
+
"label": "cookies",
|
|
121
|
+
"visible": true,
|
|
122
|
+
"newLine": true,
|
|
123
|
+
"xs": 12,
|
|
124
|
+
"sm": 12,
|
|
125
|
+
"md": 12,
|
|
126
|
+
"lg": 12,
|
|
127
|
+
"xl": 12
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|