From 08b8966241a081a6dcad67629ee38f45a31baeea Mon Sep 17 00:00:00 2001 From: Boernsman Date: Tue, 3 Nov 2020 13:06:04 +0100 Subject: [PATCH 1/4] added alert interface and api key provider --- bose/integrationpluginbose.cpp | 44 +++++++++++++++++++++ bose/integrationpluginbose.h | 21 +++++----- bose/integrationpluginbose.json | 69 ++++++++++++++++++++++++++++++++- 3 files changed, 124 insertions(+), 10 deletions(-) diff --git a/bose/integrationpluginbose.cpp b/bose/integrationpluginbose.cpp index 0662cf97..818075a0 100644 --- a/bose/integrationpluginbose.cpp +++ b/bose/integrationpluginbose.cpp @@ -49,6 +49,12 @@ IntegrationPluginBose::~IntegrationPluginBose() void IntegrationPluginBose::init() { m_serviceBrowser = hardwareManager()->zeroConfController()->createServiceBrowser("_soundtouch._tcp"); + + updateConsumerKey(); + + connect(this, &IntegrationPlugin::configValueChanged, this, &IntegrationPluginBose::updateConsumerKey); + connect(apiKeyStorage(), &ApiKeyStorage::keyAdded, this, &IntegrationPluginBose::updateConsumerKey); + connect(apiKeyStorage(), &ApiKeyStorage::keyUpdated, this, &IntegrationPluginBose::updateConsumerKey); } void IntegrationPluginBose::setupThing(ThingSetupInfo *info) @@ -275,6 +281,28 @@ void IntegrationPluginBose::executeAction(ThingActionInfo *info) } m_pendingActions.insert(requestId, info); connect(info, &ThingActionInfo::aborted, this, [requestId, this] {m_pendingActions.remove(requestId);}); + } else if (action.actionTypeId() == soundtouchAlertActionTypeId) { + if (m_consumerKey.isEmpty()) { + return info->finish(Thing::ThingErrorHardwareFailure, tr("No consumer key available.")); + } + QUrl alertUrl; + QString alertSound = action.param(soundtouchAlertActionSoundParamTypeId).value().toString(); + if (alertSound == "Doorbell") { + alertUrl = configValue(bosePluginDoorbellSoundUrlParamTypeId).toString(); + } else if (alertSound == "Notification") { + alertUrl = configValue(bosePluginNotificationSoundUrlParamTypeId).toString(); + } + if (!alertUrl.isValid()) { + return info->finish(Thing::ThingErrorHardwareFailure, tr("Sound URL is not valid.")); + } + PlayInfoObject playInfo; + playInfo.url = alertUrl.toString(); + playInfo.appKey = m_consumerKey; + playInfo.volume = action.param(soundtouchAlertActionVolumeParamTypeId).value().toInt(); + playInfo.reason = action.param(soundtouchAlertActionMessageParamTypeId).value().toString(); + QUuid requestId = soundTouch->setSpeaker(playInfo); + m_pendingActions.insert(requestId, info); + connect(info, &ThingActionInfo::aborted, this, [requestId, this] {m_pendingActions.remove(requestId);}); } else { qCWarning(dcBose()) << "ActionTypeId not found" << action.actionTypeId(); return info->finish(Thing::ThingErrorActionTypeNotFound); @@ -369,6 +397,22 @@ void IntegrationPluginBose::executeBrowserItem(BrowserActionInfo *info) } } +void IntegrationPluginBose::updateConsumerKey() +{ + QString key = configValue(bosePluginCustomConsumerKeyParamTypeId).toString(); + if (!key.isEmpty()) { + m_consumerKey = key; + return; + } + key = apiKeyStorage()->requestKey("bose").data("consumerKey"); + if (!key.isEmpty()) { + m_consumerKey = key; + return; + } + qCWarning(dcBose()) << "No API key set."; + qCWarning(dcBose()) << "Either install an API key pacakge (nymea-apikeysprovider-plugin-*) or provide a key in the plugin settings."; +} + void IntegrationPluginBose::onPluginTimer() { foreach(SoundTouch *soundTouch, m_soundTouch.values()) { diff --git a/bose/integrationpluginbose.h b/bose/integrationpluginbose.h index 4ce61d7a..16223879 100644 --- a/bose/integrationpluginbose.h +++ b/bose/integrationpluginbose.h @@ -63,6 +63,7 @@ public: void executeBrowserItem(BrowserActionInfo *info) override; private: + QString m_consumerKey; ZeroConfServiceBrowser *m_serviceBrowser = nullptr; PluginTimer *m_pluginTimer = nullptr; @@ -79,15 +80,17 @@ private slots: void onDeviceNameChanged(); void onRequestExecuted(QUuid requestId, bool success); - void onInfoObjectReceived(QUuid requestId, InfoObject infoObject); - void onNowPlayingObjectReceived(QUuid requestId, NowPlayingObject nowPlaying); - void onVolumeObjectReceived(QUuid requestId, VolumeObject volume); - void onSourcesObjectReceived(QUuid requestId, SourcesObject sources); - void onBassObjectReceived(QUuid requestId, BassObject bass); - void onBassCapabilitiesObjectReceived(QUuid requestId, BassCapabilitiesObject bassCapabilities); - void onGroupObjectReceived(QUuid requestId, GroupObject group); - void onZoneObjectReceived(QUuid requestId, ZoneObject zone); - void onPresetsReceived(QUuid requestId, QList presets); + void onInfoObjectReceived(QUuid requestId, InfoObject infoObject); + void onNowPlayingObjectReceived(QUuid requestId, NowPlayingObject nowPlaying); + void onVolumeObjectReceived(QUuid requestId, VolumeObject volume); + void onSourcesObjectReceived(QUuid requestId, SourcesObject sources); + void onBassObjectReceived(QUuid requestId, BassObject bass); + void onBassCapabilitiesObjectReceived(QUuid requestId, BassCapabilitiesObject bassCapabilities); + void onGroupObjectReceived(QUuid requestId, GroupObject group); + void onZoneObjectReceived(QUuid requestId, ZoneObject zone); + void onPresetsReceived(QUuid requestId, QList presets); + + void updateConsumerKey(); }; #endif // INTEGRATIONPLUGINBOSE_H diff --git a/bose/integrationpluginbose.json b/bose/integrationpluginbose.json index f3e07d94..5021a90c 100644 --- a/bose/integrationpluginbose.json +++ b/bose/integrationpluginbose.json @@ -2,6 +2,37 @@ "id": "472a3f24-b05c-49b3-ad9a-dfda608b6760", "name": "Bose", "displayName": "Bose", + "apiKeys": ["bose"], + "paramTypes": [ + { + "id": "a5fcebca-b37d-4c14-ba22-1e5f1dd377e7", + "name": "customConsumerKey", + "displayName": "Custom consumer key", + "type" : "QString", + "defaultValue": "" + }, + { + "id": "2c41fcc1-b28f-4f7e-9a8c-74972c60d22f", + "name": "customConsumerSecret", + "displayName": "Custom consumer secret", + "type" : "QString", + "defaultValue": "" + }, + { + "id": "82883f9b-4397-404a-9126-4e9d5a22e6c6", + "name": "doorbellSoundUrl", + "displayName": "Doorbell sound url", + "type" : "QString", + "defaultValue": "https://downloads.nymea.io/notification-sounds/doorbell.mp3" + }, + { + "id": "8717d14e-c3d5-44a7-b658-4826dd4013c2", + "name": "notificationSoundUrl", + "displayName": "Notification sound url", + "type" : "QString", + "defaultValue": "https://downloads.nymea.io/notification-sounds/notification.mp3" + } + ], "vendors": [ { "id": "433c45cd-5bc1-4239-a8a1-487c70ffdfc7", @@ -12,7 +43,7 @@ "id": "f9b7a3f5-6353-48b1-afc1-66f914412f82", "name": "soundtouch", "displayName": "SoundTouch", - "interfaces": ["extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "connectable"], + "interfaces": ["extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "alert", "connectable"], "createMethods": ["discovery"], "browsable": true, "paramTypes": [ @@ -221,6 +252,42 @@ ] } ] + }, + { + "id": "de24c5ec-1e36-4149-bfaa-71fb05264aa3", + "name": "alert", + "displayName": "Alert", + "paramTypes": [ + { + "id": "4c13007a-82e6-484f-959a-bf3731c18768", + "name": "sound", + "displayName": "Sound", + "type": "QString", + "defaultValue": "Notification", + "allowedValues": [ + "Doorbell", + "Warning", + "Noification", + "Error" + ] + }, + { + "id": "346e1544-16fa-49a1-85ac-6be657c737d8", + "name": "message", + "displayName": "Display message", + "type": "QString", + "defaultValue": "None" + }, + { + "id": "8527bff6-811f-41f5-a098-e4b356e2463c", + "name": "volume", + "displayName": "Volume", + "type": "int", + "minValue": 10, + "maxValue": 70, + "defaultValue": "30" + } + ] } ] } From 759a8c49674a57d049fd8ee8e25859f3e1f38504 Mon Sep 17 00:00:00 2001 From: Boernsman Date: Tue, 3 Nov 2020 15:41:04 +0100 Subject: [PATCH 2/4] fixed alert action --- bose/integrationpluginbose.cpp | 2 +- bose/integrationpluginbose.json | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/bose/integrationpluginbose.cpp b/bose/integrationpluginbose.cpp index 818075a0..18137854 100644 --- a/bose/integrationpluginbose.cpp +++ b/bose/integrationpluginbose.cpp @@ -59,7 +59,6 @@ void IntegrationPluginBose::init() void IntegrationPluginBose::setupThing(ThingSetupInfo *info) { - if (info->thing()->thingClassId() == soundtouchThingClassId) { QString ipAddress; @@ -298,6 +297,7 @@ void IntegrationPluginBose::executeAction(ThingActionInfo *info) PlayInfoObject playInfo; playInfo.url = alertUrl.toString(); playInfo.appKey = m_consumerKey; + playInfo.services = "nymea"; playInfo.volume = action.param(soundtouchAlertActionVolumeParamTypeId).value().toInt(); playInfo.reason = action.param(soundtouchAlertActionMessageParamTypeId).value().toString(); QUuid requestId = soundTouch->setSpeaker(playInfo); diff --git a/bose/integrationpluginbose.json b/bose/integrationpluginbose.json index 5021a90c..6854935c 100644 --- a/bose/integrationpluginbose.json +++ b/bose/integrationpluginbose.json @@ -266,9 +266,7 @@ "defaultValue": "Notification", "allowedValues": [ "Doorbell", - "Warning", - "Noification", - "Error" + "Notification" ] }, { @@ -276,7 +274,7 @@ "name": "message", "displayName": "Display message", "type": "QString", - "defaultValue": "None" + "defaultValue": "" }, { "id": "8527bff6-811f-41f5-a098-e4b356e2463c", @@ -285,7 +283,7 @@ "type": "int", "minValue": 10, "maxValue": 70, - "defaultValue": "30" + "defaultValue": "40" } ] } From 58b9d1d13d5549a2c6d48b960873ab690dd8a5a8 Mon Sep 17 00:00:00 2001 From: Boernsman Date: Tue, 3 Nov 2020 15:54:34 +0100 Subject: [PATCH 3/4] added german translation --- ...472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts | 410 ++++++++++++++++++ ...a3f24-b05c-49b3-ad9a-dfda608b6760-en_US.ts | 196 ++++++--- 2 files changed, 537 insertions(+), 69 deletions(-) create mode 100644 bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts diff --git a/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts b/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts new file mode 100644 index 00000000..4be1172c --- /dev/null +++ b/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts @@ -0,0 +1,410 @@ + + + + + Bose + + + Alert + The name of the ActionType ({de24c5ec-1e36-4149-bfaa-71fb05264aa3}) of ThingClass soundtouch + Alarm + + + + + Artist + The name of the ParamType (ThingClass: soundtouch, EventType: artist, ID: {8cb920a3-3bf1-4231-92d4-8ac27e7b3d65}) +---------- +The name of the StateType ({8cb920a3-3bf1-4231-92d4-8ac27e7b3d65}) of ThingClass soundtouch + Künstler + + + + Artist changed + The name of the EventType ({8cb920a3-3bf1-4231-92d4-8ac27e7b3d65}) of ThingClass soundtouch + Künstler geändert + + + + + Artwork + The name of the ParamType (ThingClass: soundtouch, EventType: artwork, ID: {44304c82-c2f6-433b-b62b-815382617d0b}) +---------- +The name of the StateType ({44304c82-c2f6-433b-b62b-815382617d0b}) of ThingClass soundtouch + + + + + Artwork changed + The name of the EventType ({44304c82-c2f6-433b-b62b-815382617d0b}) of ThingClass soundtouch + + + + + + + Bass + The name of the ParamType (ThingClass: soundtouch, ActionType: bass, ID: {91bc53ec-4f3b-438d-8e32-129b7c27aae4}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: bass, ID: {91bc53ec-4f3b-438d-8e32-129b7c27aae4}) +---------- +The name of the StateType ({91bc53ec-4f3b-438d-8e32-129b7c27aae4}) of ThingClass soundtouch + Bass + + + + Bass changed + The name of the EventType ({91bc53ec-4f3b-438d-8e32-129b7c27aae4}) of ThingClass soundtouch + Bass geändert + + + + + Bose + The name of the vendor ({433c45cd-5bc1-4239-a8a1-487c70ffdfc7}) +---------- +The name of the plugin Bose ({472a3f24-b05c-49b3-ad9a-dfda608b6760}) + Bose + + + + + Collection + The name of the ParamType (ThingClass: soundtouch, EventType: collection, ID: {ce399eec-9f6a-4903-9916-0e90e38b255e}) +---------- +The name of the StateType ({ce399eec-9f6a-4903-9916-0e90e38b255e}) of ThingClass soundtouch + Sammlung + + + + Collection changed + The name of the EventType ({ce399eec-9f6a-4903-9916-0e90e38b255e}) of ThingClass soundtouch + Sammlung geändert + + + + + Connected + The name of the ParamType (ThingClass: soundtouch, EventType: connected, ID: {09dfbd40-c97c-4a20-9ecd-f80e389a4864}) +---------- +The name of the StateType ({09dfbd40-c97c-4a20-9ecd-f80e389a4864}) of ThingClass soundtouch + Verbunden + + + + Custom consumer key + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {a5fcebca-b37d-4c14-ba22-1e5f1dd377e7}) + Benutzerdefinierter Consumer-Key + + + + Custom consumer secret + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {2c41fcc1-b28f-4f7e-9a8c-74972c60d22f}) + Benutzerdefiniertes Consumer-Secret + + + + Display message + The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {346e1544-16fa-49a1-85ac-6be657c737d8}) + Nachricht anzeigen + + + + Doorbell sound url + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {82883f9b-4397-404a-9126-4e9d5a22e6c6}) + Türklingelton URL + + + + IP + The name of the ParamType (ThingClass: soundtouch, Type: thing, ID: {1a897065-57c6-49b3-bac9-1e5db27859e5}) + IP + + + + + + Mute + The name of the ParamType (ThingClass: soundtouch, ActionType: mute, ID: {bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: mute, ID: {bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) +---------- +The name of the StateType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass soundtouch + Stumm + + + + Mute changed + The name of the EventType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass soundtouch + Stumm geändert + + + + Notification sound url + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {8717d14e-c3d5-44a7-b658-4826dd4013c2}) + Benachrichtigungston URL + + + + Pause + The name of the ActionType ({3cf341cb-fe63-40bc-a450-9678d18e91e3}) of ThingClass soundtouch + Pause + + + + Play + The name of the ActionType ({4d2ee668-a2e3-4795-8b96-0c800b703b46}) of ThingClass soundtouch + Play + + + + + + Playback status + The name of the ParamType (ThingClass: soundtouch, ActionType: playbackStatus, ID: {2dd512b7-40c2-488e-8d4f-6519edaa6f74}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: playbackStatus, ID: {2dd512b7-40c2-488e-8d4f-6519edaa6f74}) +---------- +The name of the StateType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass soundtouch + Wiedergabestatus + + + + Player ID + The name of the ParamType (ThingClass: soundtouch, Type: thing, ID: {3eb95eef-e8ba-4d44-8a21-7d8038b74c4d}) + Player ID + + + + Player pause + The name of the EventType ({99498b1c-e9c0-480a-9e91-662ee79ba976}) of ThingClass soundtouch + + + + + Player play + The name of the EventType ({2535a1eb-7643-4874-98f6-b027fdff6311}) of ThingClass soundtouch + + + + + Player stop + The name of the EventType ({a02ce255-3abb-435d-a92e-7f99c952ecb2}) of ThingClass soundtouch + + + + + + + Power + The name of the ParamType (ThingClass: soundtouch, ActionType: power, ID: {5bac4ad7-f55c-4301-8d72-f2783d9909ff}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: power, ID: {5bac4ad7-f55c-4301-8d72-f2783d9909ff}) +---------- +The name of the StateType ({5bac4ad7-f55c-4301-8d72-f2783d9909ff}) of ThingClass soundtouch + Eingeschalten + + + + Power changed + The name of the EventType ({5bac4ad7-f55c-4301-8d72-f2783d9909ff}) of ThingClass soundtouch + Eingeschalten geändert + + + + Preset number + The name of the ParamType (ThingClass: soundtouch, ActionType: savePreset, ID: {04ac6e10-922d-4774-861f-060897d3a6c0}) + Presetnummer + + + + + + Repeat + The name of the ParamType (ThingClass: soundtouch, ActionType: repeat, ID: {bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: repeat, ID: {bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) +---------- +The name of the StateType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass soundtouch + Wiederholen + + + + Repeat changed + The name of the EventType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass soundtouch + Wiederholen geändert + + + + Save preset + The name of the ActionType ({6c47e736-e2e0-47d4-9b96-7f56d2342b4d}) of ThingClass soundtouch + Preset speichern + + + + Set bass + The name of the ActionType ({91bc53ec-4f3b-438d-8e32-129b7c27aae4}) of ThingClass soundtouch + Setze Bass + + + + Set mute + The name of the ActionType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass soundtouch + Setze stumm + + + + Set power + The name of the ActionType ({5bac4ad7-f55c-4301-8d72-f2783d9909ff}) of ThingClass soundtouch + Setze eingeschalten + + + + Set repeat + The name of the ActionType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass soundtouch + Setze wiederholen + + + + Set shuffle + The name of the ActionType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch + + + + + Set volume + The name of the ActionType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass soundtouch + + + + + + + Shuffle + The name of the ParamType (ThingClass: soundtouch, ActionType: shuffle, ID: {5913aa2a-629d-4de5-bf44-a4a1f130c118}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: shuffle, ID: {5913aa2a-629d-4de5-bf44-a4a1f130c118}) +---------- +The name of the StateType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch + + + + + Shuffle changed + The name of the EventType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch + + + + + Skip Next + The name of the ActionType ({85d7126a-b123-4a28-aeb4-d84bcfb4d14f}) of ThingClass soundtouch + + + + + Skip back + The name of the ActionType ({a180807d-1265-4831-9d86-a421767418dd}) of ThingClass soundtouch + + + + + Sound + The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {4c13007a-82e6-484f-959a-bf3731c18768}) + + + + + SoundTouch + The name of the ThingClass ({f9b7a3f5-6353-48b1-afc1-66f914412f82}) + SoundTouch + + + + + Source + The name of the ParamType (ThingClass: soundtouch, EventType: source, ID: {f4684de8-ff5f-41f3-a5c3-f5e5754519d2}) +---------- +The name of the StateType ({f4684de8-ff5f-41f3-a5c3-f5e5754519d2}) of ThingClass soundtouch + Quelle + + + + Source changed + The name of the EventType ({f4684de8-ff5f-41f3-a5c3-f5e5754519d2}) of ThingClass soundtouch + Quelle geändert + + + + Stop + The name of the ActionType ({ae3cbe03-ee3e-410e-abbd-efabc2402198}) of ThingClass soundtouch + Stopp + + + + + Title + The name of the ParamType (ThingClass: soundtouch, EventType: title, ID: {f2209fec-cceb-46ad-8189-4caf42166e6b}) +---------- +The name of the StateType ({f2209fec-cceb-46ad-8189-4caf42166e6b}) of ThingClass soundtouch + Titel + + + + Title changed + The name of the EventType ({f2209fec-cceb-46ad-8189-4caf42166e6b}) of ThingClass soundtouch + Titel geändert + + + + + + + Volume + The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {8527bff6-811f-41f5-a098-e4b356e2463c}) +---------- +The name of the ParamType (ThingClass: soundtouch, ActionType: volume, ID: {9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) +---------- +The name of the ParamType (ThingClass: soundtouch, EventType: volume, ID: {9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) +---------- +The name of the StateType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass soundtouch + Lautstärke + + + + Volume changed + The name of the EventType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass soundtouch + Lautstärke geändert + + + + connected changed + The name of the EventType ({09dfbd40-c97c-4a20-9ecd-f80e389a4864}) of ThingClass soundtouch + Verbunden geändert + + + + playback status changed + The name of the EventType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass soundtouch + Wiedergabastatus geändert + + + + set playback status + The name of the ActionType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass soundtouch + Setze Wiedergabestatus + + + + IntegrationPluginBose + + + No consumer key available. + Kein Consumer-Key verfügbar. + + + + Sound URL is not valid. + Die Sound-URL ist ungültig. + + + diff --git a/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-en_US.ts b/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-en_US.ts index 61d5ce3d..f0974e2e 100644 --- a/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-en_US.ts +++ b/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-en_US.ts @@ -4,8 +4,14 @@ Bose - - + + Alert + The name of the ActionType ({de24c5ec-1e36-4149-bfaa-71fb05264aa3}) of ThingClass soundtouch + + + + + Artist The name of the ParamType (ThingClass: soundtouch, EventType: artist, ID: {8cb920a3-3bf1-4231-92d4-8ac27e7b3d65}) ---------- @@ -13,14 +19,14 @@ The name of the StateType ({8cb920a3-3bf1-4231-92d4-8ac27e7b3d65}) of ThingClass - + Artist changed The name of the EventType ({8cb920a3-3bf1-4231-92d4-8ac27e7b3d65}) of ThingClass soundtouch - - + + Artwork The name of the ParamType (ThingClass: soundtouch, EventType: artwork, ID: {44304c82-c2f6-433b-b62b-815382617d0b}) ---------- @@ -28,15 +34,15 @@ The name of the StateType ({44304c82-c2f6-433b-b62b-815382617d0b}) of ThingClass - + Artwork changed The name of the EventType ({44304c82-c2f6-433b-b62b-815382617d0b}) of ThingClass soundtouch - - - + + + Bass The name of the ParamType (ThingClass: soundtouch, ActionType: bass, ID: {91bc53ec-4f3b-438d-8e32-129b7c27aae4}) ---------- @@ -46,14 +52,14 @@ The name of the StateType ({91bc53ec-4f3b-438d-8e32-129b7c27aae4}) of ThingClass - + Bass changed The name of the EventType ({91bc53ec-4f3b-438d-8e32-129b7c27aae4}) of ThingClass soundtouch - - + + Bose The name of the vendor ({433c45cd-5bc1-4239-a8a1-487c70ffdfc7}) ---------- @@ -61,8 +67,8 @@ The name of the plugin Bose ({472a3f24-b05c-49b3-ad9a-dfda608b6760}) - - + + Collection The name of the ParamType (ThingClass: soundtouch, EventType: collection, ID: {ce399eec-9f6a-4903-9916-0e90e38b255e}) ---------- @@ -70,14 +76,14 @@ The name of the StateType ({ce399eec-9f6a-4903-9916-0e90e38b255e}) of ThingClass - + Collection changed The name of the EventType ({ce399eec-9f6a-4903-9916-0e90e38b255e}) of ThingClass soundtouch - - + + Connected The name of the ParamType (ThingClass: soundtouch, EventType: connected, ID: {09dfbd40-c97c-4a20-9ecd-f80e389a4864}) ---------- @@ -85,15 +91,39 @@ The name of the StateType ({09dfbd40-c97c-4a20-9ecd-f80e389a4864}) of ThingClass - + + Custom consumer key + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {a5fcebca-b37d-4c14-ba22-1e5f1dd377e7}) + + + + + Custom consumer secret + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {2c41fcc1-b28f-4f7e-9a8c-74972c60d22f}) + + + + + Display message + The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {346e1544-16fa-49a1-85ac-6be657c737d8}) + + + + + Doorbell sound url + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {82883f9b-4397-404a-9126-4e9d5a22e6c6}) + + + + IP The name of the ParamType (ThingClass: soundtouch, Type: thing, ID: {1a897065-57c6-49b3-bac9-1e5db27859e5}) - - - + + + Mute The name of the ParamType (ThingClass: soundtouch, ActionType: mute, ID: {bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) ---------- @@ -103,27 +133,33 @@ The name of the StateType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass - + Mute changed The name of the EventType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass soundtouch - + + Notification sound url + The name of the ParamType (ThingClass: bose, Type: plugin, ID: {8717d14e-c3d5-44a7-b658-4826dd4013c2}) + + + + Pause The name of the ActionType ({3cf341cb-fe63-40bc-a450-9678d18e91e3}) of ThingClass soundtouch - + Play The name of the ActionType ({4d2ee668-a2e3-4795-8b96-0c800b703b46}) of ThingClass soundtouch - - - + + + Playback status The name of the ParamType (ThingClass: soundtouch, ActionType: playbackStatus, ID: {2dd512b7-40c2-488e-8d4f-6519edaa6f74}) ---------- @@ -133,33 +169,33 @@ The name of the StateType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass - + Player ID The name of the ParamType (ThingClass: soundtouch, Type: thing, ID: {3eb95eef-e8ba-4d44-8a21-7d8038b74c4d}) - + Player pause The name of the EventType ({99498b1c-e9c0-480a-9e91-662ee79ba976}) of ThingClass soundtouch - + Player play The name of the EventType ({2535a1eb-7643-4874-98f6-b027fdff6311}) of ThingClass soundtouch - + Player stop The name of the EventType ({a02ce255-3abb-435d-a92e-7f99c952ecb2}) of ThingClass soundtouch - - - + + + Power The name of the ParamType (ThingClass: soundtouch, ActionType: power, ID: {5bac4ad7-f55c-4301-8d72-f2783d9909ff}) ---------- @@ -169,21 +205,21 @@ The name of the StateType ({5bac4ad7-f55c-4301-8d72-f2783d9909ff}) of ThingClass - + Power changed The name of the EventType ({5bac4ad7-f55c-4301-8d72-f2783d9909ff}) of ThingClass soundtouch - + Preset number The name of the ParamType (ThingClass: soundtouch, ActionType: savePreset, ID: {04ac6e10-922d-4774-861f-060897d3a6c0}) - - - + + + Repeat The name of the ParamType (ThingClass: soundtouch, ActionType: repeat, ID: {bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) ---------- @@ -193,57 +229,57 @@ The name of the StateType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass - + Repeat changed The name of the EventType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass soundtouch - + Save preset The name of the ActionType ({6c47e736-e2e0-47d4-9b96-7f56d2342b4d}) of ThingClass soundtouch - + Set bass The name of the ActionType ({91bc53ec-4f3b-438d-8e32-129b7c27aae4}) of ThingClass soundtouch - + Set mute The name of the ActionType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass soundtouch - + Set power The name of the ActionType ({5bac4ad7-f55c-4301-8d72-f2783d9909ff}) of ThingClass soundtouch - + Set repeat The name of the ActionType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass soundtouch - + Set shuffle The name of the ActionType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch - + Set volume The name of the ActionType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass soundtouch - - - + + + Shuffle The name of the ParamType (ThingClass: soundtouch, ActionType: shuffle, ID: {5913aa2a-629d-4de5-bf44-a4a1f130c118}) ---------- @@ -253,32 +289,38 @@ The name of the StateType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass - + Shuffle changed The name of the EventType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch - + Skip Next The name of the ActionType ({85d7126a-b123-4a28-aeb4-d84bcfb4d14f}) of ThingClass soundtouch - + Skip back The name of the ActionType ({a180807d-1265-4831-9d86-a421767418dd}) of ThingClass soundtouch - + + Sound + The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {4c13007a-82e6-484f-959a-bf3731c18768}) + + + + SoundTouch The name of the ThingClass ({f9b7a3f5-6353-48b1-afc1-66f914412f82}) - - + + Source The name of the ParamType (ThingClass: soundtouch, EventType: source, ID: {f4684de8-ff5f-41f3-a5c3-f5e5754519d2}) ---------- @@ -286,20 +328,20 @@ The name of the StateType ({f4684de8-ff5f-41f3-a5c3-f5e5754519d2}) of ThingClass - + Source changed The name of the EventType ({f4684de8-ff5f-41f3-a5c3-f5e5754519d2}) of ThingClass soundtouch - + Stop The name of the ActionType ({ae3cbe03-ee3e-410e-abbd-efabc2402198}) of ThingClass soundtouch - - + + Title The name of the ParamType (ThingClass: soundtouch, EventType: title, ID: {f2209fec-cceb-46ad-8189-4caf42166e6b}) ---------- @@ -307,17 +349,20 @@ The name of the StateType ({f2209fec-cceb-46ad-8189-4caf42166e6b}) of ThingClass - + Title changed The name of the EventType ({f2209fec-cceb-46ad-8189-4caf42166e6b}) of ThingClass soundtouch - - - + + + + Volume - The name of the ParamType (ThingClass: soundtouch, ActionType: volume, ID: {9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) + The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {8527bff6-811f-41f5-a098-e4b356e2463c}) +---------- +The name of the ParamType (ThingClass: soundtouch, ActionType: volume, ID: {9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) ---------- The name of the ParamType (ThingClass: soundtouch, EventType: volume, ID: {9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) ---------- @@ -325,28 +370,41 @@ The name of the StateType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass - + Volume changed The name of the EventType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass soundtouch - + connected changed The name of the EventType ({09dfbd40-c97c-4a20-9ecd-f80e389a4864}) of ThingClass soundtouch - + playback status changed The name of the EventType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass soundtouch - + set playback status The name of the ActionType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass soundtouch + + IntegrationPluginBose + + + No consumer key available. + + + + + Sound URL is not valid. + + + From 8d341a58b6b3e63684eb78fcba5bde4bf7841706 Mon Sep 17 00:00:00 2001 From: Boernsman Date: Tue, 3 Nov 2020 15:55:00 +0100 Subject: [PATCH 4/4] added german translation --- ...472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts b/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts index 4be1172c..72911c5f 100644 --- a/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts +++ b/bose/translations/472a3f24-b05c-49b3-ad9a-dfda608b6760-de.ts @@ -154,7 +154,7 @@ The name of the StateType ({bc98cdb0-4d0e-48ca-afc7-922e49bb7813}) of ThingClass Play The name of the ActionType ({4d2ee668-a2e3-4795-8b96-0c800b703b46}) of ThingClass soundtouch - Play + Start @@ -178,19 +178,19 @@ The name of the StateType ({2dd512b7-40c2-488e-8d4f-6519edaa6f74}) of ThingClass Player pause The name of the EventType ({99498b1c-e9c0-480a-9e91-662ee79ba976}) of ThingClass soundtouch - + Player pause Player play The name of the EventType ({2535a1eb-7643-4874-98f6-b027fdff6311}) of ThingClass soundtouch - + Player start Player stop The name of the EventType ({a02ce255-3abb-435d-a92e-7f99c952ecb2}) of ThingClass soundtouch - + Player stopp @@ -268,13 +268,13 @@ The name of the StateType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass Set shuffle The name of the ActionType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch - + Setze zufällige Wiedergabe Set volume The name of the ActionType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass soundtouch - + Setze Lautstärke @@ -286,31 +286,31 @@ The name of the StateType ({bc02c28e-3f5d-4de4-b9b5-c0b1576c6e7e}) of ThingClass The name of the ParamType (ThingClass: soundtouch, EventType: shuffle, ID: {5913aa2a-629d-4de5-bf44-a4a1f130c118}) ---------- The name of the StateType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch - + Zufällige Wiedergabe Shuffle changed The name of the EventType ({5913aa2a-629d-4de5-bf44-a4a1f130c118}) of ThingClass soundtouch - + Zufällige Wiedergabe geändert Skip Next The name of the ActionType ({85d7126a-b123-4a28-aeb4-d84bcfb4d14f}) of ThingClass soundtouch - + Nächster Skip back The name of the ActionType ({a180807d-1265-4831-9d86-a421767418dd}) of ThingClass soundtouch - + Zurück Sound The name of the ParamType (ThingClass: soundtouch, ActionType: alert, ID: {4c13007a-82e6-484f-959a-bf3731c18768}) - + Ton @@ -404,7 +404,7 @@ The name of the StateType ({9dfe5d78-4c3f-497c-bab1-bb9fdf7e93a9}) of ThingClass Sound URL is not valid. - Die Sound-URL ist ungültig. + Die Benachrichtigungston-URL ist ungültig.