{
  "common": {
    "name": "volumio",
    "version": "0.9.0",
    "news": {
      "0.9.0": {
        "en": "(André Iske) Major release: Dual API support (WebSocket + REST), real-time updates, comprehensive refactoring, ESLint 9 migration, NPM Trusted Publishing, all dependencies updated",
        "de": "(André Iske) Hauptversion: Dual-API-Unterstützung (WebSocket + REST), Echtzeit-Updates, umfassende Refaktorierung, ESLint 9 Migration, NPM Trusted Publishing, alle Abhängigkeiten aktualisiert",
        "ru": "(André Iske) Основной выпуск: поддержка двух API (WebSocket + REST), обновления в реальном времени, комплексный рефакторинг, миграция на ESLint 9, NPM Trusted Publishing, все зависимости обновлены",
        "pt": "(André Iske) Versão principal: Suporte duplo de API (WebSocket + REST), atualizações em tempo real, refatoração abrangente, migração ESLint 9, NPM Trusted Publishing, todas as dependências atualizadas",
        "nl": "(André Iske) Grote release: Dual API-ondersteuning (WebSocket + REST), real-time updates, uitgebreide refactoring, ESLint 9 migratie, NPM Trusted Publishing, alle afhankelijkheden bijgewerkt",
        "fr": "(André Iske) Version majeure: Support double API (WebSocket + REST), mises à jour en temps réel, refactorisation complète, migration ESLint 9, NPM Trusted Publishing, toutes les dépendances mises à jour",
        "it": "(André Iske) Versione principale: Supporto doppia API (WebSocket + REST), aggiornamenti in tempo reale, refactoring completo, migrazione ESLint 9, NPM Trusted Publishing, tutte le dipendenze aggiornate",
        "es": "(André Iske) Versión principal: Soporte dual de API (WebSocket + REST), actualizaciones en tiempo real, refactorización integral, migración ESLint 9, NPM Trusted Publishing, todas las dependencias actualizadas",
        "pl": "(André Iske) Główne wydanie: Podwójne wsparcie API (WebSocket + REST), aktualizacje w czasie rzeczywistym, kompleksowy refaktoring, migracja ESLint 9, NPM Trusted Publishing, wszystkie zależności zaktualizowane",
        "uk": "(Андре Іске) Основний реліз: Підтримка подвійного API (WebSocket + REST), оновлення в реальному часі, комплексний рефакторинг, міграція ESLint 9, NPM Trusted Publishing, всі залежності оновлено",
        "zh-cn": "(安德烈·伊斯克) 主要版本：双API支持（WebSocket + REST），实时更新，全面重构，ESLint 9迁移，NPM可信发布，所有依赖项已更新"
      },
      "0.2.0": {
        "en": "(André Iske) Updated to newest ioBroker adapter structure, Fixed adapter crashes",
        "de": "(André Iske) Aktualisiert auf die neueste ioBroker Adapterstruktur, Adapterabstürze behoben",
        "ru": "(André Iske) Обновлено до новейшей структуры адаптера ioBroker, Исправленные крушения адаптера",
        "pt": "(André Iske) Atualizado para a mais nova estrutura do adaptador ioBroker, Adaptador fixo trava",
        "nl": "(André Iske) Bijgewerkt naar de nieuwste ioBroker-adapterstructuur, Vaste adapter crashes",
        "fr": "(André Iske) Mise à jour à la nouvelle structure d'adaptateur ioBroker, Crashs d'adaptateurs fixes",
        "it": "(André Iske) Aggiornato alla nuova struttura adattatore ioBroker, Attacchi fissi dell'adattatore",
        "es": "(André Iske) Actualizado a la nueva estructura de adaptador ioBroker, Se bloquea el adaptador fijo",
        "pl": "(André Iske) Aktualizacja do najnowszej struktury adaptera jOBroker, Naprawiono awarię adaptera",
        "uk": "(Анре Іське) Оновлено до нової структури адаптера ioBroker, Виправлені аварійні випадки адаптера",
        "zh-cn": "(安德烈·伊斯克) 更新到最新的ioBroker适配器结构, 固定适配器崩溃"
      },
      "0.1.2": {
        "en": "Minor bugfixes",
        "de": "Kleinere Fehlerbehebungen",
        "ru": "Исправлены незначительные ошибки",
        "pt": "Pequenas correcções de bugs",
        "nl": "Kleine bugfixes",
        "fr": "Corrections de bogues mineurs",
        "it": "Correzioni di bug minori",
        "es": "Corrección de errores menores",
        "pl": "Drobne poprawki błędów",
        "zh-cn": "小错误修复",
        "uk": "Незначні виправлення помилок"
      },
      "0.1.0": {
        "en": "Switched codebase to TypeScript",
        "de": "Umstellung der Codebasis auf TypeScript",
        "ru": "Переключенная кодовая база на TypeScript",
        "pt": "Base de código comutada para TypeScript",
        "nl": "Geschakelde codebase naar TypeScript",
        "fr": "Passage de la base de code à TypeScript",
        "it": "Codice di base commutato su TypeScript",
        "es": "Cambió la base de código a TypeScript",
        "pl": "Przełączenie bazy kodowej na TypeScript",
        "zh-cn": "首次出版",
        "uk": "Змінено кодову базу на TypeScript"
      }
    },
    "titleLang": {
      "en": "Volumio Remote Control",
      "de": "Volumio Remote Control",
      "ru": "Volumio Remote Control",
      "pt": "Volumio Remote Control",
      "nl": "Volumio Remote Control",
      "fr": "Volumio Remote Control",
      "it": "Volumio Remote Control",
      "es": "Volumio Remote Control",
      "pl": "Volumio Remote Control",
      "uk": "Volumio Remote Control",
      "zh-cn": "Volumio Remote Control"
    },
    "desc": {
      "en": "Control a Volumio instance on the local network using WebSocket or REST API.",
      "de": "Kontrolliere eine Volumio Instanz im lokalen Netzwerk über WebSocket oder REST API.",
      "ru": "Контролировать экземпляр Volumio в локальной сети с помощью WebSocket или REST API.",
      "pt": "Controle uma instância do Volumio na rede local usando WebSocket ou REST API.",
      "fr": "Contrôlez une instance Volumio sur le réseau local à l'aide de WebSocket ou REST API.",
      "nl": "Bestuur een Volumio instance op het lokale netwerk met behulp van WebSocket of REST API.",
      "it": "Controllare un'istanza di Volumio sulla rete locale utilizzando WebSocket o REST API.",
      "es": "Controle una instancia de Volumio en la red local utilizando WebSocket o REST API.",
      "pl": "Kontroluj instancję Volumio w sieci lokalnej za pomocą WebSocket lub REST API.",
      "uk": "Керуйте примірником Volumio у локальній мережі за допомогою WebSocket або REST API.",
      "zh-cn": "使用 WebSocket 或 REST API 控制本地网络上的 Volumio 实例。"
    },
    "authors": [
      "André Iske <andre.iske@mailbox.org>"
    ],
    "keywords": [
      "volumio",
      "hifi"
    ],
    "licenseInformation": {
      "type": "free",
      "license": "MIT"
    },
    "platform": "Javascript/Node.js",
    "icon": "volumio.png",
    "enabled": true,
    "extIcon": "https://raw.githubusercontent.com/a-i-ks/ioBroker.volumio/master/admin/volumio.png",
    "readme": "https://github.com/a-i-ks/ioBroker.volumio/blob/master/README.md",
    "loglevel": "info",
    "tier": 3,
    "mode": "daemon",
    "type": "multimedia",
    "compact": true,
    "connectionType": "local",
    "dataSource": "poll",
    "adminUI": {
      "config": "json"
    },
    "dependencies": [
      {
        "js-controller": ">=6.0.11"
      }
    ],
    "globalDependencies": [
      {
        "admin": ">=7.6.17"
      }
    ]
  },
  "native": {
    "host": "volumio.local",
    "apiMode": "websocket",
    "pollInterval": 2,
    "reconnectAttempts": 5,
    "reconnectDelay": 2,
    "subscribeToStateChanges": false,
    "subscriptionPort": 3042,
    "volumeSteps": 10,
    "checkConnection": true,
    "checkConnectionInterval": 60
  },
  "objects": [],
  "instanceObjects": [
    {
      "_id": "info",
      "type": "channel",
      "common": {
        "name": "Connection and Volumio infos"
      },
      "native": {}
    },
    {
      "_id": "info.connection",
      "type": "state",
      "common": {
        "role": "indicator.connected",
        "name": "Connection state to Volumio instance",
        "type": "boolean",
        "read": true,
        "write": false,
        "def": false
      },
      "native": {}
    },
    {
      "_id": "info.id",
      "type": "state",
      "common": {
        "role": "info.serial",
        "name": "Volumio Id",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.host",
      "type": "state",
      "common": {
        "role": "info.address",
        "name": "Volumio host address",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.name",
      "type": "state",
      "common": {
        "role": "info.name",
        "name": "Volumio instance name",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.type",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Volumio instance type",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.serviceName",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Volumio service name",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.systemversion",
      "type": "state",
      "common": {
        "role": "info.firmware",
        "name": "Volumio system version",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.builddate",
      "type": "state",
      "common": {
        "role": "info.firmware",
        "name": "Volumio system version build date",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.variant",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Volumio system variant",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.hardware",
      "type": "state",
      "common": {
        "role": "info.hardware",
        "name": "Volumio system hardware",
        "type": "string",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.isPremiumDevice",
      "type": "state",
      "common": {
        "role": "state",
        "name": "Volumio Premium Device",
        "type": "boolean",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "info.isVolumioProduct",
      "type": "state",
      "common": {
        "role": "state",
        "name": "Volumio Product",
        "type": "boolean",
        "read": true,
        "write": false
      }
    },
    {
      "_id": "player",
      "type": "channel",
      "common": {
        "name": "Commands to control playback"
      },
      "native": {}
    },
    {
      "_id": "player.play",
      "type": "state",
      "common": {
        "role": "button.play",
        "name": "Play",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/play_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.stop",
      "type": "state",
      "common": {
        "role": "button.stop",
        "name": "Stop",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/stop_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.playN",
      "type": "state",
      "common": {
        "role": "state",
        "name": "Play n-th track on queue",
        "type": "number",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "player.pause",
      "type": "state",
      "common": {
        "role": "button.pause",
        "name": "Pause",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/pause_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.toggle",
      "type": "state",
      "common": {
        "role": "button",
        "name": "Toggle between play and pause",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/toggle_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.next",
      "type": "state",
      "common": {
        "role": "button.next",
        "name": "Next",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/skip_next_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.prev",
      "type": "state",
      "common": {
        "role": "button.prev",
        "name": "Previous",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/skip_prev_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.volume.up",
      "type": "state",
      "common": {
        "role": "button.volume.up",
        "name": "Volume up",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/volume_up_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.volume.down",
      "type": "state",
      "common": {
        "role": "button.volume.down",
        "name": "Volume down",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/volume_down_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.volume",
      "type": "state",
      "common": {
        "role": "level.volume",
        "name": "Volume in percent",
        "type": "number",
        "read": true,
        "write": true,
        "icon": "icons/volume_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.muted",
      "type": "state",
      "common": {
        "role": "media.mute",
        "name": "Mute state",
        "type": "boolean",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "player.mute",
      "type": "state",
      "common": {
        "role": "button",
        "name": "Mute",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/volume_mute_black.png"
      },
      "native": {}
    },
    {
      "_id": "player.unmute",
      "type": "state",
      "common": {
        "role": "button",
        "name": "Unmute",
        "type": "boolean",
        "read": false,
        "write": true,
        "icon": "icons/volume_black.png"
      },
      "native": {}
    },
    {
      "_id": "queue",
      "type": "channel",
      "common": {
        "name": "Queue playlist"
      },
      "native": {}
    },
    {
      "_id": "queue.clearQueue",
      "type": "state",
      "common": {
        "role": "media.clear",
        "name": "Clear the queue",
        "type": "boolean",
        "read": false,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "queue.shuffle",
      "type": "state",
      "common": {
        "role": "indicator",
        "name": "Shuffle playmode activated",
        "type": "boolean",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "queue.repeatTrackState",
      "type": "state",
      "common": {
        "role": "media.mode.repeat",
        "name": "State of repeat track mode",
        "type": "boolean",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "queue.repeatTrack",
      "type": "state",
      "common": {
        "role": "button",
        "name": "Toggle repeat track mode",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo",
      "type": "channel",
      "common": {
        "name": "Information of playback"
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.status",
      "type": "state",
      "common": {
        "role": "media.state",
        "name": "Playback status",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.position",
      "type": "state",
      "common": {
        "role": "media.track",
        "name": "Position in playlist of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.title",
      "type": "state",
      "common": {
        "role": "media.title",
        "name": "Title of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.artist",
      "type": "state",
      "common": {
        "role": "media.artist",
        "name": "Artist of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.album",
      "type": "state",
      "common": {
        "role": "media.album",
        "name": "Album of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.albumart",
      "type": "state",
      "common": {
        "role": "media.cover",
        "name": "Cover url of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.uri",
      "type": "state",
      "common": {
        "role": "media.url",
        "name": "Uri of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.trackType",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Type of current track (flac/mp3/acc/..)",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.codec",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Codec of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.seek",
      "type": "state",
      "common": {
        "role": "media.seek",
        "name": "Seek position of current track",
        "type": "number",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.duration",
      "type": "state",
      "common": {
        "role": "media.duration",
        "name": "Duration of current track",
        "type": "number",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.samplerate",
      "type": "state",
      "common": {
        "role": "media.bitrate",
        "name": "Samplerate of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.bitdepth",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Bitdepth of current track",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.channels",
      "type": "state",
      "common": {
        "role": "state",
        "name": "Number of channels of current track",
        "type": "number",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.random",
      "type": "state",
      "common": {
        "role": "indicator",
        "name": "Shuffle playmode activated",
        "type": "boolean",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "queue.shuffleMode",
      "type": "state",
      "common": {
        "role": "media.mode.shuffle",
        "name": "Shuffle mode 0 - none, 1 - all, 2 - one",
        "type": "number",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.repeat",
      "type": "state",
      "common": {
        "role": "media.mode.repeat",
        "name": "Repeat playlist activated",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.repeatSingle",
      "type": "state",
      "common": {
        "role": "media.mode.repeat",
        "name": "Repeat current track activated",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.consume",
      "type": "state",
      "common": {
        "role": "indicator",
        "name": "Consume",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.volume",
      "type": "state",
      "common": {
        "role": "level.volume",
        "name": "Volume in percent",
        "type": "number",
        "read": true,
        "write": true,
        "icon": "icons/volume_black.png"
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.dbVolume",
      "type": "state",
      "common": {
        "role": "state",
        "name": "Volume in dB",
        "type": "number",
        "read": true,
        "write": true
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.disableVolumeControl",
      "type": "state",
      "common": {
        "role": "indicator",
        "name": "Volume control disabled",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.mute",
      "type": "state",
      "common": {
        "role": "media.mute",
        "name": "Muted status",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.stream",
      "type": "state",
      "common": {
        "role": "text",
        "name": "Stream",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.updatedb",
      "type": "state",
      "common": {
        "role": "indicator",
        "name": "updatedb",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.volatile",
      "type": "state",
      "common": {
        "role": "indicator",
        "name": "volatile",
        "type": "boolean",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "playbackInfo.service",
      "type": "state",
      "common": {
        "role": "text",
        "name": "service",
        "type": "string",
        "read": true,
        "write": false
      },
      "native": {}
    },
    {
      "_id": "getPlaybackInfo",
      "type": "state",
      "common": {
        "role": "button",
        "name": "refresh playback info",
        "type": "boolean",
        "read": false,
        "write": true
      },
      "native": {}
    }
  ]
}
