iobroker.life360ng 1.0.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 skvarel <skvarel@inventwo.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 ADDED
@@ -0,0 +1,111 @@
1
+ # ioBroker.life360ng
2
+
3
+ ![Logo](admin/Life360_xl.svg)
4
+
5
+
6
+ ![Number of Installations](https://iobroker.live/badges/life360ng-installed.svg) ![Current version in stable repository](https://iobroker.live/badges/life360ng-stable.svg)
7
+ [![NPM Version](https://nodei.co/npm/iobroker.life360ng.svg?style=shields&data=v,u,d&color=orange)](https://www.npmjs.com/package/iobroker.life360ng)
8
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.life360ng.svg)](https://www.npmjs.com/package/iobroker.life360ng)
9
+
10
+ [![Paypal Donation](https://img.shields.io/badge/paypal-donate%20|%20spenden-green.svg)](https://www.paypal.com/donate/?hosted_button_id=7W6M3TFZ4W9LW)
11
+
12
+
13
+ ## Life360 adapter for ioBroker (next generation)
14
+
15
+ An ioBroker adapter for [Life360](https://www.life360.com) — updated for EU users with modern token-based authentication.
16
+
17
+ > **Disclaimer:** This is an unofficial, community-developed adapter. It is not affiliated with or endorsed by Life360, Inc. Provided free of charge for personal, non-commercial home automation use. Use at your own risk. Life360 may disable or change their API at any time without notice.
18
+
19
+ > **Privacy:** All data retrieved from Life360 is stored exclusively on your local ioBroker system. This adapter does **not** transmit any data to third parties or external cloud services beyond the Life360 API itself.
20
+
21
+ ## Description
22
+
23
+ This adapter connects to the [Life360](https://www.life360.com) cloud services to track people and detect presence at defined places. It retrieves circles, members and places data and persists it as ioBroker states, updated at a configurable interval.
24
+
25
+ ## Installation
26
+
27
+ Install the adapter in ioBroker Admin via a custom URL:
28
+ `https://github.com/inventwo/ioBroker.life360ng`
29
+
30
+ Or on the command line:
31
+
32
+ ```bash
33
+ iobroker npm install inventwo/iobroker.life360ng --loglevel error --prefix "/opt/iobroker"
34
+ ```
35
+
36
+ ## Configuration
37
+
38
+ ### Bearer Token (required for EU users)
39
+
40
+ Life360 has disabled password-based login for EU users. Obtain a Bearer token manually:
41
+
42
+ 1. Open [https://life360.com/login](https://life360.com/login) in your browser.
43
+ 2. Enter your email address and click **Continue**.
44
+ 3. Enter the one-time code sent to your email.
45
+ 4. Open browser DevTools (**F12**) and switch to the **Network** tab.
46
+ 5. Find the **POST** request named `token` (ignore OPTIONS).
47
+ 6. In **Preview** / **Response**, copy the value of `access_token`.
48
+ 7. Paste it into the **Bearer token** field in the adapter configuration.
49
+
50
+ **Note:** Tokens are long-lived (typically months). When expired, the adapter log will show a connection error — repeat the steps above to get a new token.
51
+
52
+ ### My Places
53
+
54
+ Add private places not visible to Life360 cloud services. The adapter checks presence at your custom places on every poll.
55
+
56
+ - Define a **Name** for the place.
57
+ - Set the geo-position (latitude and longitude).
58
+ - Set the radius in meters.
59
+
60
+ ### Integration
61
+
62
+ Choose which Life360 data to process: circles, places, people. Optionally forward location data to the ioBroker [Places-adapter](https://github.com/ioBroker/ioBroker.places).
63
+
64
+ ### Location-Tracking
65
+
66
+ Enable location-tracking to add geo-positioning details (latitude, longitude, `locationName`) to the people data points.
67
+
68
+ ## States
69
+
70
+ | State | Description |
71
+ |---|---|
72
+ | `people.<name>.locationName` | Current Life360 place name (e.g. Home) |
73
+ | `people.<name>.location` | Geo-position object |
74
+ | `info.connection` | `true` when connected to Life360 cloud |
75
+
76
+ ## Changelog
77
+
78
+ <!--
79
+ ### **WORK IN PROGRESS**
80
+ -->
81
+ ### 1.0.0 (2026-04-10)
82
+
83
+ - (skvarel) Fork from ioBroker.life360, renamed to life360ng
84
+ - (skvarel) Switched to token-only authentication (removed password/phone login)
85
+ - (skvarel) Fixed EU API connectivity (TLS cipher fix, v3 endpoints for members and places)
86
+ - (skvarel) Added `locationName` state
87
+ - (skvarel) Removed unused phone/password/countryCode config fields
88
+
89
+ ## License
90
+
91
+ MIT License
92
+
93
+ Copyright (c) 2026 skvarel <sk@inventwo.com>
94
+
95
+ Permission is hereby granted, free of charge, to any person obtaining a copy
96
+ of this software and associated documentation files (the "Software"), to deal
97
+ in the Software without restriction, including without limitation the rights
98
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
99
+ copies of the Software, and to permit persons to whom the Software is
100
+ furnished to do so, subject to the following conditions:
101
+
102
+ The above copyright notice and this permission notice shall be included in all
103
+ copies or substantial portions of the Software.
104
+
105
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
106
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
107
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
108
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
109
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
110
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
111
+ SOFTWARE.
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="150px" height="150px" viewBox="0 0 150 150" version="1.1">
3
+ <defs>
4
+ <filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
5
+ <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
6
+ </filter>
7
+ <image id="image7" width="150" height="150" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABmJLR0QA/wD/AP+gvaeTAAAByElEQVR4nO3STS5EURRG0XsLbZKagMmYgp6IiaAmoa1thiQ8E1CvZZefWqt7cpKvsccAAAAAgN9vrh2Xt7vbsbl4PNAW/pLl6Xmeve72nU/Xv6/Ox7i5/OZJ/AfzfjvGw97z5oBTOCLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIhLBLCIiEsEsIiISwSwiIx147LOJnjRXx84Xp8zPG+/PQMAAAA4Gh8Au0rDvGadv3HAAAAAElFTkSuQmCC"/>
8
+ <mask id="mask0">
9
+ <g filter="url(#alpha)">
10
+ <use xlink:href="#image7"/>
11
+ </g>
12
+ </mask>
13
+ <clipPath id="clip1">
14
+ <rect x="0" y="0" width="150" height="150"/>
15
+ </clipPath>
16
+ <g id="surface6" clip-path="url(#clip1)">
17
+ <path style=" stroke:none;fill-rule:evenodd;fill:rgb(50.196081%,50.196081%,100%);fill-opacity:1;" d="M 74.664062 62.152344 C 73.046875 62.152344 71.519531 62.828125 70.257812 64.09375 C 66.25 68.136719 65.460938 77.390625 65.503906 84.445312 C 65.589844 99.21875 70.332031 105.683594 73.5 106.429688 L 73.753906 106.484375 L 74.28125 106.519531 C 80.316406 106.519531 81.859375 90.4375 82.1875 85.507812 C 82.824219 75.917969 82.808594 63.070312 75.367188 62.195312 C 75.132812 62.167969 74.898438 62.15625 74.664062 62.152344 Z M 75.078125 40.175781 C 65.660156 40.175781 57.070312 43.765625 50.875 50.292969 C 43.328125 58.234375 39.722656 70.078125 40.445312 84.539062 C 41.308594 101.710938 47.640625 115.917969 58.273438 124.535156 L 59.335938 125.398438 C 63.367188 123.933594 67.550781 120.535156 70.367188 116.667969 L 71.6875 114.859375 L 69.886719 113.535156 C 65.75 110.484375 62.507812 105.957031 60.257812 100.066406 C 57.667969 93.300781 55.347656 71.984375 62.605469 61.421875 C 65.582031 57.082031 69.886719 54.792969 75.058594 54.792969 L 75.449219 54.796875 C 85.265625 55 90.125 62.765625 89.886719 77.882812 C 89.691406 90.21875 88.355469 97.90625 84.953125 106.238281 L 83.675781 109.363281 C 83.675781 109.363281 85.539062 109.914062 90.363281 108.59375 C 101.042969 105.476562 108.9375 91.601562 108.726562 76.328125 C 108.535156 62.523438 99.367188 40.503906 75.578125 40.179688 Z M 78.441406 119.382812 C 76.304688 122.722656 73.796875 125.640625 71.066406 127.933594 L 68.097656 130.417969 C 68.097656 130.417969 70.039062 131.417969 71.914062 131.898438 C 76.410156 133.28125 80.566406 133.804688 85.203125 133.804688 C 87.554688 133.804688 89.945312 133.625 92.300781 133.277344 C 111.898438 130.363281 132.972656 109.589844 134.308594 79.867188 C 135.082031 62.59375 129.453125 46.609375 118.460938 34.851562 C 107.636719 23.265625 92.691406 16.695312 76.378906 16.34375 L 75.078125 16.332031 C 42.519531 16.328125 16.472656 41.953125 15.78125 74.664062 C 15.417969 91.644531 20.746094 107.039062 30.394531 116.90625 C 33.269531 119.851562 37.1875 122.667969 40.023438 124.046875 C 45.640625 126.695312 48.878906 126.796875 48.878906 126.796875 C 48.878906 126.796875 46.132812 124.046875 43.960938 121.199219 C 37.113281 111.875 32.96875 99.042969 32.265625 84.949219 C 31.207031 63.78125 38.570312 51.339844 44.933594 44.636719 C 52.695312 36.464844 63.398438 31.96875 75.078125 31.96875 L 75.710938 31.96875 C 92.070312 32.195312 101.878906 40.761719 107.222656 47.910156 C 113.160156 55.847656 116.785156 66.425781 116.925781 76.210938 C 117.1875 95.347656 106.984375 112.277344 92.660156 116.46875 C 89.492188 117.398438 86.421875 117.867188 83.527344 117.867188 C 82.722656 117.867188 81.921875 117.832031 81.144531 117.757812 L 79.675781 117.621094 Z M 85.160156 142.011719 C 75.601562 142.011719 66.390625 139.496094 58.542969 134.730469 L 57.816406 134.289062 L 56.980469 134.441406 C 55.859375 134.644531 54.722656 134.785156 53.558594 134.875 C 52.816406 134.929688 52.046875 134.957031 51.292969 134.957031 C 41.796875 134.957031 32.292969 130.585938 24.535156 122.648438 C 13.355469 111.21875 7.179688 93.667969 7.585938 74.496094 C 8.375 37.277344 38.003906 8.128906 75.039062 8.128906 C 75.539062 8.128906 76.042969 8.132812 76.550781 8.140625 C 95.085938 8.539062 112.097656 16.035156 124.449219 29.246094 C 136.960938 42.625 143.371094 60.734375 142.492188 80.234375 C 140.910156 115.46875 116.070312 138.039062 93.503906 141.390625 C 90.742188 141.800781 87.953125 142.007812 85.160156 142.011719 Z M 85.160156 142.011719 "/>
18
+ </g>
19
+ </defs>
20
+ <g id="surface1">
21
+ <use xlink:href="#surface6" mask="url(#mask0)"/>
22
+ </g>
23
+ </svg>
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300px" height="102px" viewBox="0 0 299 102" version="1.1">
3
+ <defs>
4
+ <filter id="alpha" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
5
+ <feColorMatrix type="matrix" in="SourceGraphic" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
6
+ </filter>
7
+ <image id="image7" width="299" height="102" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASsAAABmCAYAAACTFbeyAAAABmJLR0QA/wD/AP+gvaeTAAABlklEQVR4nO3UoU1DYQCF0f81NXSUigoqmYSREKxTQUi6BQuAqgNbEroBeYLm5aPn6Cuu+sYAAAAAAAAAAADgN9Oc0c/59WmM3cO1z9yc88fjtLl/X/oGFKznzZ63Y3oRq7+2OtwtfQEqVksfAJhDrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLECkgQKyBBrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLECkgQKyBBrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLECkgQKyBBrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLECkgQKyBBrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLECkgQKyBBrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLECkgQKyBBrIAEsQISxApIECsgQayABLECEsQKSBArIEGsgASxAhLW82b74xhvn9e9coO+T19LXwAAAAAAAAAAAAD+hwt4lQ+vJzqTtwAAAABJRU5ErkJggg=="/>
8
+ <mask id="mask0">
9
+ <g filter="url(#alpha)">
10
+ <use xlink:href="#image7"/>
11
+ </g>
12
+ </mask>
13
+ <clipPath id="clip1">
14
+ <rect x="0" y="0" width="299" height="102"/>
15
+ </clipPath>
16
+ <g id="surface6" clip-path="url(#clip1)">
17
+ <path style=" stroke:none;fill-rule:evenodd;fill:rgb(50.196081%,50.196081%,100%);fill-opacity:1;" d="M 51.964844 42.699219 C 50.9375 42.699219 49.96875 43.128906 49.164062 43.9375 C 46.613281 46.515625 46.113281 52.417969 46.140625 56.917969 C 46.195312 66.339844 49.210938 70.464844 51.226562 70.941406 L 51.386719 70.976562 L 51.722656 71 C 55.5625 71 56.542969 60.742188 56.75 57.597656 C 57.15625 51.476562 57.144531 43.28125 52.414062 42.726562 C 52.265625 42.707031 52.117188 42.699219 51.964844 42.699219 Z M 52.230469 28.679688 C 46.242188 28.679688 40.777344 30.96875 36.839844 35.132812 C 32.039062 40.199219 29.746094 47.753906 30.207031 56.980469 C 30.757812 67.933594 34.78125 76.992188 41.542969 82.492188 L 42.21875 83.042969 C 44.785156 82.109375 47.445312 79.941406 49.234375 77.472656 L 50.074219 76.320312 L 48.929688 75.472656 C 46.296875 73.53125 44.234375 70.640625 42.804688 66.882812 C 41.160156 62.566406 39.683594 48.96875 44.296875 42.230469 C 46.191406 39.460938 48.929688 38 52.21875 38 L 52.464844 38.003906 C 58.707031 38.132812 61.796875 43.089844 61.644531 52.730469 C 61.523438 60.601562 60.671875 65.503906 58.511719 70.820312 L 57.695312 72.8125 C 57.695312 72.8125 58.882812 73.164062 61.949219 72.324219 C 68.742188 70.332031 73.761719 61.480469 73.625 51.738281 C 73.503906 42.933594 67.675781 28.886719 52.546875 28.679688 Z M 54.367188 79.207031 C 53.011719 81.335938 51.414062 83.195312 49.679688 84.660156 L 47.789062 86.246094 C 47.789062 86.246094 49.023438 86.882812 50.21875 87.1875 C 53.074219 88.070312 55.71875 88.402344 58.667969 88.402344 C 60.164062 88.402344 61.683594 88.289062 63.183594 88.070312 C 75.644531 86.210938 89.042969 72.957031 89.890625 53.996094 C 90.386719 42.980469 86.804688 32.78125 79.816406 25.28125 C 72.933594 17.890625 63.429688 13.699219 53.054688 13.476562 L 52.230469 13.46875 C 31.527344 13.464844 14.964844 29.8125 14.523438 50.679688 C 14.292969 61.511719 17.679688 71.332031 23.816406 77.625 C 25.644531 79.503906 28.136719 81.300781 29.9375 82.179688 C 33.511719 83.871094 35.570312 83.933594 35.570312 83.933594 C 35.570312 83.933594 33.824219 82.179688 32.441406 80.363281 C 28.089844 74.417969 25.453125 66.230469 25.003906 57.242188 C 24.332031 43.738281 29.015625 35.800781 33.0625 31.523438 C 37.996094 26.3125 44.800781 23.441406 52.230469 23.441406 L 52.632812 23.441406 C 63.035156 23.589844 69.273438 29.050781 72.671875 33.613281 C 76.445312 38.675781 78.75 45.421875 78.839844 51.664062 C 79.007812 63.875 72.519531 74.671875 63.410156 77.34375 C 61.394531 77.941406 59.441406 78.238281 57.601562 78.238281 C 57.089844 78.238281 56.582031 78.214844 56.085938 78.167969 L 55.152344 78.082031 L 54.367188 79.203125 Z M 58.640625 93.640625 C 52.5625 93.640625 46.707031 92.035156 41.714844 88.996094 L 41.253906 88.714844 L 40.722656 88.8125 C 40.007812 88.9375 39.285156 89.03125 38.546875 89.085938 C 38.074219 89.121094 37.585938 89.140625 37.105469 89.140625 C 31.066406 89.140625 25.023438 86.351562 20.089844 81.289062 C 12.980469 73.996094 9.054688 62.800781 9.3125 50.570312 C 9.816406 26.828125 28.65625 8.234375 52.203125 8.234375 C 52.523438 8.234375 52.84375 8.238281 53.164062 8.242188 C 64.953125 8.496094 75.769531 13.277344 83.625 21.707031 C 91.582031 30.242188 95.65625 41.792969 95.097656 54.230469 C 94.09375 76.707031 78.296875 91.105469 63.945312 93.242188 C 62.191406 93.503906 60.417969 93.636719 58.640625 93.640625 Z M 58.640625 93.640625 "/>
18
+ </g>
19
+ <image id="image13" width="299" height="102" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASsAAABmCAYAAACTFbeyAAAABmJLR0QA/wD/AP+gvaeTAAABO0lEQVR4nO3UsS0FYBSG4XPFLSQqS4jOEAYwgWlUJrCDGewgEY0RKBQS1U2YQG4h8XvleeqTfKd6ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+NZm9QPAep+7q9uZh6M146dPm+3dzb4zsQLmc3f2PvN8vGb85H6zfb3Yd3bwG78A/JRYAQliBSSIFZAgVkCCWAEJYgUkiBWQIFZAglgBCWIFJIgVkCBWQIJYAQliBSSIFZAgVkCCWAEJYgUkiBWQIFZAglgBCWIFJIgVkCBWQIJYAQliBSSIFZAgVkCCWAEJYgUkiBWQIFZAglgBCWIFJIgVkHC4+gHgL7h8mXn8WLN9/jZzvWYaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP61L3e9EvVwQXN7AAAAAElFTkSuQmCC"/>
20
+ <mask id="mask1">
21
+ <g filter="url(#alpha)">
22
+ <use xlink:href="#image13"/>
23
+ </g>
24
+ </mask>
25
+ <clipPath id="clip2">
26
+ <rect x="0" y="0" width="299" height="102"/>
27
+ </clipPath>
28
+ <g id="surface12" clip-path="url(#clip2)">
29
+ <path style=" stroke:none;fill-rule:evenodd;fill:rgb(50.196081%,50.196081%,100%);fill-opacity:1;" d="M 273.894531 33.371094 C 284.347656 33.371094 289.734375 42.519531 289.734375 52.640625 C 289.734375 62.761719 284.347656 71.910156 273.894531 71.910156 C 263.441406 71.910156 258.050781 62.761719 258.050781 52.640625 C 258.050781 42.519531 263.441406 33.371094 273.894531 33.371094 M 273.894531 40.898438 C 268.453125 40.898438 266.082031 46.6875 266.082031 52.640625 C 266.082031 58.597656 268.453125 64.386719 273.894531 64.386719 C 279.335938 64.386719 281.707031 58.597656 281.707031 52.640625 C 281.707031 46.6875 279.335938 40.898438 273.894531 40.898438 "/>
30
+ </g>
31
+ </defs>
32
+ <g id="surface1">
33
+ <use xlink:href="#surface6" mask="url(#mask0)"/>
34
+ <path style=" stroke:none;fill-rule:evenodd;fill:rgb(50.196081%,50.196081%,100%);fill-opacity:1;" d="M 122.464844 33.320312 L 122.464844 63.578125 L 133.617188 63.578125 L 133.617188 71.207031 L 114.382812 71.207031 L 114.382812 33.320312 Z M 142.132812 41.328125 C 139.597656 41.328125 137.550781 39.21875 137.550781 36.730469 C 137.550781 34.238281 139.597656 32.128906 142.132812 32.128906 C 144.660156 32.128906 146.710938 34.238281 146.710938 36.730469 C 146.710938 39.21875 144.664062 41.328125 142.132812 41.328125 Z M 138.195312 71.207031 L 146.066406 71.207031 L 146.066406 44.46875 L 138.195312 44.46875 Z M 151.757812 44.46875 L 151.757812 43.277344 C 151.757812 36.082031 156.015625 31.964844 162.699219 31.964844 C 164.476562 31.964844 166.039062 32.289062 167.0625 32.832031 L 167.0625 39.542969 C 166.253906 39.109375 165.285156 38.839844 164.046875 38.839844 C 161.511719 38.839844 159.570312 40.140625 159.570312 43.332031 L 159.570312 44.46875 L 166.46875 44.46875 L 166.46875 50.964844 L 159.570312 50.964844 L 159.570312 71.207031 L 151.757812 71.207031 Z M 194.488281 64.820312 C 192.277344 69.203125 187.96875 71.910156 182.148438 71.910156 C 173.851562 71.910156 168.03125 66.121094 168.03125 57.839844 C 168.03125 49.773438 173.957031 43.765625 181.828125 43.765625 C 189.855469 43.765625 195.40625 49.664062 195.40625 58.054688 C 195.40625 58.972656 195.351562 59.679688 195.296875 60.003906 L 175.738281 60.003906 C 176.007812 63.144531 178.863281 65.414062 182.148438 65.414062 C 185.058594 65.414062 186.625 64.171875 187.863281 62.167969 Z M 187.699219 54.863281 C 187.378906 51.992188 184.953125 49.9375 181.773438 49.9375 C 178.648438 49.9375 176.113281 52.316406 175.792969 54.863281 Z M 215.851562 44.578125 C 215.851562 42.304688 214.019531 40.515625 211.378906 40.515625 C 208.527344 40.515625 206.636719 42.683594 206.585938 45.769531 L 198.933594 45.769531 C 198.984375 38.027344 204.105469 33.371094 211.488281 33.371094 C 218.601562 33.371094 223.773438 37.757812 223.71875 43.660156 C 223.71875 47.011719 222.15625 49.664062 219.246094 51.398438 C 223.074219 53.019531 225.28125 56.050781 225.28125 60.164062 C 225.28125 67.09375 219.570312 71.910156 211.703125 71.910156 C 203.566406 71.910156 198.230469 66.988281 198.125 58.757812 L 205.9375 58.757812 C 206.101562 62.058594 208.417969 64.605469 211.8125 64.605469 C 214.988281 64.605469 217.253906 62.710938 217.253906 59.734375 C 217.253906 56.863281 214.832031 54.96875 211.273438 54.96875 L 209.546875 54.96875 L 209.546875 48.851562 L 211.164062 48.851562 C 213.75 48.851562 215.851562 46.902344 215.851562 44.578125 M 241.78125 71.910156 C 233.753906 71.910156 227.71875 66.121094 227.71875 58.324219 C 227.71875 54.96875 229.015625 51.179688 231.4375 47.394531 L 240.003906 34.023438 L 249.164062 34.023438 L 240.867188 46.09375 C 241.726562 45.714844 242.808594 45.605469 243.558594 45.605469 C 250.671875 45.605469 255.84375 51.234375 255.84375 58.21875 C 255.84375 66.011719 249.757812 71.910156 241.78125 71.910156 M 241.78125 52.316406 C 238.28125 52.316406 235.53125 55.023438 235.53125 58.433594 C 235.53125 61.898438 238.226562 64.660156 241.726562 64.660156 C 245.230469 64.660156 248.03125 61.898438 248.03125 58.488281 C 248.03125 55.023438 245.230469 52.316406 241.78125 52.316406 "/>
35
+ <use xlink:href="#surface12" mask="url(#mask1)"/>
36
+ </g>
37
+ </svg>
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Meine Orte",
4
+ "tab_integration": "Integration",
5
+ "tab_advanced": "Erweitert",
6
+
7
+ "token_hint": "EU-Nutzer – Bearer-Token ermitteln:\n1. Öffne https://life360.com/login\n2. E-Mail-Adresse eingeben → 'Weiter' klicken\n3. Einmalcode aus der E-Mail eingeben\n4. Browser-Entwicklertools öffnen (F12) → Tab 'Netzwerk'\n5. POST-Request 'token' suchen (nicht OPTIONS)\n6. Tab 'Vorschau/Antwort' → Wert von 'access_token' kopieren und unten einfügen\n\nToken sind mehrere Monate gültig.",
8
+
9
+ "life360_token": "Bearer-Token",
10
+ "life360_username": "E-Mail-Adresse (optional, Fallback für Passwort-Auth)",
11
+ "life360_username_help": "Nur benötigt wenn Passwort-Login statt Token verwendet werden soll",
12
+
13
+ "life360_polling_interval": "Abfrageintervall (Sekunden)",
14
+ "life360_polling_interval_help": "Minimum 15 Sekunden, Maximum 1440 Sekunden",
15
+
16
+ "place_name": "Name",
17
+ "place_latitude": "Breitengrad",
18
+ "place_longitude": "Längengrad",
19
+ "place_radius": "Radius (m)",
20
+ "place_circle": "Kreis (optional)",
21
+
22
+ "section_life360_data": "Life360-Daten",
23
+ "process_life360_circles": "Life360-Kreise verarbeiten",
24
+ "process_life360_places": "Life360-Orte verarbeiten",
25
+ "process_life360_people": "Life360-Personen verarbeiten",
26
+
27
+ "section_places_adapter": "Places-Adapter",
28
+ "sendto_places_adapter_instance": "Places-Adapter-Instanz (-1 = deaktiviert)",
29
+ "sendto_places_adapter_instance_help": "Instanznummer des Places-Adapters eingeben (z. B. 0). -1 deaktiviert die Weiterleitung.",
30
+ "sendto_places_adapter_regexp": "Regex-Filter für Personen (leer = alle senden)",
31
+ "sendto_places_adapter_regexp_help": "Regulärer Ausdruck, abgeglichen gegen '[Vorname] [Nachname]'. Leer lassen um alle zu senden.",
32
+
33
+ "section_location_tracking": "Standortverfolgung",
34
+ "track_location_people": "Standortverfolgung für Personen aktivieren",
35
+ "location_object_type": "Geo-Positionsobjekt-Typ",
36
+
37
+ "debugging_verbose": "Ausführliche Protokollierung aktivieren"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "My Places",
4
+ "tab_integration": "Integration",
5
+ "tab_advanced": "Advanced",
6
+
7
+ "token_hint": "EU users – how to get your Bearer token:\n1. Open https://life360.com/login\n2. Enter your email address → click Continue\n3. Enter the one-time code sent to your email\n4. Open browser DevTools (F12) → Network tab\n5. Find the POST request named 'token' (not OPTIONS)\n6. Open Preview / Response tab → copy the value of 'access_token' and paste it below\n\nTokens are valid for several months.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "Email address (optional, fallback for password auth)",
11
+ "life360_username_help": "Only needed if you want to use password-based login instead of token",
12
+
13
+ "life360_polling_interval": "Polling interval (seconds)",
14
+ "life360_polling_interval_help": "Minimum 15 seconds, maximum 1440 seconds",
15
+
16
+ "place_name": "Name",
17
+ "place_latitude": "Latitude",
18
+ "place_longitude": "Longitude",
19
+ "place_radius": "Radius (m)",
20
+ "place_circle": "Circle (optional)",
21
+
22
+ "section_life360_data": "Life360 data",
23
+ "process_life360_circles": "Process Life360 circles",
24
+ "process_life360_places": "Process Life360 places",
25
+ "process_life360_people": "Process Life360 people",
26
+
27
+ "section_places_adapter": "Places-adapter",
28
+ "sendto_places_adapter_instance": "Places-adapter instance (-1 = disabled)",
29
+ "sendto_places_adapter_instance_help": "Enter the instance number of the Places-adapter (e.g. 0). Set to -1 to disable forwarding.",
30
+ "sendto_places_adapter_regexp": "Regex filter for people (empty = send all)",
31
+ "sendto_places_adapter_regexp_help": "Regular expression matched against '[Firstname] [Lastname]'. Leave empty to send all.",
32
+
33
+ "section_location_tracking": "Location-tracking",
34
+ "track_location_people": "Enable location-tracking for people",
35
+ "location_object_type": "Geo-location object type",
36
+
37
+ "debugging_verbose": "Enable verbose logging"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Mis lugares",
4
+ "tab_integration": "Integración",
5
+ "tab_advanced": "Avanzado",
6
+
7
+ "token_hint": "Usuarios de la UE – cómo obtener el Bearer token:\n1. Abrir https://life360.com/login\n2. Introducir la dirección de correo electrónico → hacer clic en Continuar\n3. Introducir el código de un solo uso enviado por correo electrónico\n4. Abrir las herramientas de desarrollo del navegador (F12) → pestaña Red\n5. Buscar la solicitud POST llamada 'token' (no OPTIONS)\n6. Abrir la pestaña Vista previa / Respuesta → copiar el valor de 'access_token' y pegarlo abajo\n\nLos tokens son válidos durante varios meses.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "Dirección de correo electrónico (opcional, alternativa para autenticación por contraseña)",
11
+ "life360_username_help": "Solo se necesita si se desea usar el inicio de sesión con contraseña en lugar del token",
12
+
13
+ "life360_polling_interval": "Intervalo de consulta (segundos)",
14
+ "life360_polling_interval_help": "Mínimo 15 segundos, máximo 1440 segundos",
15
+
16
+ "place_name": "Nombre",
17
+ "place_latitude": "Latitud",
18
+ "place_longitude": "Longitud",
19
+ "place_radius": "Radio (m)",
20
+ "place_circle": "Círculo (opcional)",
21
+
22
+ "section_life360_data": "Datos de Life360",
23
+ "process_life360_circles": "Procesar círculos de Life360",
24
+ "process_life360_places": "Procesar lugares de Life360",
25
+ "process_life360_people": "Procesar personas de Life360",
26
+
27
+ "section_places_adapter": "Adaptador de lugares",
28
+ "sendto_places_adapter_instance": "Instancia del adaptador de lugares (-1 = desactivado)",
29
+ "sendto_places_adapter_instance_help": "Introduce el número de instancia del adaptador de lugares (p. ej. 0). Establece -1 para desactivar el reenvío.",
30
+ "sendto_places_adapter_regexp": "Filtro regex para personas (vacío = enviar todo)",
31
+ "sendto_places_adapter_regexp_help": "Expresión regular comparada con '[Nombre] [Apellido]'. Dejar vacío para enviar todo.",
32
+
33
+ "section_location_tracking": "Seguimiento de ubicación",
34
+ "track_location_people": "Activar seguimiento de ubicación para personas",
35
+ "location_object_type": "Tipo de objeto de geo-localización",
36
+
37
+ "debugging_verbose": "Activar registro detallado"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Mes lieux",
4
+ "tab_integration": "Intégration",
5
+ "tab_advanced": "Avancé",
6
+
7
+ "token_hint": "Utilisateurs UE – comment obtenir le Bearer token :\n1. Ouvrir https://life360.com/login\n2. Saisir l'adresse e-mail → cliquer sur Continuer\n3. Saisir le code à usage unique envoyé par e-mail\n4. Ouvrir les outils de développement du navigateur (F12) → onglet Réseau\n5. Trouver la requête POST nommée 'token' (pas OPTIONS)\n6. Ouvrir l'onglet Aperçu / Réponse → copier la valeur de 'access_token' et la coller ci-dessous\n\nLes tokens sont valables plusieurs mois.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "Adresse e-mail (optionnel, alternative pour l'authentification par mot de passe)",
11
+ "life360_username_help": "Nécessaire uniquement si vous souhaitez utiliser la connexion par mot de passe au lieu du token",
12
+
13
+ "life360_polling_interval": "Intervalle d'interrogation (secondes)",
14
+ "life360_polling_interval_help": "Minimum 15 secondes, maximum 1440 secondes",
15
+
16
+ "place_name": "Nom",
17
+ "place_latitude": "Latitude",
18
+ "place_longitude": "Longitude",
19
+ "place_radius": "Rayon (m)",
20
+ "place_circle": "Cercle (optionnel)",
21
+
22
+ "section_life360_data": "Données Life360",
23
+ "process_life360_circles": "Traiter les cercles Life360",
24
+ "process_life360_places": "Traiter les lieux Life360",
25
+ "process_life360_people": "Traiter les personnes Life360",
26
+
27
+ "section_places_adapter": "Adaptateur Places",
28
+ "sendto_places_adapter_instance": "Instance de l'adaptateur Places (-1 = désactivé)",
29
+ "sendto_places_adapter_instance_help": "Entrez le numéro d'instance de l'adaptateur Places (p. ex. 0). Définir -1 pour désactiver le transfert.",
30
+ "sendto_places_adapter_regexp": "Filtre regex pour les personnes (vide = tout envoyer)",
31
+ "sendto_places_adapter_regexp_help": "Expression régulière comparée à '[Prénom] [Nom]'. Laisser vide pour tout envoyer.",
32
+
33
+ "section_location_tracking": "Suivi de localisation",
34
+ "track_location_people": "Activer le suivi de localisation pour les personnes",
35
+ "location_object_type": "Type d'objet de géolocalisation",
36
+
37
+ "debugging_verbose": "Activer la journalisation détaillée"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "I miei luoghi",
4
+ "tab_integration": "Integrazione",
5
+ "tab_advanced": "Avanzato",
6
+
7
+ "token_hint": "Utenti UE – come ottenere il Bearer token:\n1. Aprire https://life360.com/login\n2. Inserire l'indirizzo e-mail → fare clic su Continua\n3. Inserire il codice monouso ricevuto via e-mail\n4. Aprire gli strumenti sviluppatore del browser (F12) → scheda Rete\n5. Trovare la richiesta POST denominata 'token' (non OPTIONS)\n6. Aprire la scheda Anteprima / Risposta → copiare il valore di 'access_token' e incollarlo qui sotto\n\nI token sono validi per diversi mesi.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "Indirizzo e-mail (opzionale, alternativa per l'autenticazione con password)",
11
+ "life360_username_help": "Necessario solo se si desidera utilizzare l'accesso con password invece del token",
12
+
13
+ "life360_polling_interval": "Intervallo di interrogazione (secondi)",
14
+ "life360_polling_interval_help": "Minimo 15 secondi, massimo 1440 secondi",
15
+
16
+ "place_name": "Nome",
17
+ "place_latitude": "Latitudine",
18
+ "place_longitude": "Longitudine",
19
+ "place_radius": "Raggio (m)",
20
+ "place_circle": "Cerchio (opzionale)",
21
+
22
+ "section_life360_data": "Dati Life360",
23
+ "process_life360_circles": "Elabora cerchi Life360",
24
+ "process_life360_places": "Elabora luoghi Life360",
25
+ "process_life360_people": "Elabora persone Life360",
26
+
27
+ "section_places_adapter": "Adattatore Places",
28
+ "sendto_places_adapter_instance": "Istanza adattatore Places (-1 = disabilitato)",
29
+ "sendto_places_adapter_instance_help": "Inserire il numero di istanza dell'adattatore Places (es. 0). Impostare -1 per disabilitare l'inoltro.",
30
+ "sendto_places_adapter_regexp": "Filtro regex per persone (vuoto = invia tutto)",
31
+ "sendto_places_adapter_regexp_help": "Espressione regolare confrontata con '[Nome] [Cognome]'. Lasciare vuoto per inviare tutto.",
32
+
33
+ "section_location_tracking": "Tracciamento della posizione",
34
+ "track_location_people": "Abilita tracciamento della posizione per le persone",
35
+ "location_object_type": "Tipo di oggetto di geo-localizzazione",
36
+
37
+ "debugging_verbose": "Abilita registrazione dettagliata"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Mijn plaatsen",
4
+ "tab_integration": "Integratie",
5
+ "tab_advanced": "Geavanceerd",
6
+
7
+ "token_hint": "EU-gebruikers – hoe de Bearer token te verkrijgen:\n1. Open https://life360.com/login\n2. Voer uw e-mailadres in → klik op Doorgaan\n3. Voer de eenmalige code in die naar uw e-mail is verzonden\n4. Open de browserontwikkelaarstools (F12) → tabblad Netwerk\n5. Zoek het POST-verzoek genaamd 'token' (niet OPTIONS)\n6. Open het tabblad Voorbeeld / Antwoord → kopieer de waarde van 'access_token' en plak deze hieronder\n\nTokens zijn meerdere maanden geldig.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "E-mailadres (optioneel, alternatief voor wachtwoordauthenticatie)",
11
+ "life360_username_help": "Alleen nodig als u wachtwoordgebaseerde login wilt gebruiken in plaats van token",
12
+
13
+ "life360_polling_interval": "Polling interval (seconden)",
14
+ "life360_polling_interval_help": "Minimum 15 seconden, maximum 1440 seconden",
15
+
16
+ "place_name": "Naam",
17
+ "place_latitude": "Breedtegraad",
18
+ "place_longitude": "Lengtegraad",
19
+ "place_radius": "Straal (m)",
20
+ "place_circle": "Cirkel (optioneel)",
21
+
22
+ "section_life360_data": "Life360 gegevens",
23
+ "process_life360_circles": "Life360 cirkels verwerken",
24
+ "process_life360_places": "Life360 plaatsen verwerken",
25
+ "process_life360_people": "Life360 personen verwerken",
26
+
27
+ "section_places_adapter": "Places-adapter",
28
+ "sendto_places_adapter_instance": "Places-adapter instantie (-1 = uitgeschakeld)",
29
+ "sendto_places_adapter_instance_help": "Voer het instantienummer van de Places-adapter in (bijv. 0). Stel -1 in om doorsturen uit te schakelen.",
30
+ "sendto_places_adapter_regexp": "Regex-filter voor personen (leeg = alles verzenden)",
31
+ "sendto_places_adapter_regexp_help": "Reguliere expressie vergeleken met '[Voornaam] [Achternaam]'. Leeg laten om alles te verzenden.",
32
+
33
+ "section_location_tracking": "Locatie-tracking",
34
+ "track_location_people": "Locatie-tracking inschakelen voor personen",
35
+ "location_object_type": "Geo-locatie object type",
36
+
37
+ "debugging_verbose": "Uitgebreide logging inschakelen"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Moje miejsca",
4
+ "tab_integration": "Integracja",
5
+ "tab_advanced": "Zaawansowane",
6
+
7
+ "token_hint": "Użytkownicy UE – jak uzyskać Bearer token:\n1. Otwórz https://life360.com/login\n2. Wpisz adres e-mail → kliknij Dalej\n3. Wpisz jednorazowy kod wysłany na e-mail\n4. Otwórz narzędzia deweloperskie przeglądarki (F12) → zakładka Sieć\n5. Znajdź żądanie POST o nazwie 'token' (nie OPTIONS)\n6. Otwórz zakładkę Podgląd / Odpowiedź → skopiuj wartość 'access_token' i wklej poniżej\n\nTokeny są ważne przez kilka miesięcy.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "Adres e-mail (opcjonalny, alternatywa dla uwierzytelniania hasłem)",
11
+ "life360_username_help": "Potrzebne tylko, jeśli chcesz używać logowania hasłem zamiast tokena",
12
+
13
+ "life360_polling_interval": "Interwał odpytywania (sekundy)",
14
+ "life360_polling_interval_help": "Minimum 15 sekund, maksimum 1440 sekund",
15
+
16
+ "place_name": "Nazwa",
17
+ "place_latitude": "Szerokość geograficzna",
18
+ "place_longitude": "Długość geograficzna",
19
+ "place_radius": "Promień (m)",
20
+ "place_circle": "Krąg (opcjonalny)",
21
+
22
+ "section_life360_data": "Dane Life360",
23
+ "process_life360_circles": "Przetwarzaj kręgi Life360",
24
+ "process_life360_places": "Przetwarzaj miejsca Life360",
25
+ "process_life360_people": "Przetwarzaj osoby Life360",
26
+
27
+ "section_places_adapter": "Adapter Places",
28
+ "sendto_places_adapter_instance": "Instancja adaptera Places (-1 = wyłączony)",
29
+ "sendto_places_adapter_instance_help": "Wpisz numer instancji adaptera Places (np. 0). Ustaw -1, aby wyłączyć przekazywanie.",
30
+ "sendto_places_adapter_regexp": "Filtr regex dla osób (puste = wyślij wszystko)",
31
+ "sendto_places_adapter_regexp_help": "Wyrażenie regularne dopasowywane do '[Imię] [Nazwisko]'. Pozostaw puste, aby wysyłać wszystko.",
32
+
33
+ "section_location_tracking": "Śledzenie lokalizacji",
34
+ "track_location_people": "Włącz śledzenie lokalizacji dla osób",
35
+ "location_object_type": "Typ obiektu geo-lokalizacji",
36
+
37
+ "debugging_verbose": "Włącz szczegółowe logowanie"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Meus locais",
4
+ "tab_integration": "Integração",
5
+ "tab_advanced": "Avançado",
6
+
7
+ "token_hint": "Utilizadores da UE – como obter o Bearer token:\n1. Abrir https://life360.com/login\n2. Inserir o endereço de e-mail → clicar em Continuar\n3. Inserir o código único enviado para o e-mail\n4. Abrir as ferramentas de desenvolvimento do browser (F12) → separador Rede\n5. Encontrar o pedido POST denominado 'token' (não OPTIONS)\n6. Abrir o separador Pré-visualização / Resposta → copiar o valor de 'access_token' e colá-lo abaixo\n\nOs tokens são válidos durante vários meses.",
8
+
9
+ "life360_token": "Bearer token",
10
+ "life360_username": "Endereço de e-mail (opcional, alternativa para autenticação por palavra-passe)",
11
+ "life360_username_help": "Apenas necessário se pretender utilizar o início de sessão por palavra-passe em vez do token",
12
+
13
+ "life360_polling_interval": "Intervalo de consulta (segundos)",
14
+ "life360_polling_interval_help": "Mínimo 15 segundos, máximo 1440 segundos",
15
+
16
+ "place_name": "Nome",
17
+ "place_latitude": "Latitude",
18
+ "place_longitude": "Longitude",
19
+ "place_radius": "Raio (m)",
20
+ "place_circle": "Círculo (opcional)",
21
+
22
+ "section_life360_data": "Dados Life360",
23
+ "process_life360_circles": "Processar círculos Life360",
24
+ "process_life360_places": "Processar locais Life360",
25
+ "process_life360_people": "Processar pessoas Life360",
26
+
27
+ "section_places_adapter": "Adaptador Places",
28
+ "sendto_places_adapter_instance": "Instância do adaptador Places (-1 = desativado)",
29
+ "sendto_places_adapter_instance_help": "Inserir o número de instância do adaptador Places (ex.: 0). Definir -1 para desativar o encaminhamento.",
30
+ "sendto_places_adapter_regexp": "Filtro regex para pessoas (vazio = enviar tudo)",
31
+ "sendto_places_adapter_regexp_help": "Expressão regular comparada com '[Nome Próprio] [Apelido]'. Deixar vazio para enviar tudo.",
32
+
33
+ "section_location_tracking": "Rastreamento de localização",
34
+ "track_location_people": "Ativar rastreamento de localização para pessoas",
35
+ "location_object_type": "Tipo de objeto de geolocalização",
36
+
37
+ "debugging_verbose": "Ativar registo detalhado"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "Мои места",
4
+ "tab_integration": "Интеграция",
5
+ "tab_advanced": "Расширенные",
6
+
7
+ "token_hint": "Пользователи ЕС – как получить Bearer токен:\n1. Открыть https://life360.com/login\n2. Ввести адрес электронной почты → нажать Продолжить\n3. Ввести одноразовый код, отправленный на e-mail\n4. Открыть инструменты разработчика браузера (F12) → вкладка Сеть\n5. Найти POST-запрос с именем 'token' (не OPTIONS)\n6. Открыть вкладку Предварительный просмотр / Ответ → скопировать значение 'access_token' и вставить ниже\n\nТокены действительны несколько месяцев.",
8
+
9
+ "life360_token": "Bearer токен",
10
+ "life360_username": "Адрес электронной почты (необязательно, альтернатива для аутентификации по паролю)",
11
+ "life360_username_help": "Требуется только если вы хотите использовать вход по паролю вместо токена",
12
+
13
+ "life360_polling_interval": "Интервал опроса (секунды)",
14
+ "life360_polling_interval_help": "Минимум 15 секунд, максимум 1440 секунд",
15
+
16
+ "place_name": "Название",
17
+ "place_latitude": "Широта",
18
+ "place_longitude": "Долгота",
19
+ "place_radius": "Радиус (м)",
20
+ "place_circle": "Круг (необязательно)",
21
+
22
+ "section_life360_data": "Данные Life360",
23
+ "process_life360_circles": "Обрабатывать круги Life360",
24
+ "process_life360_places": "Обрабатывать места Life360",
25
+ "process_life360_people": "Обрабатывать людей Life360",
26
+
27
+ "section_places_adapter": "Адаптер Places",
28
+ "sendto_places_adapter_instance": "Экземпляр адаптера Places (-1 = отключено)",
29
+ "sendto_places_adapter_instance_help": "Введите номер экземпляра адаптера Places (напр. 0). Установите -1 для отключения пересылки.",
30
+ "sendto_places_adapter_regexp": "Regex-фильтр для людей (пусто = отправить всё)",
31
+ "sendto_places_adapter_regexp_help": "Регулярное выражение, сопоставляемое с '[Имя] [Фамилия]'. Оставьте пустым для отправки всех.",
32
+
33
+ "section_location_tracking": "Отслеживание местоположения",
34
+ "track_location_people": "Включить отслеживание местоположения для людей",
35
+ "location_object_type": "Тип объекта геолокации",
36
+
37
+ "debugging_verbose": "Включить подробное протоколирование"
38
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "tab_general": "Life360",
3
+ "tab_myplaces": "我的地点",
4
+ "tab_integration": "集成",
5
+ "tab_advanced": "高级",
6
+
7
+ "token_hint": "欧盟用户 – 如何获取 Bearer 令牌:\n1. 打开 https://life360.com/login\n2. 输入电子邮件地址 → 点击继续\n3. 输入发送到邮箱的一次性验证码\n4. 打开浏览器开发者工具(F12)→ 网络选项卡\n5. 找到名为 'token' 的 POST 请求(非 OPTIONS)\n6. 打开预览 / 响应选项卡 → 复制 'access_token' 的值并粘贴到下方\n\n令牌有效期为数月。",
8
+
9
+ "life360_token": "Bearer 令牌",
10
+ "life360_username": "电子邮件地址(可选,密码认证的备用方案)",
11
+ "life360_username_help": "仅在希望使用密码登录而非令牌时才需要",
12
+
13
+ "life360_polling_interval": "轮询间隔(秒)",
14
+ "life360_polling_interval_help": "最少 15 秒,最多 1440 秒",
15
+
16
+ "place_name": "名称",
17
+ "place_latitude": "纬度",
18
+ "place_longitude": "经度",
19
+ "place_radius": "半径(米)",
20
+ "place_circle": "圈子(可选)",
21
+
22
+ "section_life360_data": "Life360 数据",
23
+ "process_life360_circles": "处理 Life360 圈子",
24
+ "process_life360_places": "处理 Life360 地点",
25
+ "process_life360_people": "处理 Life360 成员",
26
+
27
+ "section_places_adapter": "Places 适配器",
28
+ "sendto_places_adapter_instance": "Places 适配器实例(-1 = 已禁用)",
29
+ "sendto_places_adapter_instance_help": "输入 Places 适配器的实例编号(例如 0)。设为 -1 可禁用转发。",
30
+ "sendto_places_adapter_regexp": "人员的正则表达式过滤器(空 = 发送所有)",
31
+ "sendto_places_adapter_regexp_help": "与 '[名字] [姓氏]' 匹配的正则表达式。留空则发送所有人。",
32
+
33
+ "section_location_tracking": "位置跟踪",
34
+ "track_location_people": "为人员启用位置跟踪",
35
+ "location_object_type": "地理位置对象类型",
36
+
37
+ "debugging_verbose": "启用详细日志记录"
38
+ }