mirror of
https://github.com/house-of-abbey/GarminHomeAssistant.git
synced 2025-05-02 05:32:27 +00:00
Merge pull request #76 from house-of-abbey/74-cache-has-results
This commit is contained in:
12
README.md
12
README.md
@ -220,13 +220,6 @@ You may choose to cache your menu definition on your device in order to reduce t
|
||||
|
||||
The application timeout prevents the app running on your watch when you have forgotten to close it. It prevents the refreshing of the menu statuses and therefore excessive wear on your battery level. There is a second timeout value for confirmation views. This is intended for use with more sensitive toggles so that the confirmation view is not left open and forgotten and then confirmed accidentally without you noticing. **We cannot advise you this is safe, be careful what you toggle with the watch application!**
|
||||
|
||||
The menu style option selects between two menu presentations as follows:
|
||||
|
||||
| Menu Type | Image | Description |
|
||||
|-----------------|------------------------------------------------------------------------|-------------|
|
||||
| Icons (default) | <img src="images/Venu2_LeanUI.png" width="200" title="Venu 2"/> | "Lean User Interface" version removing the second row of text in favour of icons. Tap icons are blue with a pointing finger, menu items has three dots as favours by many graphical user interfaces. |
|
||||
| Labels | <img src="images/Venu2_Original.png" width="200" title="Venu 2"/> | Initial version that had a second row of text. This extra text has yet to add much value. Menu and Tap actions are distinguished by text, and the toggle status is duplicated by text. A future version could possibly offer the means to customise the toggle menu item text, hence this option has not been deprecated yet. |
|
||||
|
||||
There is a toggle setting for "text alignment" and provides finer adjustment for right-to-left languages. Perhaps this could be made automatic based on device language?
|
||||
|
||||
Another toggle setting for the **Widget version only** allows the user to select a non-standard user interface behaviour. As soon as the menu is retrieved the widget view is replaced by the menu without waiting for a user selection. This has been included as requested by a user, but defaults to off which retains the expected user interactions.
|
||||
@ -276,8 +269,6 @@ The `id` attribute values are taken from the same names used in [`strings.xml`](
|
||||
|
||||
## Battery Level Reporting
|
||||
|
||||
We've had [a report](https://github.com/house-of-abbey/GarminHomeAssistant/issues/39) that this feature does not work without **administrator priviledges**. We've reviewed possible fixes and come up short. We are unable to fix this at present but invite those skilled in the art of Home Assistant to suggest a solution to us!
|
||||
|
||||
The application and widget both now include a background service to report your watch's battery level and charging status. This requires some [setup](BatteryReporting.md) via YAML in Home Assistant to display the transmitted value. We offer this [trouble shooting](Troubleshooting.md#watch-battery-level-reporting) guide.
|
||||
|
||||
## Version History
|
||||
@ -296,7 +287,10 @@ The application and widget both now include a background service to report your
|
||||
| 2.1 | Deployment of an idea to provide Home Assistant with access to the watch battery level. Using this requires [significant setup](BatteryReporting.md) on the Home Assistant configuration and hence is detailed separately. Due to this, the default state for this battery option is _off_. Changed the application settings user interface to be more intuitive, and hence amended the way settings are managed in the background. |
|
||||
| 2.2 | Adds a feature to cache the menu configuration and save the time taken for an HTTP request to fetch it. You as the user are responsible for managing the cache by clearing it when you update your configuration. Improvement to widget root display updates. Bug fix for battery level reporting when in the glance carousel. Fixed an uninternationalised string, "Execute". Unfixed issue with battery level updates when the user is not an administrator. |
|
||||
| 2.3 | Fix for battery level updates where previously the function only worked for administrator accounts. The new solution is based on Webhooks and is simpler to implement on Home Assistant. Language support fix where an automatic translation produced an inappropriate word, possibly in more than one language. |
|
||||
| 2.4 | Sensor status reporting via Home Assistant 'templates'. This provides a generalised way of viewing the status of any entity as long as the result can be rendered as text, e.g. 'uncovered', 'open', '76%', '21 °C'. Removal of the menu style option. The original style was kept after the introduction of the icon style solely to keep the code for a possible re-use for sensor statuses. This version delivers that new feature, hence the style option has been removed. The new JSON configuration file format allows for the old style to be replicated if you are desperate! |
|
||||
|
||||
## Known Issues
|
||||
|
||||
1. On some (old) devices (e.g. Vivoactive 3, Fenix 5s & Edge 520+), the menu does not update correctly to reflect changes in state effected by an external Home Assistant control. E.g. when the phone application changes the toggle status of a switch, the Garmin application does not reflect that change until the menu is touched or scrolled a little. This is a [known issue](https://forums.garmin.com/developer/connect-iq/i/bug-reports/menu2-doesn-t-allow-live-updates) already reported without a suggested software fix.
|
||||
|
||||
2. Widgets have less memory than applications. With the new template based sensor display, widgets are more likely to run out of memory. E.g. a Vivoactive 3 device has a memory limit of 60 kB runtime memory for widgets (compare with 124 kB for applications) and is likely to be ~90% used. This makes it very likely that a larger menu will crash the application. We cannot predict what will take the application "over the edge", but we can provide this feedback to users to raise awareness.
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 821 KiB After Width: | Height: | Size: 806 KiB |
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">غير مهيأ</string>
|
||||
<string id="Cached" scope="glance">مخبأة</string>
|
||||
<string id="GlanceMenu" scope="glance">قائمة طعام</string>
|
||||
<string id="Memory" scope="glance">ذاكرة</string>
|
||||
<!-- لإعدادات واجهة المستخدم الرسومية -->
|
||||
<string id="SettingsSelect">يختار...</string>
|
||||
<string id="SettingsApiKey">مفتاح API لـ HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Неконфигуриран</string>
|
||||
<string id="Cached" scope="glance">Кеширано</string>
|
||||
<string id="GlanceMenu" scope="glance">Меню</string>
|
||||
<string id="Memory" scope="glance">памет</string>
|
||||
<!-- За GUI за настройки -->
|
||||
<string id="SettingsSelect">Изберете...</string>
|
||||
<string id="SettingsApiKey">API ключ за HomeAssistant.</string>
|
||||
@ -58,7 +59,7 @@
|
||||
<string id="SettingsTextAlign">Ляво (изключено) или дясно (включено) подравняване на менюто.</string>
|
||||
<string id="LeftToRight">Отляво надясно</string>
|
||||
<string id="RightToLeft">От дясно на ляво</string>
|
||||
<string id="SettingsWidgetStart">(Само за притурка) Автоматично стартирайте приложението от притурката
|
||||
<string id="SettingsWidgetStart">(Само за притурка) Автоматично стартиране на приложението от приспособлението
|
||||
без да чакате кран.</string>
|
||||
<string id="SettingsEnableBatteryLevel">Активирайте фоновата услуга, за да изпратите батерията на часовника
|
||||
ниво до домашен асистент.</string>
|
||||
|
@ -29,7 +29,7 @@
|
||||
<string id="NoApiUrl" scope="glance">V nastavení aplikace není žádná adresa URL API</string>
|
||||
<string id="NoConfigUrl" scope="glance">V nastavení aplikace není žádná konfigurační URL</string>
|
||||
<string id="ApiFlood">Příliš rychlá volání API. Zpomalte prosím své požadavky.</string>
|
||||
<string id="ApiUrlNotFound">Adresa URL nenalezena. Potenciální chyba URL API v nastavení.</string>
|
||||
<string id="ApiUrlNotFound">Adresa URL nenalezena. Potenciální chyba adresy URL rozhraní API v nastavení.</string>
|
||||
<string id="ConfigUrlNotFound">Adresa URL nenalezena. Potenciální chyba konfigurační adresy URL v nastavení.</string>
|
||||
<string id="NoJson">Z požadavku HTTP se nevrátil žádný JSON.</string>
|
||||
<string id="UnhandledHttpErr">Požadavek HTTP vrátil kód chyby =</string>
|
||||
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Nenakonfigurováno</string>
|
||||
<string id="Cached" scope="glance">Uloženo do mezipaměti</string>
|
||||
<string id="GlanceMenu" scope="glance">Jídelní lístek</string>
|
||||
<string id="Memory" scope="glance">Paměť</string>
|
||||
<!-- Pro nastavení GUI -->
|
||||
<string id="SettingsSelect">Vybrat...</string>
|
||||
<string id="SettingsApiKey">Klíč API pro HomeAssistant.</string>
|
||||
@ -53,7 +54,7 @@
|
||||
začal?</string>
|
||||
<string id="SettingsAppTimeout">Časový limit v sekundách. Po uplynutí této doby aplikaci ukončete
|
||||
nečinnosti, aby se šetřila baterie zařízení.</string>
|
||||
<string id="SettingsConfirmTimeout">Po uplynutí této doby (v sekundách) se zobrazí potvrzovací dialog
|
||||
<string id="SettingsConfirmTimeout">Po uplynutí této doby (v sekundách) se zobrazí potvrzovací dialog pro
|
||||
akce se automaticky zavře a akce se zruší. Nastavením na 0 deaktivujete časový limit.</string>
|
||||
<string id="SettingsTextAlign">Zarovnání nabídky vlevo (vypnuto) nebo vpravo (zapnuto).</string>
|
||||
<string id="LeftToRight">Zleva do prava</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Ukonfigureret</string>
|
||||
<string id="Cached" scope="glance">Cachelagret</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<string id="Memory" scope="glance">Hukommelse</string>
|
||||
<!-- Til indstillingerne GUI -->
|
||||
<string id="SettingsSelect">Vælg...</string>
|
||||
<string id="SettingsApiKey">API-nøgle til HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Unkonfiguriert</string>
|
||||
<string id="Cached" scope="glance">Zwischengespeichert</string>
|
||||
<string id="GlanceMenu" scope="glance">Speisekarte</string>
|
||||
<string id="Memory" scope="glance">Erinnerung</string>
|
||||
<!-- Für die Einstellungs-GUI -->
|
||||
<string id="SettingsSelect">Wählen...</string>
|
||||
<string id="SettingsApiKey">API-Schlüssel für HomeAssistant.</string>
|
||||
|
@ -42,7 +42,8 @@
|
||||
<string id="Unconfigured" scope="glance">Niet geconfigureerd</string>
|
||||
<string id="Cached" scope="glance">In cache opgeslagen</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<!-- Voor de instellingen-GUI -->
|
||||
<string id="Memory" scope="glance">Geheugen</string>
|
||||
<!-- Voor de instellingen GUI -->
|
||||
<string id="SettingsSelect">Selecteer...</string>
|
||||
<string id="SettingsApiKey">API-sleutel voor HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Toegangstoken met lange levensduur.</string>
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<!--
|
||||
Generated by Google Translate: English to Estonian
|
||||
Loodud Google'i tõlke abil inglise keelest
|
||||
Inglise keelest loodud Google'i tõlke abil
|
||||
-->
|
||||
|
||||
<strings>
|
||||
@ -28,10 +28,10 @@
|
||||
<string id="NoAPIKey" scope="glance">Rakenduse seadetes pole API-võtit</string>
|
||||
<string id="NoApiUrl" scope="glance">Rakenduse seadetes pole API URL-i</string>
|
||||
<string id="NoConfigUrl" scope="glance">Rakenduse seadetes pole konfiguratsiooni URL-i</string>
|
||||
<string id="ApiFlood">API-kõned liiga kiired. Palun aeglustage oma taotlusi.</string>
|
||||
<string id="ApiFlood">API-kutsed liiga kiired. Palun aeglustage oma taotlusi.</string>
|
||||
<string id="ApiUrlNotFound">URL-i ei leitud. Võimalik API URL-i viga seadetes.</string>
|
||||
<string id="ConfigUrlNotFound">URL-i ei leitud. Võimalik konfiguratsiooni URL-i viga seadetes.</string>
|
||||
<string id="NoJson">HTTP päringust ei tagastatud ühtegi JSON-i.</string>
|
||||
<string id="NoJson">HTTP-päringust ei tagastatud ühtegi JSON-i.</string>
|
||||
<string id="UnhandledHttpErr">HTTP päring tagastas veakoodi =</string>
|
||||
<string id="TrailingSlashErr">API URL-i lõpus ei tohi olla kaldkriipsu „/”</string>
|
||||
<string id="WebhookFailed">Webhaoki registreerimine ebaõnnestus</string>
|
||||
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Konfigureerimata</string>
|
||||
<string id="Cached" scope="glance">Vahemällu salvestatud</string>
|
||||
<string id="GlanceMenu" scope="glance">Menüü</string>
|
||||
<string id="Memory" scope="glance">Mälu</string>
|
||||
<!-- Seadete GUI jaoks -->
|
||||
<string id="SettingsSelect">Vali...</string>
|
||||
<string id="SettingsApiKey">API-võti HomeAssistantile.</string>
|
||||
@ -61,7 +62,7 @@
|
||||
<string id="SettingsWidgetStart">(Ainult vidin) Käivitage rakendus automaatselt vidinast
|
||||
puudutust ootamata.</string>
|
||||
<string id="SettingsEnableBatteryLevel">Kella aku saatmiseks lubage taustteenus
|
||||
Koduassistendi tasemele.</string>
|
||||
tasemel koduabilisele.</string>
|
||||
<string id="SettingsBatteryLevelRefreshRate">Värskendussagedus (minutites), mille juures taust
|
||||
teenindus peaks aku taseme saatmist kordama.</string>
|
||||
<string id="WebhookId">(Ainult lugemiseks) Kella loodud veebihaagi ID aku taseme värskendamiseks.
|
||||
|
@ -25,7 +25,7 @@
|
||||
<string id="NoPhone" scope="glance">Ei puhelinyhteyttä</string>
|
||||
<string id="NoInternet">Ei Internet-yhteyttä</string>
|
||||
<string id="NoResponse">Ei vastausta, tarkista Internet-yhteys</string>
|
||||
<string id="NoAPIKey" scope="glance">Sovellusasetuksissa ei ole API-avainta</string>
|
||||
<string id="NoAPIKey" scope="glance">Sovelluksen asetuksissa ei ole API-avainta</string>
|
||||
<string id="NoApiUrl" scope="glance">Sovellusasetuksissa ei ole API URL-osoitetta</string>
|
||||
<string id="NoConfigUrl" scope="glance">Sovelluksen asetuksissa ei ole konfigurointi-URL-osoitetta</string>
|
||||
<string id="ApiFlood">API-kutsut liian nopeita. Hidasta pyyntöjäsi.</string>
|
||||
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Määrittämätön</string>
|
||||
<string id="Cached" scope="glance">Välimuistissa</string>
|
||||
<string id="GlanceMenu" scope="glance">Valikko</string>
|
||||
<string id="Memory" scope="glance">Muisti</string>
|
||||
<!-- GUI-asetusten osalta -->
|
||||
<string id="SettingsSelect">Valitse...</string>
|
||||
<string id="SettingsApiKey">API-avain HomeAssistantille.</string>
|
||||
@ -53,8 +54,8 @@
|
||||
alkanut?</string>
|
||||
<string id="SettingsAppTimeout">Aikakatkaisu sekunneissa. Poistu sovelluksesta tämän ajanjakson jälkeen
|
||||
käyttämättömyys säästääksesi laitteen akkua.</string>
|
||||
<string id="SettingsConfirmTimeout">Tämän ajan kuluttua (sekunteina) vahvistusikkuna an
|
||||
toiminto suljetaan automaattisesti ja toiminto peruutetaan. Aseta arvoksi 0 poistaaksesi aikakatkaisun käytöstä.</string>
|
||||
<string id="SettingsConfirmTimeout">Tämän ajan kuluttua (sekunneissa) vahvistusikkuna an
|
||||
toiminto suljetaan automaattisesti ja toiminto peruutetaan. Aseta arvoksi 0, jos haluat poistaa aikakatkaisun käytöstä.</string>
|
||||
<string id="SettingsTextAlign">Vasen (pois) tai oikea (päällä) valikon kohdistus.</string>
|
||||
<string id="LeftToRight">Vasemmalta oikealle</string>
|
||||
<string id="RightToLeft">Oikealta vasemmalle</string>
|
||||
@ -63,7 +64,7 @@
|
||||
<string id="SettingsEnableBatteryLevel">Ota taustapalvelu käyttöön kellon akun lähettämiseksi
|
||||
tasolle Home Assistant.</string>
|
||||
<string id="SettingsBatteryLevelRefreshRate">Päivitystaajuus (minuutteina), jolla tausta
|
||||
palvelun tulee toistaa akun varaustason lähettäminen.</string>
|
||||
palvelun pitäisi toistaa akun varaustason lähettäminen.</string>
|
||||
<string id="WebhookId">(Vain luku) Kellon luoma Webhook-tunnus akun varaustason päivityksiä varten.
|
||||
Saatat tarvita tätä virheenkorjaukseen.</string>
|
||||
</strings>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Non configuré</string>
|
||||
<string id="Cached" scope="glance">En cache</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<string id="Memory" scope="glance">Mémoire</string>
|
||||
<!-- Pour l'interface graphique des paramètres -->
|
||||
<string id="SettingsSelect">Sélectionner...</string>
|
||||
<string id="SettingsApiKey">Clé API pour HomeAssistant.</string>
|
||||
@ -51,7 +52,7 @@
|
||||
<string id="SettingsCacheConfig">L'application doit-elle mettre en cache la configuration du menu ?</string>
|
||||
<string id="SettingsClearCache">L'application devrait-elle vider le cache existant la prochaine fois
|
||||
commencé?</string>
|
||||
<string id="SettingsAppTimeout">Délai d'expiration en secondes. Quittez l'application après cette période de
|
||||
<string id="SettingsAppTimeout">Délai d'attente en secondes. Quittez l'application après cette période de
|
||||
inactivité pour économiser la batterie de l'appareil.</string>
|
||||
<string id="SettingsConfirmTimeout">Passé ce délai (en secondes), une boîte de dialogue de confirmation pour un
|
||||
l'action est automatiquement clôturée et l'action est annulée. Réglez sur 0 pour désactiver le délai d'attente.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Μη διαμορφωμένο</string>
|
||||
<string id="Cached" scope="glance">Αποθηκευμένο στην κρυφή μνήμη</string>
|
||||
<string id="GlanceMenu" scope="glance">Μενού</string>
|
||||
<string id="Memory" scope="glance">Μνήμη</string>
|
||||
<!-- Για τις ρυθμίσεις GUI -->
|
||||
<string id="SettingsSelect">Επιλέγω...</string>
|
||||
<string id="SettingsApiKey">Κλειδί API για το HomeAssistant.</string>
|
||||
|
@ -27,7 +27,7 @@
|
||||
<string id="NoResponse">אין תגובה, בדוק חיבור לאינטרנט</string>
|
||||
<string id="NoAPIKey" scope="glance">אין מפתח API בהגדרות האפליקציה</string>
|
||||
<string id="NoApiUrl" scope="glance">אין כתובת API בהגדרות האפליקציה</string>
|
||||
<string id="NoConfigUrl" scope="glance">אין כתובת אתר תצורה בהגדרות האפליקציה</string>
|
||||
<string id="NoConfigUrl" scope="glance">אין כתובת URL לתצורה בהגדרות האפליקציה</string>
|
||||
<string id="ApiFlood">קריאות API מהירות מדי. נא להאט את הבקשות שלך.</string>
|
||||
<string id="ApiUrlNotFound">כתובת האתר לא נמצאה. שגיאה פוטנציאלית של כתובת ה-API בהגדרות.</string>
|
||||
<string id="ConfigUrlNotFound">כתובת האתר לא נמצאה. שגיאת כתובת אתר פוטנציאלית של תצורה בהגדרות.</string>
|
||||
@ -42,12 +42,13 @@
|
||||
<string id="Unconfigured" scope="glance">לא מוגדר</string>
|
||||
<string id="Cached" scope="glance">שמור במטמון</string>
|
||||
<string id="GlanceMenu" scope="glance">תַפרִיט</string>
|
||||
<string id="Memory" scope="glance">זיכרון</string>
|
||||
<!-- עבור ה-GUI של ההגדרות -->
|
||||
<string id="SettingsSelect">בחר...</string>
|
||||
<string id="SettingsApiKey">מפתח API עבור HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">אסימון גישה ארוך-חיים.</string>
|
||||
<string id="SettingsApiUrl">כתובת URL עבור HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">כתובת URL לתצורת תפריט (JSON).</string>
|
||||
<string id="SettingsConfigUrl">כתובת URL עבור תצורת תפריט (JSON).</string>
|
||||
<string id="SettingsCacheConfig">האם האפליקציה צריכה לשמור את תצורת התפריט במטמון?</string>
|
||||
<string id="SettingsClearCache">האם היישום צריך לנקות את המטמון הקיים בפעם הבאה שהוא
|
||||
התחיל?</string>
|
||||
@ -65,5 +66,5 @@
|
||||
<string id="SettingsBatteryLevelRefreshRate">קצב הרענון (בדקות) שבו הרקע
|
||||
השירות צריך לחזור על שליחת רמת הסוללה.</string>
|
||||
<string id="WebhookId">(לקריאה בלבד) מזהה ה-Webhook שנוצר על ידי השעון עבור עדכוני רמת הסוללה.
|
||||
ייתכן שתדרוש זאת לצורך איתור באגים.</string>
|
||||
ייתכן שתדרוש את זה בשביל איתור באגים.</string>
|
||||
</strings>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Nekonfigurirano</string>
|
||||
<string id="Cached" scope="glance">Spremljeno u predmemoriju</string>
|
||||
<string id="GlanceMenu" scope="glance">Jelovnik</string>
|
||||
<string id="Memory" scope="glance">Memorija</string>
|
||||
<!-- Za GUI postavki -->
|
||||
<string id="SettingsSelect">Izaberi...</string>
|
||||
<string id="SettingsApiKey">API ključ za HomeAssistant.</string>
|
||||
@ -52,7 +53,7 @@
|
||||
<string id="SettingsClearCache">Treba li aplikacija sljedeći put izbrisati postojeću predmemoriju
|
||||
počeo?</string>
|
||||
<string id="SettingsAppTimeout">Istek u sekundama. Izađite iz aplikacije nakon tog razdoblja od
|
||||
neaktivnost radi uštede baterije uređaja.</string>
|
||||
neaktivnosti radi uštede baterije uređaja.</string>
|
||||
<string id="SettingsConfirmTimeout">Nakon tog vremena (u sekundama), dijaloški okvir potvrde za an
|
||||
radnja se automatski zatvara i akcija se poništava. Postavite na 0 da onemogućite vremensko ograničenje.</string>
|
||||
<string id="SettingsTextAlign">Lijevo (isključeno) ili desno (uključeno) poravnanje izbornika.</string>
|
||||
@ -64,6 +65,6 @@
|
||||
razinu do kućnog pomoćnika.</string>
|
||||
<string id="SettingsBatteryLevelRefreshRate">Brzina osvježavanja (u minutama) pri kojoj pozadina
|
||||
servis bi trebao ponoviti slanje razine baterije.</string>
|
||||
<string id="WebhookId">(Samo za čitanje) Webhook ID koji je izradio sat za ažuriranje razine baterije.
|
||||
<string id="WebhookId">(Samo za čitanje) Webhook ID koji je kreirao sat za ažuriranje razine baterije.
|
||||
Ovo vam može trebati za otklanjanje pogrešaka.</string>
|
||||
</strings>
|
||||
|
@ -42,19 +42,20 @@
|
||||
<string id="Unconfigured" scope="glance">Nincs konfigurálva</string>
|
||||
<string id="Cached" scope="glance">Gyorsítótárban</string>
|
||||
<string id="GlanceMenu" scope="glance">Menü</string>
|
||||
<string id="Memory" scope="glance">memória</string>
|
||||
<!-- A beállítások GUI-hoz -->
|
||||
<string id="SettingsSelect">Válasszon...</string>
|
||||
<string id="SettingsApiKey">API-kulcs a HomeAssistant számára.</string>
|
||||
<string id="SettingsApiKeyPrompt">Hosszú életű hozzáférési token.</string>
|
||||
<string id="SettingsApiUrl">A HomeAssistant API URL-je.</string>
|
||||
<string id="SettingsConfigUrl">URL a menükonfigurációhoz (JSON).</string>
|
||||
<string id="SettingsCacheConfig">Az alkalmazásnak gyorsítótárba kell helyeznie a menükonfigurációt?</string>
|
||||
<string id="SettingsCacheConfig">Az alkalmazásnak gyorsítótárba kell helyeznie a menü konfigurációját?</string>
|
||||
<string id="SettingsClearCache">Ha az alkalmazás legközelebb törli a meglévő gyorsítótárat
|
||||
elkezdődött?</string>
|
||||
<string id="SettingsAppTimeout">Időtúllépés másodpercben. Lépjen ki az alkalmazásból ezen időszak után
|
||||
tétlenség, hogy kímélje a készülék akkumulátorát.</string>
|
||||
<string id="SettingsConfirmTimeout">Ezen idő elteltével (másodpercben), egy megerősítő párbeszédpanel egy
|
||||
A művelet automatikusan bezárul, és a művelet megszakad. Állítsa 0-ra az időtúllépés letiltásához.</string>
|
||||
<string id="SettingsConfirmTimeout">Ezen idő letelte után (másodpercben) megjelenik egy megerősítő párbeszédpanel az an
|
||||
A művelet automatikusan lezárul, és a művelet megszakad. Állítsa 0-ra az időtúllépés letiltásához.</string>
|
||||
<string id="SettingsTextAlign">Balra (ki) vagy Jobbra (be) Menüigazítás.</string>
|
||||
<string id="LeftToRight">Balról jobbra</string>
|
||||
<string id="RightToLeft">Jobbról balra</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Tidak dikonfigurasi</string>
|
||||
<string id="Cached" scope="glance">Di-cache</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<string id="Memory" scope="glance">Penyimpanan</string>
|
||||
<!-- Untuk pengaturan GUI -->
|
||||
<string id="SettingsSelect">Pilih...</string>
|
||||
<string id="SettingsApiKey">Kunci API untuk HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Non configurato</string>
|
||||
<string id="Cached" scope="glance">Memorizzato nella cache</string>
|
||||
<string id="GlanceMenu" scope="glance">Menù</string>
|
||||
<string id="Memory" scope="glance">Memoria</string>
|
||||
<!-- Per la GUI delle impostazioni -->
|
||||
<string id="SettingsSelect">Selezionare...</string>
|
||||
<string id="SettingsApiKey">Chiave API per HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">未構成</string>
|
||||
<string id="Cached" scope="glance">キャッシュされた</string>
|
||||
<string id="GlanceMenu" scope="glance">メニュー</string>
|
||||
<string id="Memory" scope="glance">メモリ</string>
|
||||
<!-- 設定GUIの場合 -->
|
||||
<string id="SettingsSelect">選択する...</string>
|
||||
<string id="SettingsApiKey">ホームアシスタントの API キー。</string>
|
||||
@ -49,7 +50,7 @@
|
||||
<string id="SettingsApiUrl">ホームアシスタント API の URL。</string>
|
||||
<string id="SettingsConfigUrl">メニュー構成の URL (JSON)。</string>
|
||||
<string id="SettingsCacheConfig">アプリケーションはメニュー構成をキャッシュする必要がありますか?</string>
|
||||
<string id="SettingsClearCache">アプリケーションは次回キャッシュを削除する必要がありますか?
|
||||
<string id="SettingsClearCache">次回アプリケーションが既存のキャッシュをクリアする必要があるかどうか
|
||||
始めましたか?</string>
|
||||
<string id="SettingsAppTimeout">秒単位のタイムアウト。この期間が経過したらアプリケーションを終了してください
|
||||
デバイスのバッテリーを節約するために非アクティブにします。</string>
|
||||
|
@ -33,7 +33,7 @@
|
||||
<string id="ConfigUrlNotFound">URL을 찾을 수 없습니다. 설정에 잠재적인 구성 URL 오류가 있습니다.</string>
|
||||
<string id="NoJson">HTTP 요청에서 JSON이 반환되지 않았습니다.</string>
|
||||
<string id="UnhandledHttpErr">HTTP 요청이 오류 코드를 반환했습니다 =</string>
|
||||
<string id="TrailingSlashErr">API URL에는 후행 슬래시 '/'가 없어야 합니다.</string>
|
||||
<string id="TrailingSlashErr">API URL에는 후행 슬래시 '/'가 있어서는 안 됩니다.</string>
|
||||
<string id="WebhookFailed">웹훅 등록 실패</string>
|
||||
<string id="TemplateError">템플릿을 렌더링하지 못했습니다.</string>
|
||||
<string id="Available" scope="glance">사용 가능</string>
|
||||
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">구성되지 않음</string>
|
||||
<string id="Cached" scope="glance">캐시됨</string>
|
||||
<string id="GlanceMenu" scope="glance">메뉴</string>
|
||||
<string id="Memory" scope="glance">메모리</string>
|
||||
<!-- 설정 GUI의 경우 -->
|
||||
<string id="SettingsSelect">선택하다...</string>
|
||||
<string id="SettingsApiKey">HomeAssistant용 API 키.</string>
|
||||
@ -52,7 +53,7 @@
|
||||
<string id="SettingsClearCache">다음 번에 애플리케이션이 기존 캐시를 지워야 할까요?
|
||||
시작됐나요?</string>
|
||||
<string id="SettingsAppTimeout">시간 초과(초)입니다. 이 기간이 지나면 응용 프로그램을 종료하십시오.
|
||||
장치 배터리를 절약하기 위해 비활성 상태입니다.</string>
|
||||
장치 배터리를 절약하기 위해 활동하지 않습니다.</string>
|
||||
<string id="SettingsConfirmTimeout">이 시간(초)이 지나면 확인 대화 상자가 나타납니다.
|
||||
작업이 자동으로 닫히고 작업이 취소됩니다. 시간 초과를 비활성화하려면 0으로 설정합니다.</string>
|
||||
<string id="SettingsTextAlign">왼쪽(끄기) 또는 오른쪽(켜기) 메뉴 정렬.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Nav konfigurēts</string>
|
||||
<string id="Cached" scope="glance">Kešatmiņā saglabāts</string>
|
||||
<string id="GlanceMenu" scope="glance">Izvēlne</string>
|
||||
<string id="Memory" scope="glance">Atmiņa</string>
|
||||
<!-- Iestatījumu GUI -->
|
||||
<string id="SettingsSelect">Izvēlieties...</string>
|
||||
<string id="SettingsApiKey">API atslēga Home Assistant.</string>
|
||||
@ -49,13 +50,13 @@
|
||||
<string id="SettingsApiUrl">HomeAssistant API URL.</string>
|
||||
<string id="SettingsConfigUrl">URL izvēlnes konfigurācijai (JSON).</string>
|
||||
<string id="SettingsCacheConfig">Vai lietojumprogrammai vajadzētu saglabāt izvēlnes konfigurāciju kešatmiņā?</string>
|
||||
<string id="SettingsClearCache">Vai lietojumprogrammai nākamreiz vajadzētu notīrīt esošo kešatmiņu
|
||||
<string id="SettingsClearCache">Ja lietojumprogramma nākamreiz notīra esošo kešatmiņu
|
||||
sākās?</string>
|
||||
<string id="SettingsAppTimeout">Taimauts sekundēs. Izejiet no lietojumprogrammas pēc šī perioda
|
||||
neaktivitāte, lai taupītu ierīces akumulatoru.</string>
|
||||
<string id="SettingsConfirmTimeout">Pēc šī laika (sekundēs) tiek parādīts apstiprinājuma dialoglodziņš
|
||||
darbība tiek automātiski aizvērta un darbība tiek atcelta. Iestatiet uz 0, lai atspējotu taimautu.</string>
|
||||
<string id="SettingsTextAlign">Kreisā (izslēgta) vai labā (ieslēgta) izvēlnes līdzināšana.</string>
|
||||
<string id="SettingsTextAlign">Kreisā (izslēgta) vai labā (ieslēgta) izvēlnes izlīdzināšana.</string>
|
||||
<string id="LeftToRight">No kreisās uz labo</string>
|
||||
<string id="RightToLeft">No labās uz kreiso</string>
|
||||
<string id="SettingsWidgetStart">(tikai logrīkam) Automātiski startējiet lietojumprogrammu no logrīka
|
||||
|
@ -42,24 +42,25 @@
|
||||
<string id="Unconfigured" scope="glance">Nesukonfigūruotas</string>
|
||||
<string id="Cached" scope="glance">Talpykloje</string>
|
||||
<string id="GlanceMenu" scope="glance">Meniu</string>
|
||||
<string id="Memory" scope="glance">Atmintis</string>
|
||||
<!-- Dėl nustatymų GUI -->
|
||||
<string id="SettingsSelect">Pasirinkite...</string>
|
||||
<string id="SettingsApiKey">API raktas, skirtas HomeAssistant.</string>
|
||||
<string id="SettingsApiKey">API raktas, skirtas „HomeAssistant“.</string>
|
||||
<string id="SettingsApiKeyPrompt">Ilgalaikis prieigos raktas.</string>
|
||||
<string id="SettingsApiUrl">„HomeAssistant“ API URL.</string>
|
||||
<string id="SettingsConfigUrl">Meniu konfigūravimo URL (JSON).</string>
|
||||
<string id="SettingsCacheConfig">Ar programa turėtų išsaugoti meniu konfigūraciją talpykloje?</string>
|
||||
<string id="SettingsCacheConfig">Ar programa turėtų talpykloje išsaugoti meniu konfigūraciją?</string>
|
||||
<string id="SettingsClearCache">Ar programa kitą kartą išvalys esamą talpyklą
|
||||
prasidėjo?</string>
|
||||
<string id="SettingsAppTimeout">Skirtasis laikas sekundėmis. Išeikite iš programos pasibaigus šiam laikotarpiui
|
||||
neaktyvumas, kad būtų taupoma įrenginio baterija.</string>
|
||||
neaktyvumas, kad taupytų įrenginio akumuliatorių.</string>
|
||||
<string id="SettingsConfirmTimeout">Po šio laiko (sekundėmis) atsiras patvirtinimo dialogo langas
|
||||
veiksmas automatiškai uždaromas ir veiksmas atšaukiamas. Nustatykite 0, kad išjungtumėte skirtąjį laiką.</string>
|
||||
<string id="SettingsTextAlign">Kairysis (išjungtas) arba dešinysis (įjungtas) meniu lygiavimas.</string>
|
||||
<string id="LeftToRight">Iš kairės į dešinę</string>
|
||||
<string id="RightToLeft">Iš dešinės į kairę</string>
|
||||
<string id="SettingsWidgetStart">(Tik valdiklis) Automatiškai paleiskite programą iš valdiklio
|
||||
nelaukdamas čiaupo.</string>
|
||||
nelaukdamas bakstelėjimo.</string>
|
||||
<string id="SettingsEnableBatteryLevel">Įgalinkite foninę paslaugą, kad išsiųstumėte laikrodžio bateriją
|
||||
lygiu iki namų asistento.</string>
|
||||
<string id="SettingsBatteryLevelRefreshRate">Fono atnaujinimo dažnis (minutėmis).
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Ukonfigurert</string>
|
||||
<string id="Cached" scope="glance">Bufret</string>
|
||||
<string id="GlanceMenu" scope="glance">Meny</string>
|
||||
<string id="Memory" scope="glance">Hukommelse</string>
|
||||
<!-- For innstillingene GUI -->
|
||||
<string id="SettingsSelect">Plukke ut...</string>
|
||||
<string id="SettingsApiKey">API-nøkkel for HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Nieskonfigurowane</string>
|
||||
<string id="Cached" scope="glance">Buforowane</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<string id="Memory" scope="glance">Pamięć</string>
|
||||
<!-- Dla ustawień GUI -->
|
||||
<string id="SettingsSelect">Wybierać...</string>
|
||||
<string id="SettingsApiKey">Klucz API dla HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Não configurado</string>
|
||||
<string id="Cached" scope="glance">Em cache</string>
|
||||
<string id="GlanceMenu" scope="glance">Cardápio</string>
|
||||
<string id="Memory" scope="glance">Memória</string>
|
||||
<!-- Para a GUI de configurações -->
|
||||
<string id="SettingsSelect">Selecione...</string>
|
||||
<string id="SettingsApiKey">Chave de API para HomeAssistant.</string>
|
||||
|
@ -28,10 +28,10 @@
|
||||
<string id="NoAPIKey" scope="glance">Nicio cheie API în setările aplicației</string>
|
||||
<string id="NoApiUrl" scope="glance">Nicio adresă URL API în setările aplicației</string>
|
||||
<string id="NoConfigUrl" scope="glance">Nicio adresă URL de configurare în setările aplicației</string>
|
||||
<string id="ApiFlood">Apeluri API prea rapide. Vă rugăm să vă încetiniți solicitările.</string>
|
||||
<string id="ApiFlood">Apeluri API prea rapide. Vă rugăm să încetiniți cererile dvs.</string>
|
||||
<string id="ApiUrlNotFound">Adresa URL nu a fost găsită. Potențială eroare URL API în setări.</string>
|
||||
<string id="ConfigUrlNotFound">Adresa URL nu a fost găsită. Potențială eroare URL de configurare în setări.</string>
|
||||
<string id="NoJson">Nu a fost returnat niciun JSON de la solicitarea HTTP.</string>
|
||||
<string id="NoJson">Niciun JSON nu a fost returnat de la solicitarea HTTP.</string>
|
||||
<string id="UnhandledHttpErr">Solicitarea HTTP a returnat codul de eroare =</string>
|
||||
<string id="TrailingSlashErr">Adresa URL API nu trebuie să aibă o bară oblică „/”</string>
|
||||
<string id="WebhookFailed">Nu s-a putut înregistra Webhook</string>
|
||||
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Neconfigurat</string>
|
||||
<string id="Cached" scope="glance">În cache</string>
|
||||
<string id="GlanceMenu" scope="glance">Meniul</string>
|
||||
<string id="Memory" scope="glance">Memorie</string>
|
||||
<!-- Pentru GUI de setări -->
|
||||
<string id="SettingsSelect">Selectați...</string>
|
||||
<string id="SettingsApiKey">Cheie API pentru HomeAssistant.</string>
|
||||
|
@ -42,10 +42,11 @@
|
||||
<string id="Unconfigured" scope="glance">Nekonfigurované</string>
|
||||
<string id="Cached" scope="glance">Vo vyrovnávacej pamäti</string>
|
||||
<string id="GlanceMenu" scope="glance">Ponuka</string>
|
||||
<string id="Memory" scope="glance">Pamäť</string>
|
||||
<!-- Pre nastavenia GUI -->
|
||||
<string id="SettingsSelect">Vybrať...</string>
|
||||
<string id="SettingsApiKey">Kľúč API pre HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Prístupový token s dlhou životnosťou.</string>
|
||||
<string id="SettingsApiKeyPrompt">Dlhotrvajúci prístupový token.</string>
|
||||
<string id="SettingsApiUrl">URL pre HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">Webová adresa pre konfiguráciu ponuky (JSON).</string>
|
||||
<string id="SettingsCacheConfig">Má aplikácia uložiť do vyrovnávacej pamäte konfiguráciu ponuky?</string>
|
||||
|
@ -42,11 +42,12 @@
|
||||
<string id="Unconfigured" scope="glance">Nekonfigurirano</string>
|
||||
<string id="Cached" scope="glance">Predpomnjeno</string>
|
||||
<string id="GlanceMenu" scope="glance">meni</string>
|
||||
<string id="Memory" scope="glance">Spomin</string>
|
||||
<!-- Za nastavitve GUI -->
|
||||
<string id="SettingsSelect">Izberite ...</string>
|
||||
<string id="SettingsApiKey">API ključ za HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Dolgoživ dostopni žeton.</string>
|
||||
<string id="SettingsApiUrl">URL za HomeAssistant API.</string>
|
||||
<string id="SettingsApiUrl">URL za API HomeAssistant.</string>
|
||||
<string id="SettingsConfigUrl">URL za konfiguracijo menija (JSON).</string>
|
||||
<string id="SettingsCacheConfig">Ali naj aplikacija predpomni konfiguracijo menija?</string>
|
||||
<string id="SettingsClearCache">Ali naj aplikacija naslednjič počisti obstoječi predpomnilnik
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Desconfigurado</string>
|
||||
<string id="Cached" scope="glance">En caché</string>
|
||||
<string id="GlanceMenu" scope="glance">Menú</string>
|
||||
<string id="Memory" scope="glance">Memoria</string>
|
||||
<!-- Para la configuración GUI -->
|
||||
<string id="SettingsSelect">Seleccionar...</string>
|
||||
<string id="SettingsApiKey">Clave API para HomeAssistant.</string>
|
||||
|
@ -26,7 +26,7 @@
|
||||
<string id="NoInternet">Ingen internetanslutning</string>
|
||||
<string id="NoResponse">Inget svar, kontrollera internetanslutningen</string>
|
||||
<string id="NoAPIKey" scope="glance">Ingen API-nyckel i applikationsinställningarna</string>
|
||||
<string id="NoApiUrl" scope="glance">Ingen API-URL i applikationsinställningarna</string>
|
||||
<string id="NoApiUrl" scope="glance">Ingen API-URL i programinställningarna</string>
|
||||
<string id="NoConfigUrl" scope="glance">Ingen konfigurations-URL i programinställningarna</string>
|
||||
<string id="ApiFlood">API-anrop för snabba. Vänligen sakta ner dina förfrågningar.</string>
|
||||
<string id="ApiUrlNotFound">Webbadressen hittades inte. Potentiellt API-URL-fel i inställningarna.</string>
|
||||
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Okonfigurerad</string>
|
||||
<string id="Cached" scope="glance">Cachad</string>
|
||||
<string id="GlanceMenu" scope="glance">Meny</string>
|
||||
<string id="Memory" scope="glance">Minne</string>
|
||||
<!-- För inställningar GUI -->
|
||||
<string id="SettingsSelect">Välj...</string>
|
||||
<string id="SettingsApiKey">API-nyckel för HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">ไม่ได้กำหนดค่า</string>
|
||||
<string id="Cached" scope="glance">แคช</string>
|
||||
<string id="GlanceMenu" scope="glance">เมนู</string>
|
||||
<string id="Memory" scope="glance">หน่วยความจำ</string>
|
||||
<!-- สำหรับการตั้งค่า GUI -->
|
||||
<string id="SettingsSelect">เลือก...</string>
|
||||
<string id="SettingsApiKey">คีย์ API สำหรับ HomeAssistant</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Yapılandırılmamış</string>
|
||||
<string id="Cached" scope="glance">Önbelleğe alındı</string>
|
||||
<string id="GlanceMenu" scope="glance">Menü</string>
|
||||
<string id="Memory" scope="glance">Hafıza</string>
|
||||
<!-- Ayarlar GUI'si için -->
|
||||
<string id="SettingsSelect">Seçme...</string>
|
||||
<string id="SettingsApiKey">HomeAssistant için API Anahtarı.</string>
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<!--
|
||||
Generated by Google Translate: English to Ukrainian
|
||||
Згенеровано Google Translate з англійської
|
||||
Створено Google Translate з англійської
|
||||
-->
|
||||
|
||||
<strings>
|
||||
@ -42,19 +42,20 @@
|
||||
<string id="Unconfigured" scope="glance">Неналаштований</string>
|
||||
<string id="Cached" scope="glance">Кешовано</string>
|
||||
<string id="GlanceMenu" scope="glance">Меню</string>
|
||||
<string id="Memory" scope="glance">Пам'ять</string>
|
||||
<!-- Для налаштування GUI -->
|
||||
<string id="SettingsSelect">Виберіть...</string>
|
||||
<string id="SettingsApiKey">Ключ API для HomeAssistant.</string>
|
||||
<string id="SettingsApiKeyPrompt">Довговічний маркер доступу.</string>
|
||||
<string id="SettingsApiUrl">URL для HomeAssistant API.</string>
|
||||
<string id="SettingsConfigUrl">URL-адреса для налаштування меню (JSON).</string>
|
||||
<string id="SettingsConfigUrl">URL для налаштування меню (JSON).</string>
|
||||
<string id="SettingsCacheConfig">Чи має програма кешувати конфігурацію меню?</string>
|
||||
<string id="SettingsClearCache">Чи має програма очистити наявний кеш наступного разу
|
||||
почав?</string>
|
||||
<string id="SettingsAppTimeout">Час очікування в секундах. Вийдіть із програми після закінчення цього періоду
|
||||
бездіяльність, щоб зберегти акумулятор пристрою.</string>
|
||||
<string id="SettingsConfirmTimeout">Після закінчення цього часу (у секундах) з’явиться діалогове вікно підтвердження для
|
||||
дія автоматично закривається і дія скасовується. Встановіть 0, щоб вимкнути тайм-аут.</string>
|
||||
<string id="SettingsConfirmTimeout">Через цей час (у секундах) з’явиться діалогове вікно підтвердження для
|
||||
дія автоматично закривається, а дія скасовується. Встановіть 0, щоб вимкнути тайм-аут.</string>
|
||||
<string id="SettingsTextAlign">Ліворуч (вимкнено) або праворуч (увімкнено) вирівнювання меню.</string>
|
||||
<string id="LeftToRight">Зліва направо</string>
|
||||
<string id="RightToLeft">Справа наліво</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Chưa được định cấu hình</string>
|
||||
<string id="Cached" scope="glance">Đã lưu vào bộ nhớ đệm</string>
|
||||
<string id="GlanceMenu" scope="glance">Thực đơn</string>
|
||||
<string id="Memory" scope="glance">Ký ức</string>
|
||||
<!-- Đối với GUI cài đặt -->
|
||||
<string id="SettingsSelect">Lựa chọn...</string>
|
||||
<string id="SettingsApiKey">Khóa API cho HomeAssistant.</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">未配置</string>
|
||||
<string id="Cached" scope="glance">缓存</string>
|
||||
<string id="GlanceMenu" scope="glance">菜单</string>
|
||||
<string id="Memory" scope="glance">记忆</string>
|
||||
<!-- 对于设置 GUI -->
|
||||
<string id="SettingsSelect">选择...</string>
|
||||
<string id="SettingsApiKey">HomeAssistant 的 API 密钥。</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">未配置</string>
|
||||
<string id="Cached" scope="glance">快取</string>
|
||||
<string id="GlanceMenu" scope="glance">選單</string>
|
||||
<string id="Memory" scope="glance">記憶</string>
|
||||
<!-- 對於設定 GUI -->
|
||||
<string id="SettingsSelect">選擇...</string>
|
||||
<string id="SettingsApiKey">HomeAssistant 的 API 金鑰。</string>
|
||||
|
@ -42,6 +42,7 @@
|
||||
<string id="Unconfigured" scope="glance">Tidak dikonfigurasikan</string>
|
||||
<string id="Cached" scope="glance">Dicache</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<string id="Memory" scope="glance">Ingatan</string>
|
||||
<!-- Untuk GUI tetapan -->
|
||||
<string id="SettingsSelect">Pilih...</string>
|
||||
<string id="SettingsApiKey">Kunci API untuk HomeAssistant.</string>
|
||||
|
@ -36,6 +36,7 @@
|
||||
<string id="Unconfigured" scope="glance">Unconfigured</string>
|
||||
<string id="Cached" scope="glance">Cached</string>
|
||||
<string id="GlanceMenu" scope="glance">Menu</string>
|
||||
<string id="Memory" scope="glance">Memory</string>
|
||||
|
||||
<!-- For the settings GUI -->
|
||||
<string id="SettingsSelect">Select...</string>
|
||||
|
@ -29,12 +29,13 @@ using Toybox.Timer;
|
||||
|
||||
class Alert extends WatchUi.View {
|
||||
private static const bRadius = 10;
|
||||
private var mTimer as Timer.Timer;
|
||||
private var mTimeout as Lang.Number;
|
||||
private var mText as Lang.String;
|
||||
private var mFont as Graphics.FontType;
|
||||
private var mFgcolor as Graphics.ColorType;
|
||||
private var mBgcolor as Graphics.ColorType;
|
||||
private var mTimer as Timer.Timer;
|
||||
private var mTimeout as Lang.Number;
|
||||
private var mText as Lang.String;
|
||||
private var mFont as Graphics.FontType;
|
||||
private var mFgcolor as Graphics.ColorType;
|
||||
private var mBgcolor as Graphics.ColorType;
|
||||
private var mAntiAlias as Lang.Boolean = false;
|
||||
|
||||
function initialize(params as Lang.Dictionary) {
|
||||
View.initialize();
|
||||
@ -64,6 +65,10 @@ class Alert extends WatchUi.View {
|
||||
mTimeout = 2000;
|
||||
}
|
||||
|
||||
if (Graphics.Dc has :setAntiAlias) {
|
||||
mAntiAlias = true;
|
||||
}
|
||||
|
||||
mTimer = new Timer.Timer();
|
||||
}
|
||||
|
||||
@ -75,7 +80,7 @@ class Alert extends WatchUi.View {
|
||||
mTimer.stop();
|
||||
}
|
||||
|
||||
function onUpdate(dc) {
|
||||
function onUpdate(dc as Graphics.Dc) {
|
||||
var tWidth = dc.getTextWidthInPixels(mText, mFont);
|
||||
var tHeight = dc.getFontHeight(mFont);
|
||||
var bWidth = tWidth + 20;
|
||||
@ -83,7 +88,7 @@ class Alert extends WatchUi.View {
|
||||
var bX = (dc.getWidth() - bWidth) / 2;
|
||||
var bY = (dc.getHeight() - bHeight) / 2;
|
||||
|
||||
if (dc has :setAntiAlias) {
|
||||
if (mAntiAlias) {
|
||||
dc.setAntiAlias(true);
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,8 @@ class ErrorView extends ScalableView {
|
||||
// Vertical spacing between the top of the face and the error icon
|
||||
private var mErrorIconMargin as Lang.Number;
|
||||
private var mErrorIcon;
|
||||
private var mTextArea;
|
||||
private var mTextArea as WatchUi.TextArea or Null;
|
||||
private var mAntiAlias as Lang.Boolean = false;
|
||||
|
||||
private static var instance;
|
||||
private static var mShown as Lang.Boolean = false;
|
||||
@ -55,6 +56,9 @@ class ErrorView extends ScalableView {
|
||||
// Convert the settings from % of screen size to pixels
|
||||
mErrorIconMargin = pixelsForScreen(cSettings.get(:errorIconMargin) as Lang.Float);
|
||||
mErrorIcon = Application.loadResource(Rez.Drawables.ErrorIcon) as Graphics.BitmapResource;
|
||||
if (Graphics.Dc has :setAntiAlias) {
|
||||
mAntiAlias = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Load your resources here
|
||||
@ -76,7 +80,7 @@ class ErrorView extends ScalableView {
|
||||
// Update the view
|
||||
function onUpdate(dc as Graphics.Dc) as Void {
|
||||
var w = dc.getWidth();
|
||||
if(dc has :setAntiAlias) {
|
||||
if (mAntiAlias) {
|
||||
dc.setAntiAlias(true);
|
||||
}
|
||||
dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLUE);
|
||||
|
@ -33,4 +33,6 @@ class Globals {
|
||||
// Needs to be long enough to enable a "double ESC" to quit the application from
|
||||
// an ErrorView.
|
||||
static const scApiResume = 200; // ms
|
||||
// Warn the user after fetching the menu if their watch is low on memory before the device crashes.
|
||||
static const scLowMem = 0.95; // percent as a fraction.
|
||||
}
|
||||
|
@ -32,10 +32,14 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
||||
private var mApiStatus as WatchUi.Text or Null;
|
||||
private var mMenuText as WatchUi.Text or Null;
|
||||
private var mMenuStatus as WatchUi.Text or Null;
|
||||
private var mAntiAlias as Lang.Boolean = false;
|
||||
|
||||
function initialize(app as HomeAssistantApp) {
|
||||
GlanceView.initialize();
|
||||
mApp = app;
|
||||
if (Graphics.Dc has :setAntiAlias) {
|
||||
mAntiAlias = true;
|
||||
}
|
||||
}
|
||||
|
||||
function onLayout(dc as Graphics.Dc) as Void {
|
||||
@ -85,9 +89,9 @@ class HomeAssistantGlanceView extends WatchUi.GlanceView {
|
||||
});
|
||||
}
|
||||
|
||||
function onUpdate(dc) as Void {
|
||||
function onUpdate(dc as Graphics.Dc) as Void {
|
||||
GlanceView.onUpdate(dc);
|
||||
if(dc has :setAntiAlias) {
|
||||
if(mAntiAlias) {
|
||||
dc.setAntiAlias(true);
|
||||
}
|
||||
dc.setColor(
|
||||
|
@ -24,6 +24,17 @@ using Toybox.Graphics;
|
||||
using Toybox.Application.Properties;
|
||||
|
||||
class HomeAssistantService {
|
||||
private var mHasToast as Lang.Boolean = false;
|
||||
private var mHasVibrate as Lang.Boolean = false;
|
||||
|
||||
function initialise() {
|
||||
if (WatchUi has :showToast) {
|
||||
mHasToast = true;
|
||||
}
|
||||
if (Attention has :vibrate) {
|
||||
mHasVibrate = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Callback function after completing the POST request to call a service.
|
||||
//
|
||||
@ -88,7 +99,7 @@ class HomeAssistantService {
|
||||
toast = (d[i].get("attributes") as Lang.Dictionary).get("friendly_name") as Lang.String;
|
||||
}
|
||||
}
|
||||
if (WatchUi has :showToast) {
|
||||
if (mHasToast) {
|
||||
WatchUi.showToast(toast, null);
|
||||
} else {
|
||||
new Alert({
|
||||
@ -143,7 +154,7 @@ class HomeAssistantService {
|
||||
},
|
||||
method(:onReturnCall)
|
||||
);
|
||||
if (Attention has :vibrate) {
|
||||
if (mHasVibrate) {
|
||||
Attention.vibrate([
|
||||
new Attention.VibeProfile(50, 100), // On for 100ms
|
||||
new Attention.VibeProfile( 0, 100), // Off for 100ms
|
||||
|
@ -9,7 +9,7 @@
|
||||
// tested on a Venu 2 device. The source code is provided at:
|
||||
// https://github.com/house-of-abbey/GarminHomeAssistant.
|
||||
//
|
||||
// P A Abbey & J D Abbey & Someone0nEarth, 16 November 2023
|
||||
// P A Abbey & J D Abbey & Someone0nEarth, 31 October 2023
|
||||
//
|
||||
//
|
||||
// Description:
|
||||
|
@ -59,6 +59,7 @@ class RezStrings {
|
||||
private static var strCached as Lang.String or Null;
|
||||
(:glance)
|
||||
private static var strGlanceMenu as Lang.String or Null;
|
||||
private static var strMemory as Lang.String or Null;
|
||||
|
||||
// Can't initialise a constant directly, have to be initialised via a function
|
||||
// for 'WatchUi.loadResource' to be available.
|
||||
@ -103,6 +104,7 @@ class RezStrings {
|
||||
strUnconfigured = WatchUi.loadResource($.Rez.Strings.Unconfigured);
|
||||
strCached = WatchUi.loadResource($.Rez.Strings.Cached);
|
||||
strGlanceMenu = WatchUi.loadResource($.Rez.Strings.GlanceMenu);
|
||||
strMemory = WatchUi.loadResource($.Rez.Strings.Memory);
|
||||
}
|
||||
|
||||
static function getAppName() as Lang.String {
|
||||
@ -197,4 +199,8 @@ class RezStrings {
|
||||
return strGlanceMenu;
|
||||
}
|
||||
|
||||
static function getMemory() as Lang.String {
|
||||
return strMemory;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
using Toybox.Graphics;
|
||||
using Toybox.Lang;
|
||||
using Toybox.WatchUi;
|
||||
using Toybox.System;
|
||||
|
||||
class RootView extends ScalableView {
|
||||
|
||||
@ -44,10 +45,16 @@ class RootView extends ScalableView {
|
||||
private var mApiStatus as WatchUi.Text or Null;
|
||||
private var mMenuText as WatchUi.Text or Null;
|
||||
private var mMenuStatus as WatchUi.Text or Null;
|
||||
private var mMemText as WatchUi.Text or Null;
|
||||
private var mMemStatus as WatchUi.Text or Null;
|
||||
private var mAntiAlias as Lang.Boolean = false;
|
||||
|
||||
function initialize(app as HomeAssistantApp) {
|
||||
ScalableView.initialize();
|
||||
mApp = app;
|
||||
if (Graphics.Dc has :setAntiAlias) {
|
||||
mAntiAlias = true;
|
||||
}
|
||||
}
|
||||
|
||||
function onLayout(dc as Graphics.Dc) as Void {
|
||||
@ -84,9 +91,25 @@ class RootView extends ScalableView {
|
||||
:font => Graphics.FONT_XTINY,
|
||||
:justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||
:locX => w/2 - scMidSep/2,
|
||||
:locY => pixelsForScreen(70.0)
|
||||
:locY => pixelsForScreen(60.0)
|
||||
});
|
||||
mMenuStatus = new WatchUi.Text({
|
||||
:text => RezStrings.getChecking(),
|
||||
:color => Graphics.COLOR_WHITE,
|
||||
:font => Graphics.FONT_XTINY,
|
||||
:justification => Graphics.TEXT_JUSTIFY_LEFT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||
:locX => w/2 + scMidSep/2,
|
||||
:locY => pixelsForScreen(60.0)
|
||||
});
|
||||
mMemText = new WatchUi.Text({
|
||||
:text => RezStrings.getMemory() + ":",
|
||||
:color => Graphics.COLOR_WHITE,
|
||||
:font => Graphics.FONT_XTINY,
|
||||
:justification => Graphics.TEXT_JUSTIFY_RIGHT | Graphics.TEXT_JUSTIFY_VCENTER,
|
||||
:locX => w/2 - scMidSep/2,
|
||||
:locY => pixelsForScreen(70.0)
|
||||
});
|
||||
mMemStatus = new WatchUi.Text({
|
||||
:text => RezStrings.getChecking(),
|
||||
:color => Graphics.COLOR_WHITE,
|
||||
:font => Graphics.FONT_XTINY,
|
||||
@ -97,7 +120,7 @@ class RootView extends ScalableView {
|
||||
}
|
||||
|
||||
function onUpdate(dc as Graphics.Dc) as Void {
|
||||
if (dc has :setAntiAlias) {
|
||||
if (mAntiAlias) {
|
||||
dc.setAntiAlias(true);
|
||||
}
|
||||
dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLACK);
|
||||
@ -114,6 +137,16 @@ class RootView extends ScalableView {
|
||||
mMenuText.draw(dc);
|
||||
mMenuStatus.setText(mApp.getMenuStatus());
|
||||
mMenuStatus.draw(dc);
|
||||
mMemText.draw(dc);
|
||||
var stats = System.getSystemStats();
|
||||
var memUsed = (100 * stats.usedMemory) / stats.totalMemory;
|
||||
mMemStatus.setText(memUsed.format("%.1f") + "%");
|
||||
if (stats.usedMemory > Globals.scLowMem * stats.totalMemory) {
|
||||
mMemStatus.setColor(Graphics.COLOR_RED);
|
||||
} else {
|
||||
mMemStatus.setColor(Graphics.COLOR_WHITE);
|
||||
}
|
||||
mMemStatus.draw(dc);
|
||||
}
|
||||
|
||||
function onShow() as Void {
|
||||
|
@ -41,6 +41,7 @@ class Settings {
|
||||
private static var mIsBatteryLevelEnabled as Lang.Boolean = false;
|
||||
private static var mBatteryRefreshRate as Lang.Number = 15; // minutes
|
||||
private static var mIsApp as Lang.Boolean = false;
|
||||
private static var mHasService as Lang.Boolean = false;
|
||||
|
||||
// Must keep the object so it doesn't get garbage collected.
|
||||
private static var mWebhookManager as WebhookManager or Null;
|
||||
@ -61,6 +62,10 @@ class Settings {
|
||||
mIsBatteryLevelEnabled = Properties.getValue("enable_battery_level");
|
||||
mBatteryRefreshRate = Properties.getValue("battery_level_refresh_rate");
|
||||
|
||||
if (System has :ServiceDelegate) {
|
||||
mHasService = true;
|
||||
}
|
||||
|
||||
// Manage this inside the application or widget only (not a glance or background service process)
|
||||
if (mIsApp) {
|
||||
if (mIsBatteryLevelEnabled) {
|
||||
@ -68,14 +73,14 @@ class Settings {
|
||||
mWebhookManager = new WebhookManager();
|
||||
mWebhookManager.requestWebhookId();
|
||||
} else if (
|
||||
(System has :ServiceDelegate) and
|
||||
mHasService and
|
||||
((Background.getTemporalEventRegisteredTime() == null) or
|
||||
(Background.getTemporalEventRegisteredTime() != (mBatteryRefreshRate * 60)))) {
|
||||
Background.registerForTemporalEvent(new Time.Duration(mBatteryRefreshRate * 60)); // Convert to seconds
|
||||
}
|
||||
} else {
|
||||
// Explicitly disable the background event which persists when the application closes.
|
||||
if ((System has :ServiceDelegate) and (Background.getTemporalEventRegisteredTime() != null)) {
|
||||
if (mHasService and (Background.getTemporalEventRegisteredTime() != null)) {
|
||||
Background.deleteTemporalEvent();
|
||||
}
|
||||
unsetWebhookId();
|
||||
@ -149,7 +154,7 @@ class Settings {
|
||||
static function unsetIsBatteryLevelEnabled() {
|
||||
mIsBatteryLevelEnabled = false;
|
||||
Properties.setValue("enable_battery_level", mIsBatteryLevelEnabled);
|
||||
if ((System has :ServiceDelegate) and (Background.getTemporalEventRegisteredTime() != null)) {
|
||||
if (mHasService and (Background.getTemporalEventRegisteredTime() != null)) {
|
||||
Background.deleteTemporalEvent();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user