iobroker.anthbot-genie 0.0.5
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/NOTICE.md +12 -0
- package/README.md +63 -0
- package/admin/anthbot-genie-logo.png +0 -0
- package/admin/anthbot-genie.png +0 -0
- package/admin/index.html +10 -0
- package/admin/jsonConfig.json +57 -0
- package/io-package.json +169 -0
- package/lib/anthbot.js +665 -0
- package/main.js +693 -0
- package/package.json +52 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Nils
|
|
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/NOTICE.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Legal Notice
|
|
2
|
+
|
|
3
|
+
This project is an unofficial, community-developed ioBroker adapter for Anthbot
|
|
4
|
+
Genie mowers. It is not affiliated with, endorsed by, sponsored by, or approved
|
|
5
|
+
by Anthbot or any of its affiliates.
|
|
6
|
+
|
|
7
|
+
All product names, logos, trademarks, and brand names are the property of their
|
|
8
|
+
respective owners. Company, product, and service names are used only for
|
|
9
|
+
identification and interoperability.
|
|
10
|
+
|
|
11
|
+
If you are a rights holder and want branding or references adjusted or removed,
|
|
12
|
+
please open an issue.
|
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Anthbot Genie ioBroker Adapter
|
|
2
|
+
|
|
3
|
+
Local scaffold for an unofficial Anthbot Genie ioBroker adapter.
|
|
4
|
+
|
|
5
|
+
Current scope:
|
|
6
|
+
|
|
7
|
+
- Anthbot cloud login
|
|
8
|
+
- device discovery
|
|
9
|
+
- region and IoT endpoint lookup
|
|
10
|
+
- polling of mower property and service shadows
|
|
11
|
+
- writable control states for the main mower commands
|
|
12
|
+
- zone metadata and zone-start commands
|
|
13
|
+
|
|
14
|
+
Exposed per mower:
|
|
15
|
+
|
|
16
|
+
- `info.*`
|
|
17
|
+
- `metrics.*`
|
|
18
|
+
- `controls.*`
|
|
19
|
+
- `commands.*`
|
|
20
|
+
- `zones.*`
|
|
21
|
+
- `raw.*`
|
|
22
|
+
|
|
23
|
+
## Manual zone mowing
|
|
24
|
+
|
|
25
|
+
The adapter exposes the mower's manual/custom zones in:
|
|
26
|
+
|
|
27
|
+
- `<instance>.<serial>.zones.manual`
|
|
28
|
+
|
|
29
|
+
This state contains a JSON array with the known manual zones. Use the `id` or
|
|
30
|
+
the exact `name` from that list to start mowing.
|
|
31
|
+
|
|
32
|
+
Write the selection to:
|
|
33
|
+
|
|
34
|
+
- `<instance>.<serial>.commands.zoneMow`
|
|
35
|
+
|
|
36
|
+
Accepted values:
|
|
37
|
+
|
|
38
|
+
- one zone by ID: `3`
|
|
39
|
+
- one zone by name: `Front yard`
|
|
40
|
+
- multiple zones as comma-separated IDs or names: `3,5,Back yard`
|
|
41
|
+
- multiple zones as a JSON array: `[3,5,"Back yard"]`
|
|
42
|
+
|
|
43
|
+
After a valid write, the adapter sends `custom_area_mow_start` with the matched
|
|
44
|
+
manual zone IDs and clears `commands.zoneMow` again.
|
|
45
|
+
|
|
46
|
+
Notes:
|
|
47
|
+
|
|
48
|
+
- this is based on the public Home Assistant integration logic from `vincentjanv/anthbot_genie_ha`
|
|
49
|
+
- this project is unofficial and not affiliated with or endorsed by Anthbot; see `NOTICE.md`
|
|
50
|
+
- it is a local first version, not a published ioBroker adapter yet
|
|
51
|
+
- the password is stored in encrypted native config
|
|
52
|
+
|
|
53
|
+
## Credits
|
|
54
|
+
|
|
55
|
+
Special credit to the Home Assistant Anthbot Genie project that made the
|
|
56
|
+
cloud flow and command mapping much easier to understand:
|
|
57
|
+
|
|
58
|
+
- `vincentjanv/anthbot_genie_ha`
|
|
59
|
+
- https://github.com/vincentjanv/anthbot_genie_ha
|
|
60
|
+
|
|
61
|
+
This ioBroker adapter scaffold is an independent local project, but it
|
|
62
|
+
directly builds on the public API research and implementation approach from
|
|
63
|
+
that Home Assistant integration.
|
|
Binary file
|
|
Binary file
|
package/admin/index.html
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "panel",
|
|
3
|
+
"items": {
|
|
4
|
+
"username": {
|
|
5
|
+
"type": "text",
|
|
6
|
+
"label": {
|
|
7
|
+
"en": "Anthbot account username",
|
|
8
|
+
"de": "Anthbot-Konto Benutzername"
|
|
9
|
+
},
|
|
10
|
+
"sm": 12,
|
|
11
|
+
"md": 6
|
|
12
|
+
},
|
|
13
|
+
"password": {
|
|
14
|
+
"type": "password",
|
|
15
|
+
"label": {
|
|
16
|
+
"en": "Anthbot account password",
|
|
17
|
+
"de": "Anthbot-Konto Passwort"
|
|
18
|
+
},
|
|
19
|
+
"sm": 12,
|
|
20
|
+
"md": 6
|
|
21
|
+
},
|
|
22
|
+
"areaCode": {
|
|
23
|
+
"type": "text",
|
|
24
|
+
"label": {
|
|
25
|
+
"en": "Area code",
|
|
26
|
+
"de": "Ländervorwahl"
|
|
27
|
+
},
|
|
28
|
+
"help": {
|
|
29
|
+
"en": "Examples: 49 for Germany, 32 for Belgium, 1 for US/Canada",
|
|
30
|
+
"de": "Beispiele: 49 für Deutschland, 32 für Belgien, 1 für USA/Kanada"
|
|
31
|
+
},
|
|
32
|
+
"sm": 12,
|
|
33
|
+
"md": 4
|
|
34
|
+
},
|
|
35
|
+
"apiHost": {
|
|
36
|
+
"type": "text",
|
|
37
|
+
"label": {
|
|
38
|
+
"en": "API host",
|
|
39
|
+
"de": "API-Host"
|
|
40
|
+
},
|
|
41
|
+
"sm": 12,
|
|
42
|
+
"md": 4
|
|
43
|
+
},
|
|
44
|
+
"pollInterval": {
|
|
45
|
+
"type": "number",
|
|
46
|
+
"label": {
|
|
47
|
+
"en": "Poll interval in seconds",
|
|
48
|
+
"de": "Abfrageintervall in Sekunden"
|
|
49
|
+
},
|
|
50
|
+
"min": 10,
|
|
51
|
+
"max": 3600,
|
|
52
|
+
"step": 1,
|
|
53
|
+
"sm": 12,
|
|
54
|
+
"md": 4
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
package/io-package.json
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"name": "anthbot-genie",
|
|
4
|
+
"version": "0.0.5",
|
|
5
|
+
"news": {
|
|
6
|
+
"0.0.5": {
|
|
7
|
+
"en": "Prepare adapter metadata for ioBroker checks.",
|
|
8
|
+
"de": "Adapter-Metadaten für ioBroker-Prüfungen vorbereitet.",
|
|
9
|
+
"ru": "Подготовлены метаданные адаптера для проверок ioBroker.",
|
|
10
|
+
"pt": "Metadados do adaptador preparados para as verificações do ioBroker.",
|
|
11
|
+
"nl": "Adaptermetadata voorbereid voor ioBroker-controles.",
|
|
12
|
+
"fr": "Métadonnées de l'adaptateur préparées pour les vérifications ioBroker.",
|
|
13
|
+
"it": "Metadati dell'adattatore preparati per i controlli ioBroker.",
|
|
14
|
+
"es": "Metadatos del adaptador preparados para las comprobaciones de ioBroker.",
|
|
15
|
+
"pl": "Przygotowano metadane adaptera do kontroli ioBroker.",
|
|
16
|
+
"uk": "Підготовлено метадані адаптера для перевірок ioBroker.",
|
|
17
|
+
"zh-cn": "为 ioBroker 检查准备适配器元数据。"
|
|
18
|
+
},
|
|
19
|
+
"0.0.4": {
|
|
20
|
+
"en": "Add adapter icon, legal notice, German translations, and ensure the connection state object exists.",
|
|
21
|
+
"de": "Adapter-Icon, rechtlichen Hinweis und deutsche Übersetzungen hinzugefügt sowie das Verbindungsobjekt beim Start sichergestellt.",
|
|
22
|
+
"ru": "Добавлены значок адаптера, правовое уведомление и немецкие переводы, а также обеспечено создание объекта состояния соединения.",
|
|
23
|
+
"pt": "Adicionado ícone do adaptador, aviso legal e traduções em alemão, além de garantir o objeto de estado da conexão.",
|
|
24
|
+
"nl": "Adapterpictogram, juridische kennisgeving en Duitse vertalingen toegevoegd en gezorgd dat het verbindingsstatusobject bestaat.",
|
|
25
|
+
"fr": "Ajout de l'icône de l'adaptateur, de la notice légale et des traductions allemandes, avec création garantie de l'objet d'état de connexion.",
|
|
26
|
+
"it": "Aggiunte l'icona dell'adattatore, l'avviso legale e le traduzioni in tedesco, garantendo anche l'oggetto di stato della connessione.",
|
|
27
|
+
"es": "Se añadieron el icono del adaptador, el aviso legal y las traducciones al alemán, y se garantiza el objeto de estado de conexión.",
|
|
28
|
+
"pl": "Dodano ikonę adaptera, informacje prawne i tłumaczenia niemieckie oraz zapewniono utworzenie obiektu stanu połączenia.",
|
|
29
|
+
"uk": "Додано піктограму адаптера, юридичне повідомлення й німецькі переклади, а також забезпечено створення об'єкта стану з'єднання.",
|
|
30
|
+
"zh-cn": "添加适配器图标、法律声明和德语翻译,并确保连接状态对象存在。"
|
|
31
|
+
},
|
|
32
|
+
"0.0.3": {
|
|
33
|
+
"en": "Release 0.0.3.",
|
|
34
|
+
"de": "Version 0.0.3.",
|
|
35
|
+
"ru": "Выпуск 0.0.3.",
|
|
36
|
+
"pt": "Versão 0.0.3.",
|
|
37
|
+
"nl": "Release 0.0.3.",
|
|
38
|
+
"fr": "Version 0.0.3.",
|
|
39
|
+
"it": "Versione 0.0.3.",
|
|
40
|
+
"es": "Versión 0.0.3.",
|
|
41
|
+
"pl": "Wydanie 0.0.3.",
|
|
42
|
+
"uk": "Випуск 0.0.3.",
|
|
43
|
+
"zh-cn": "发布 0.0.3。"
|
|
44
|
+
},
|
|
45
|
+
"0.0.2": {
|
|
46
|
+
"en": "Release 0.0.2.",
|
|
47
|
+
"de": "Version 0.0.2.",
|
|
48
|
+
"ru": "Выпуск 0.0.2.",
|
|
49
|
+
"pt": "Versão 0.0.2.",
|
|
50
|
+
"nl": "Release 0.0.2.",
|
|
51
|
+
"fr": "Version 0.0.2.",
|
|
52
|
+
"it": "Versione 0.0.2.",
|
|
53
|
+
"es": "Versión 0.0.2.",
|
|
54
|
+
"pl": "Wydanie 0.0.2.",
|
|
55
|
+
"uk": "Випуск 0.0.2.",
|
|
56
|
+
"zh-cn": "发布 0.0.2。"
|
|
57
|
+
},
|
|
58
|
+
"0.0.1": {
|
|
59
|
+
"en": "Initial local adapter scaffold for Anthbot Genie.",
|
|
60
|
+
"de": "Erster lokaler Adapter-Entwurf für Anthbot Genie.",
|
|
61
|
+
"ru": "Начальный локальный каркас адаптера для Anthbot Genie.",
|
|
62
|
+
"pt": "Estrutura inicial local do adaptador para Anthbot Genie.",
|
|
63
|
+
"nl": "Eerste lokale adapterbasis voor Anthbot Genie.",
|
|
64
|
+
"fr": "Structure initiale locale de l'adaptateur pour Anthbot Genie.",
|
|
65
|
+
"it": "Struttura locale iniziale dell'adattatore per Anthbot Genie.",
|
|
66
|
+
"es": "Estructura inicial local del adaptador para Anthbot Genie.",
|
|
67
|
+
"pl": "Początkowy lokalny szkielet adaptera dla Anthbot Genie.",
|
|
68
|
+
"uk": "Початковий локальний каркас адаптера для Anthbot Genie.",
|
|
69
|
+
"zh-cn": "Anthbot Genie 的初始本地适配器框架。"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"titleLang": {
|
|
73
|
+
"en": "Anthbot Genie",
|
|
74
|
+
"de": "Anthbot Genie",
|
|
75
|
+
"ru": "Anthbot Genie",
|
|
76
|
+
"pt": "Anthbot Genie",
|
|
77
|
+
"nl": "Anthbot Genie",
|
|
78
|
+
"fr": "Anthbot Genie",
|
|
79
|
+
"it": "Anthbot Genie",
|
|
80
|
+
"es": "Anthbot Genie",
|
|
81
|
+
"pl": "Anthbot Genie",
|
|
82
|
+
"uk": "Anthbot Genie",
|
|
83
|
+
"zh-cn": "Anthbot Genie"
|
|
84
|
+
},
|
|
85
|
+
"desc": {
|
|
86
|
+
"en": "Unofficial cloud adapter for Anthbot Genie mower control and status polling",
|
|
87
|
+
"de": "Inoffizieller Cloud-Adapter für Statusabfrage und Steuerung von Anthbot Genie",
|
|
88
|
+
"ru": "Неофициальный облачный адаптер для управления газонокосилками Anthbot Genie и опроса состояния",
|
|
89
|
+
"pt": "Adaptador de nuvem não oficial para controlar cortadores Anthbot Genie e consultar o estado",
|
|
90
|
+
"nl": "Onofficiële cloudadapter voor bediening van Anthbot Genie-maaiers en statuspolling",
|
|
91
|
+
"fr": "Adaptateur cloud non officiel pour le contrôle des tondeuses Anthbot Genie et l'interrogation de leur état",
|
|
92
|
+
"it": "Adattatore cloud non ufficiale per il controllo dei rasaerba Anthbot Genie e il polling dello stato",
|
|
93
|
+
"es": "Adaptador en la nube no oficial para controlar cortacéspedes Anthbot Genie y consultar su estado",
|
|
94
|
+
"pl": "Nieoficjalny adapter chmurowy do sterowania kosiarkami Anthbot Genie i odpytywania stanu",
|
|
95
|
+
"uk": "Неофіційний хмарний адаптер для керування косарками Anthbot Genie та опитування стану",
|
|
96
|
+
"zh-cn": "用于控制 Anthbot Genie 割草机并轮询状态的非官方云适配器"
|
|
97
|
+
},
|
|
98
|
+
"authors": [
|
|
99
|
+
"Nils"
|
|
100
|
+
],
|
|
101
|
+
"licenseInformation": {
|
|
102
|
+
"license": "MIT",
|
|
103
|
+
"type": "free"
|
|
104
|
+
},
|
|
105
|
+
"icon": "anthbot-genie.png",
|
|
106
|
+
"extIcon": "https://raw.githubusercontent.com/reloxx13/ioBroker.anthbot-genie/main/admin/anthbot-genie.png",
|
|
107
|
+
"readme": "https://github.com/reloxx13/ioBroker.anthbot-genie/blob/master/README.md",
|
|
108
|
+
"keywords": [
|
|
109
|
+
"anthbot",
|
|
110
|
+
"genie",
|
|
111
|
+
"mower",
|
|
112
|
+
"robot",
|
|
113
|
+
"lawn"
|
|
114
|
+
],
|
|
115
|
+
"platform": "Javascript/Node.js",
|
|
116
|
+
"mode": "daemon",
|
|
117
|
+
"tier": 2,
|
|
118
|
+
"type": "household",
|
|
119
|
+
"compact": true,
|
|
120
|
+
"connectionType": "cloud",
|
|
121
|
+
"dataSource": "poll",
|
|
122
|
+
"loglevel": "info",
|
|
123
|
+
"enabled": false,
|
|
124
|
+
"adminUI": {
|
|
125
|
+
"config": "json"
|
|
126
|
+
},
|
|
127
|
+
"dependencies": [
|
|
128
|
+
{
|
|
129
|
+
"js-controller": ">=6.0.11"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"globalDependencies": [
|
|
133
|
+
{
|
|
134
|
+
"admin": ">=7.6.20"
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"encryptedNative": [
|
|
139
|
+
"password"
|
|
140
|
+
],
|
|
141
|
+
"protectedNative": [
|
|
142
|
+
"password"
|
|
143
|
+
],
|
|
144
|
+
"native": {
|
|
145
|
+
"username": "",
|
|
146
|
+
"password": "",
|
|
147
|
+
"areaCode": "49",
|
|
148
|
+
"apiHost": "api.anthbot.com",
|
|
149
|
+
"pollInterval": 30
|
|
150
|
+
},
|
|
151
|
+
"objects": [
|
|
152
|
+
{
|
|
153
|
+
"_id": "info.connection",
|
|
154
|
+
"type": "state",
|
|
155
|
+
"common": {
|
|
156
|
+
"name": {
|
|
157
|
+
"en": "Cloud connection",
|
|
158
|
+
"de": "Cloud-Verbindung"
|
|
159
|
+
},
|
|
160
|
+
"type": "boolean",
|
|
161
|
+
"role": "indicator.connected",
|
|
162
|
+
"read": true,
|
|
163
|
+
"write": false,
|
|
164
|
+
"def": false
|
|
165
|
+
},
|
|
166
|
+
"native": {}
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
}
|