{
  "common": {
    "name": "movieswipe",
    "version": "1.1.5",
    "news": {
      "1.1.5": {
        "en": "New adapter logo.",
        "de": "Neues Adapter-Logo.",
        "ru": "Новый логотип адаптера.",
        "fr": "Nouveau logo de l'adaptateur.",
        "it": "Nuovo logo dell'adapter.",
        "es": "Nuevo logotipo del adaptador.",
        "pl": "Nowe logo adaptera.",
        "pt": "Novo logotipo do adaptador.",
        "nl": "Nieuw adapterlogo.",
        "uk": "Новий логотип адаптера.",
        "zh-cn": "新的适配器图标。"
      },
      "1.1.4": {
        "en": "The movie database is now kept in the instance data directory and in the ioBroker file storage (included in ioBroker backups) instead of the adapter package; sync progress survives updates. New instance link to the app in the admin.",
        "de": "Die Filmdatenbank liegt jetzt im Instanz-Datenverzeichnis und im ioBroker-Dateispeicher (Teil der ioBroker-Backups) statt im Adapter-Paket; der Sync-Fortschritt ueberlebt Updates. Neuer Instanz-Link zur App im Admin.",
        "ru": "База фильмов теперь хранится в каталоге данных экземпляра и в файловом хранилище ioBroker (входит в бэкапы ioBroker), а не в пакете адаптера; прогресс синхронизации переживает обновления. Новая ссылка на приложение в админке.",
        "fr": "La base de films est desormais conservee dans le repertoire de donnees de l'instance et dans le stockage de fichiers ioBroker (inclus dans les sauvegardes ioBroker) au lieu du paquet de l'adaptateur ; la progression de la synchronisation survit aux mises a jour. Nouveau lien vers l'application dans l'admin.",
        "it": "Il database dei film ora si trova nella directory dati dell'istanza e nell'archivio file di ioBroker (incluso nei backup di ioBroker) invece che nel pacchetto dell'adapter; l'avanzamento della sincronizzazione sopravvive agli aggiornamenti. Nuovo link all'app nell'admin.",
        "es": "La base de datos de peliculas ahora se guarda en el directorio de datos de la instancia y en el almacenamiento de archivos de ioBroker (incluido en las copias de ioBroker) en lugar del paquete del adaptador; el progreso de sincronizacion sobrevive a las actualizaciones. Nuevo enlace a la aplicacion en el admin.",
        "pl": "Baza filmow jest teraz przechowywana w katalogu danych instancji i w magazynie plikow ioBroker (objetym kopiami ioBroker), a nie w pakiecie adaptera; postep synchronizacji przetrwa aktualizacje. Nowy link do aplikacji w panelu admin.",
        "pt": "A base de dados de filmes passa a ficar no diretorio de dados da instancia e no armazenamento de ficheiros do ioBroker (incluido nas copias do ioBroker) em vez do pacote do adaptador; o progresso da sincronizacao sobrevive as atualizacoes. Nova ligacao para a aplicacao no admin.",
        "nl": "De filmdatabase staat nu in de gegevensmap van de instantie en in de ioBroker-bestandsopslag (onderdeel van ioBroker-back-ups) in plaats van in het adapterpakket; de synchronisatievoortgang blijft na updates behouden. Nieuwe link naar de app in de admin.",
        "uk": "База фільмів тепер зберігається в каталозі даних екземпляра та у файловому сховищі ioBroker (входить до резервних копій ioBroker), а не в пакеті адаптера; прогрес синхронізації переживає оновлення. Нове посилання на застосунок в адмінці.",
        "zh-cn": "电影数据库现在保存在实例数据目录和 ioBroker 文件存储中（包含在 ioBroker 备份内），而不是适配器包内；同步进度在更新后保留。管理界面新增指向应用的实例链接。"
      },
      "1.1.3": {
        "en": "Security and robustness: optional backup access token for /api/db/*, API keys passed to the sync process via environment instead of the command line, atomic database writes, validated backup restore, API key cooldowns survive restarts, reliable sync stop.",
        "de": "Sicherheit und Robustheit: optionales Zugriffstoken fuer /api/db/*, API-Keys gehen per Umgebungsvariable statt Kommandozeile an den Sync-Prozess, atomare Datenbank-Schreibzugriffe, geprueftes Backup-Restore, Key-Cooldowns ueberleben Neustarts, zuverlaessiges Stoppen der Synchronisation.",
        "ru": "Безопасность и надёжность: необязательный токен доступа к /api/db/*, API-ключи передаются процессу синхронизации через переменную окружения, атомарная запись базы, проверка резервной копии при восстановлении, кулдауны ключей сохраняются после перезапуска, надёжная остановка синхронизации.",
        "fr": "Securite et robustesse : jeton d'acces optionnel pour /api/db/*, cles API transmises au processus de synchronisation par variable d'environnement, ecritures atomiques de la base, restauration de sauvegarde verifiee, delais des cles conserves apres redemarrage, arret fiable de la synchronisation.",
        "it": "Sicurezza e robustezza: token di accesso opzionale per /api/db/*, chiavi API passate al processo di sincronizzazione tramite variabile d'ambiente, scritture atomiche del database, ripristino del backup verificato, cooldown delle chiavi mantenuti dopo il riavvio, arresto affidabile della sincronizzazione.",
        "es": "Seguridad y robustez: token de acceso opcional para /api/db/*, claves API pasadas al proceso de sincronizacion por variable de entorno, escrituras atomicas de la base de datos, restauracion de copia verificada, enfriamientos de claves conservados tras reiniciar, parada fiable de la sincronizacion.",
        "pl": "Bezpieczenstwo i niezawodnosc: opcjonalny token dostepu do /api/db/*, klucze API przekazywane procesowi synchronizacji przez zmienna srodowiskowa, atomowe zapisy bazy, weryfikowane przywracanie kopii, czasy oczekiwania kluczy zachowane po restarcie, niezawodne zatrzymywanie synchronizacji.",
        "pt": "Seguranca e robustez: token de acesso opcional para /api/db/*, chaves API passadas ao processo de sincronizacao por variavel de ambiente, gravacoes atomicas da base de dados, restauro de copia verificado, tempos de espera das chaves mantidos apos reinicio, paragem fiavel da sincronizacao.",
        "nl": "Beveiliging en robuustheid: optioneel toegangstoken voor /api/db/*, API-sleutels via omgevingsvariabele aan het synchronisatieproces doorgegeven, atomaire databaseschrijfacties, gecontroleerd terugzetten van back-ups, sleutelwachttijden blijven na herstart behouden, betrouwbaar stoppen van synchronisatie.",
        "uk": "Безпека та надійність: необов'язковий токен доступу до /api/db/*, API-ключі передаються процесу синхронізації через змінну середовища, атомарний запис бази, перевірка резервної копії під час відновлення, затримки ключів зберігаються після перезапуску, надійна зупинка синхронізації.",
        "zh-cn": "安全与稳定性：/api/db/* 可选访问令牌，API 密钥通过环境变量而非命令行传给同步进程，数据库原子写入，备份恢复前校验，密钥冷却时间在重启后保留，可靠地停止同步。"
      },
      "1.1.2": {
        "en": "Repository checker (W1134): the `sync.stop` button is now write-only (`read: false`), like `sync.start` and `sync.reloadApp`. `common.news` trimmed back to 7 entries.",
        "de": "Repository-Checker (W1134): Der Button `sync.stop` ist jetzt wie `sync.start` und `sync.reloadApp` nur schreibbar (`read: false`). `common.news` wieder auf 7 Eintraege gekuerzt.",
        "ru": "Проверка репозитория (W1134): кнопка `sync.stop` теперь, как `sync.start` и `sync.reloadApp`, только для записи (`read: false`). `common.news` вновь сокращён до 7 записей.",
        "fr": "Verificateur de depot (W1134) : le bouton `sync.stop` est desormais en ecriture seule (`read: false`), comme `sync.start` et `sync.reloadApp`. `common.news` ramene a 7 entrees.",
        "it": "Checker del repository (W1134): il pulsante `sync.stop` ora e di sola scrittura (`read: false`), come `sync.start` e `sync.reloadApp`. `common.news` ridotto di nuovo a 7 voci.",
        "es": "Comprobador del repositorio (W1134): el boton `sync.stop` ahora es de solo escritura (`read: false`), como `sync.start` y `sync.reloadApp`. `common.news` reducido de nuevo a 7 entradas.",
        "pl": "Sprawdzanie repozytorium (W1134): przycisk `sync.stop` jest teraz tylko do zapisu (`read: false`), tak jak `sync.start` i `sync.reloadApp`. `common.news` ponownie skrocone do 7 wpisow.",
        "pt": "Verificador do repositorio (W1134): o botao `sync.stop` agora e somente gravacao (`read: false`), como `sync.start` e `sync.reloadApp`. `common.news` reduzido novamente para 7 entradas.",
        "nl": "Repository-checker (W1134): de knop `sync.stop` is nu alleen schrijfbaar (`read: false`), net als `sync.start` en `sync.reloadApp`. `common.news` weer teruggebracht tot 7 items.",
        "uk": "Перевірка репозиторію (W1134): кнопка `sync.stop` тепер, як `sync.start` і `sync.reloadApp`, лише для запису (`read: false`). `common.news` знову скорочено до 7 записів.",
        "zh-cn": "仓库检查 (W1134)：`sync.stop` 按钮现在与 `sync.start`、`sync.reloadApp` 一样为只写（`read: false`）。`common.news` 重新精简为 7 条。"
      },
      "1.1.1": {
        "en": "Code quality: internal timers now use the adapter API so they are cleaned up on unload, built-in modules use the \"node:\" prefix, removed process.env usage (compact mode) and updated the release tooling.",
        "de": "Code-Qualität: interne Timer nutzen jetzt die Adapter-API und werden beim Entladen aufgeräumt, Built-in-Module mit \"node:\"-Präfix, process.env-Nutzung entfernt (Kompaktmodus) und Release-Tooling aktualisiert.",
        "ru": "Качество кода: внутренние таймеры теперь используют API адаптера и очищаются при выгрузке, встроенные модули с префиксом \"node:\", удалено использование process.env (компактный режим), обновлены инструменты релиза.",
        "fr": "Qualité du code : les minuteurs internes utilisent désormais l'API de l'adaptateur (nettoyage au déchargement), modules intégrés avec le préfixe « node: », suppression de process.env (mode compact) et mise à jour des outils de release.",
        "it": "Qualità del codice: i timer interni ora usano l'API dell'adattatore (pulizia allo scaricamento), moduli integrati con prefisso \"node:\", rimosso l'uso di process.env (modalità compatta) e aggiornati gli strumenti di release.",
        "es": "Calidad del código: los temporizadores internos usan ahora la API del adaptador (se limpian al descargar), módulos integrados con prefijo \"node:\", se eliminó el uso de process.env (modo compacto) y se actualizaron las herramientas de release.",
        "pl": "Jakość kodu: wewnętrzne timery korzystają teraz z API adaptera (czyszczone przy wyładowaniu), moduły wbudowane z prefiksem \"node:\", usunięto użycie process.env (tryb kompaktowy) i zaktualizowano narzędzia wydania.",
        "pt": "Qualidade de código: os temporizadores internos agora usam a API do adaptador (limpos ao descarregar), módulos internos com prefixo \"node:\", removido o uso de process.env (modo compacto) e ferramentas de release atualizadas.",
        "nl": "Codekwaliteit: interne timers gebruiken nu de adapter-API (opgeruimd bij het lossen), ingebouwde modules met \"node:\"-prefix, process.env-gebruik verwijderd (compacte modus) en release-tooling bijgewerkt.",
        "uk": "Якість коду: внутрішні таймери тепер використовують API адаптера та очищуються при вивантаженні, вбудовані модулі з префіксом \"node:\", прибрано використання process.env (компактний режим), оновлено інструменти релізу.",
        "zh-cn": "代码质量：内部定时器改用适配器 API（卸载时自动清理），内置模块使用 \"node:\" 前缀，移除 process.env 用法（兼容紧凑模式），并更新发布工具。"
      },
      "1.1.0": {
        "en": "Maintenance release: Node.js 26 added to the CI test matrix, automatic releases via npm \"Trusted Publishing\" (OIDC) restored, complete license information and updated dependencies. No functional changes.",
        "de": "Wartungsrelease: Node.js 26 in der CI-Testmatrix, automatische Releases über npm \"Trusted Publishing\" (OIDC) wieder aktiviert, vollständige Lizenzangaben und aktualisierte Abhängigkeiten. Keine funktionalen Änderungen.",
        "ru": "Сервисный релиз: Node.js 26 в матрице тестов CI, восстановлена автоматическая публикация через npm \"Trusted Publishing\" (OIDC), полная информация о лицензии и обновлённые зависимости. Функциональных изменений нет.",
        "fr": "Version de maintenance : Node.js 26 dans la matrice de tests CI, publication automatique via npm \"Trusted Publishing\" (OIDC) rétablie, informations de licence complètes et dépendances mises à jour. Aucun changement fonctionnel.",
        "it": "Release di manutenzione: Node.js 26 nella matrice di test CI, pubblicazione automatica tramite npm \"Trusted Publishing\" (OIDC) ripristinata, informazioni complete sulla licenza e dipendenze aggiornate. Nessuna modifica funzionale.",
        "es": "Versión de mantenimiento: Node.js 26 en la matriz de pruebas de CI, publicación automática mediante npm \"Trusted Publishing\" (OIDC) restaurada, información completa de licencia y dependencias actualizadas. Sin cambios funcionales.",
        "pl": "Wydanie serwisowe: Node.js 26 w macierzy testów CI, przywrócona automatyczna publikacja przez npm \"Trusted Publishing\" (OIDC), pełne informacje o licencji i zaktualizowane zależności. Brak zmian funkcjonalnych.",
        "pt": "Versão de manutenção: Node.js 26 na matriz de testes de CI, publicação automática via npm \"Trusted Publishing\" (OIDC) restaurada, informações completas de licença e dependências atualizadas. Sem alterações funcionais.",
        "nl": "Onderhoudsrelease: Node.js 26 in de CI-testmatrix, automatische publicatie via npm \"Trusted Publishing\" (OIDC) hersteld, volledige licentie-informatie en bijgewerkte afhankelijkheden. Geen functionele wijzigingen.",
        "uk": "Сервісний реліз: Node.js 26 у матриці тестів CI, відновлено автоматичну публікацію через npm \"Trusted Publishing\" (OIDC), повна інформація про ліцензію та оновлені залежності. Функціональних змін немає.",
        "zh-cn": "维护版本：CI 测试矩阵新增 Node.js 26，恢复通过 npm \"Trusted Publishing\" (OIDC) 自动发布，补全许可证信息并更新依赖。无功能性变更。"
      },
      "1.0.59": {
        "en": "Add navigation between the app settings and the database backup manager: a link to open the backup manager from the Settings tab, and a link back to Settings from the backup page.",
        "de": "Navigation zwischen den App-Einstellungen und dem Datenbank-Backup-Manager hinzugefuegt: Link zum Oeffnen des Backup-Managers aus dem Einstellungen-Tab und Link zurueck zu den Einstellungen von der Backup-Seite.",
        "ru": "Добавлена навигация между настройками приложения и менеджером резервных копий базы данных: ссылка для открытия менеджера бэкапов из вкладки настроек, и ссылка назад в настройки со страницы бэкапа.",
        "fr": "Ajout de la navigation entre les parametres de l'application et le gestionnaire de sauvegarde de la base de donnees: lien pour ouvrir le gestionnaire depuis les parametres, et lien de retour vers les parametres depuis la page de sauvegarde.",
        "it": "Aggiunta navigazione tra le impostazioni dell'app e il gestore di backup del database: link per aprire il gestore backup dalla scheda impostazioni, e link per tornare alle impostazioni dalla pagina di backup.",
        "es": "Anadida navegacion entre la configuracion de la app y el gestor de copias de seguridad de la base de datos: enlace para abrir el gestor desde configuracion, y enlace de vuelta a configuracion desde la pagina de backup.",
        "pl": "Dodano nawigacje miedzy ustawieniami aplikacji a menedzerem kopii zapasowych bazy danych: link do otwarcia menedzera z zakladki ustawien i link powrotny do ustawien ze strony kopii zapasowej.",
        "pt": "Adicionada navegacao entre as configuracoes do app e o gestor de backup da base de dados: link para abrir o gestor a partir das configuracoes, e link de volta as configuracoes a partir da pagina de backup.",
        "nl": "Navigatie toegevoegd tussen de app-instellingen en de database-backupmanager: link om de backupmanager te openen vanuit het instellingentabblad, en link terug naar instellingen vanaf de backuppagina.",
        "uk": "Додано навігацію між налаштуваннями застосунку та менеджером резервних копій бази даних: посилання для відкриття менеджера з вкладки налаштувань, і посилання назад до налаштувань зі сторінки резервної копії.",
        "zh-cn": "在应用设置和数据库备份管理器之间添加导航：在设置标签页添加打开备份管理器的链接，在备份页面添加返回设置的链接。"
      }
    },
    "titleLang": {
      "en": "MovieSwipe PWA",
      "de": "MovieSwipe PWA",
      "ru": "MovieSwipe PWA",
      "fr": "MovieSwipe PWA",
      "it": "MovieSwipe PWA",
      "es": "MovieSwipe PWA",
      "pl": "MovieSwipe PWA",
      "pt": "MovieSwipe PWA",
      "nl": "MovieSwipe PWA",
      "uk": "MovieSwipe PWA",
      "zh-cn": "MovieSwipe PWA"
    },
    "desc": {
      "en": "Movie discovery PWA with Kinopoisk API integration",
      "de": "Film-Entdeckungs-PWA mit Kinopoisk-API-Integration",
      "ru": "PWA для поиска фильмов с интеграцией Kinopoisk API",
      "fr": "PWA de decouverte de films avec integration de l'API Kinopoisk",
      "it": "PWA per la scoperta di film con integrazione API Kinopoisk",
      "es": "PWA de descubrimiento de peliculas con integracion de API Kinopoisk",
      "pl": "PWA do odkrywania filmow z integracja API Kinopoisk",
      "pt": "PWA de descoberta de filmes com integracao da API Kinopoisk",
      "nl": "PWA voor filmontdekking met Kinopoisk API-integratie",
      "uk": "PWA для пошуку фільмів з інтеграцією Kinopoisk API",
      "zh-cn": "电影发现PWA与Kinopoisk API集成"
    },
    "authors": [
      "sadam6752-tech <sadam6752@gmail.com>"
    ],
    "keywords": [
      "movieswipe",
      "movies",
      "pwa",
      "kinopoisk",
      "multimedia"
    ],
    "localLinks": {
      "_default": {
        "link": "%protocol%://%ip%:%port%/",
        "name": {
          "en": "Open MovieSwipe",
          "de": "MovieSwipe oeffnen",
          "ru": "Открыть MovieSwipe",
          "pt": "Abrir MovieSwipe",
          "nl": "MovieSwipe openen",
          "fr": "Ouvrir MovieSwipe",
          "it": "Apri MovieSwipe",
          "es": "Abrir MovieSwipe",
          "pl": "Otworz MovieSwipe",
          "uk": "Відкрити MovieSwipe",
          "zh-cn": "打开 MovieSwipe"
        },
        "order": 5
      }
    },
    "licenseInformation": {
      "license": "MIT",
      "type": "free"
    },
    "platform": "Javascript/Node.js",
    "icon": "movieswipe.png",
    "enabled": true,
    "extIcon": "https://raw.githubusercontent.com/sadam6752-tech/ioBroker.movieswipe/main/admin/movieswipe.png",
    "readme": "https://github.com/sadam6752-tech/ioBroker.movieswipe/blob/main/README.md",
    "loglevel": "info",
    "mode": "daemon",
    "type": "multimedia",
    "compact": true,
    "connectionType": "local",
    "dataSource": "push",
    "adminUI": {
      "config": "json"
    },
    "dependencies": [
      {
        "js-controller": ">=6.0.11"
      }
    ],
    "globalDependencies": [
      {
        "admin": ">=7.6.20"
      }
    ],
    "tier": 3
  },
  "protectedNative": [
    "apiKeys",
    "dbToken"
  ],
  "native": {
    "dbToken": "",
    "port": 3000,
    "bind": "",
    "apiKeys": [],
    "autoSync": false,
    "syncScheduled": false,
    "syncScheduledTime": "03:00",
    "syncInterval": 24,
    "maxRequestsPerRun": 250,
    "dailyRequestLimit": 200,
    "preserveSyncProgress": true,
    "preserveDatabase": true,
    "useEuServer": false
  },
  "objects": [],
  "instanceObjects": [
    {
      "_id": "info",
      "type": "channel",
      "common": {
        "name": "Information"
      },
      "native": {}
    },
    {
      "_id": "info.connection",
      "type": "state",
      "common": {
        "role": "indicator.connected",
        "name": "Connection status",
        "type": "boolean",
        "read": true,
        "write": false,
        "def": false
      },
      "native": {}
    },
    {
      "_id": "sync",
      "type": "channel",
      "common": {
        "name": "Synchronization"
      },
      "native": {}
    },
    {
      "_id": "sync.start",
      "type": "state",
      "common": {
        "role": "button.start",
        "name": "Start synchronization",
        "type": "boolean",
        "read": false,
        "write": true,
        "def": false
      },
      "native": {}
    },
    {
      "_id": "sync.stop",
      "type": "state",
      "common": {
        "role": "button.stop",
        "name": "Stop synchronization",
        "type": "boolean",
        "read": false,
        "write": true,
        "def": false
      },
      "native": {}
    },
    {
      "_id": "sync.status",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Synchronization status",
        "type": "string",
        "read": true,
        "write": false,
        "def": "idle",
        "states": {
          "idle": "Idle",
          "running": "Running",
          "error": "Error",
          "completed": "Completed"
        }
      },
      "native": {}
    },
    {
      "_id": "sync.progress",
      "type": "state",
      "common": {
        "role": "value",
        "name": "Synchronization progress",
        "type": "number",
        "read": true,
        "write": false,
        "def": 0,
        "min": 0,
        "max": 100,
        "unit": "%"
      },
      "native": {}
    },
    {
      "_id": "sync.currentStep",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Current step",
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    },
    {
      "_id": "sync.totalMovies",
      "type": "state",
      "common": {
        "role": "value",
        "name": "Total movies in database",
        "type": "number",
        "read": true,
        "write": false,
        "def": 0
      },
      "native": {}
    },
    {
      "_id": "sync.newMovies",
      "type": "state",
      "common": {
        "role": "value",
        "name": "New movies added",
        "type": "number",
        "read": true,
        "write": false,
        "def": 0
      },
      "native": {}
    },
    {
      "_id": "sync.foundMovies",
      "type": "state",
      "common": {
        "role": "value",
        "name": "Movies found in current sync",
        "type": "number",
        "read": true,
        "write": false,
        "def": 0
      },
      "native": {}
    },
    {
      "_id": "sync.requestsUsed",
      "type": "state",
      "common": {
        "role": "value",
        "name": "API requests used",
        "type": "number",
        "read": true,
        "write": false,
        "def": 0
      },
      "native": {}
    },
    {
      "_id": "sync.requestsRemaining",
      "type": "state",
      "common": {
        "role": "value",
        "name": "API requests remaining",
        "type": "number",
        "read": true,
        "write": false,
        "def": 0
      },
      "native": {}
    },
    {
      "_id": "sync.lastSync",
      "type": "state",
      "common": {
        "role": "date",
        "name": "Last synchronization",
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    },
    {
      "_id": "sync.error",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Error message",
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    },
    {
      "_id": "sync.reloadApp",
      "type": "state",
      "common": {
        "role": "button",
        "name": "Reload app cache",
        "type": "boolean",
        "read": false,
        "write": true,
        "def": false
      },
      "native": {}
    },
    {
      "_id": "server",
      "type": "channel",
      "common": {
        "name": "Web Server"
      },
      "native": {}
    },
    {
      "_id": "server.url",
      "type": "state",
      "common": {
        "role": "text.url",
        "name": "Application URL",
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    },
    {
      "_id": "server.ip",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Resolved server IP address",
        "type": "string",
        "read": true,
        "write": false,
        "def": ""
      },
      "native": {}
    },
    {
      "_id": "server.port",
      "type": "state",
      "common": {
        "role": "value",
        "name": "Server port",
        "type": "number",
        "read": true,
        "write": false,
        "def": 3000
      },
      "native": {}
    },
    {
      "_id": "server.running",
      "type": "state",
      "common": {
        "role": "indicator.reachable",
        "name": "Server running",
        "type": "boolean",
        "read": true,
        "write": false,
        "def": false
      },
      "native": {}
    }
  ]
}
