Skip to content

Commit

Permalink
Merge pull request #8 from martijnpoppen/master
Browse files Browse the repository at this point in the history
NEW: Add new trigger cards for Washer and Dryer
  • Loading branch information
wouter-athom authored Dec 2, 2024
2 parents 7f6a99b + 925f421 commit c38a2f4
Show file tree
Hide file tree
Showing 5 changed files with 349 additions and 12 deletions.
168 changes: 168 additions & 0 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,78 @@
}
]
},
{
"id": "samsung_dryer_job_started",
"title": {
"en": "A drying job has started",
"nl": "Een droogklus is gestart",
"da": "En tørreopgave er startet",
"de": "Ein Trocknungsvorgang hat begonnen",
"es": "Un trabajo de secado ha comenzado",
"fr": "Un travail de séchage a commencé",
"it": "Un lavoro di asciugatura è iniziato",
"no": "En tørkejobb har startet",
"sv": "Ett torkjobb har startat",
"pl": "Rozpoczęto suszenie",
"ru": "Сушка начата",
"ko": "건조 작업이 시작되었습니다"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=dryer"
}
]
},
{
"id": "samsung_dryer_job_spin",
"title": {
"en": "A drying job is spinning",
"nl": "Een droogklus draait",
"da": "En tørreopgave spinner",
"de": "Ein Trocknungsvorgang dreht",
"es": "Un trabajo de secado está girando",
"fr": "Un travail de séchage tourne",
"it": "Un lavoro di asciugatura sta girando",
"no": "En tørkejobb spinner",
"sv": "Ett torkjobb snurrar",
"pl": "Suszenie się kręci",
"ru": "Сушка крутится",
"ko": "건조 작업이 회전 중입니다"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=dryer"
}
]
},
{
"id": "samsung_dryer_job_rinse",
"title": {
"en": "A drying job is rinsing",
"nl": "Een droogklus spoelt",
"da": "En tørreopgave skyller",
"de": "Ein Trocknungsvorgang spült",
"es": "Un trabajo de secado está enjuagando",
"fr": "Un travail de séchage rince",
"it": "Un lavoro di asciugatura sta risciacquando",
"no": "En tørkejobb skyller",
"sv": "Ett torkjobb sköljer",
"pl": "Suszenie płucze",
"ru": "Сушка промывается",
"ko": "건조 작업이 헹구는 중입니다"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=dryer"
}
]
},
{
"id": "samsung_oven_job_finished",
"title": {
Expand Down Expand Up @@ -126,6 +198,102 @@
}
]
},
{
"id": "samsung_washer_job_started",
"title": {
"en": "A washing job has started",
"nl": "Een wasbeurt is gestart",
"da": "En vaskeopgave er startet",
"de": "Ein Waschgang hat begonnen",
"es": "Un trabajo de lavado ha comenzado",
"fr": "Un cycle de lavage a commencé",
"it": "Un lavaggio è iniziato",
"no": "En vask har startet",
"sv": "En tvätt har startat",
"pl": "Rozpoczęto pranie",
"ru": "Стирка начата",
"ko": "세탁 작업이 시작되었습니다"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=washer"
}
]
},
{
"id": "samsung_washer_job_weight_sensing",
"title": {
"en": "Weight sensing",
"nl": "Gewichtsdetectie",
"da": "Vægtregistrering",
"de": "Gewichtserkennung",
"es": "Detección de peso",
"fr": "Détection de poids",
"it": "Rilevamento del peso",
"no": "Vektdeteksjon",
"sv": "Viktdetektering",
"pl": "Wykrywanie wagi",
"ru": "Определение веса",
"ko": "중량 감지"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=washer"
}
]
},
{
"id": "samsung_washer_job_pre_wash",
"title": {
"en": "PreWash",
"nl": "Voorwas",
"da": "Forvask",
"de": "Vorwäsche",
"es": "Prelavado",
"fr": "Prélavage",
"it": "Prelavaggio",
"no": "Forvask",
"sv": "Förtvätt",
"pl": "Pranie wstępne",
"ru": "Предварительная стирка",
"ko": "사전 세탁"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=washer"
}
]
},
{
"id": "samsung_washer_job_rinse",
"title": {
"en": "Started rinsing",
"nl": "Begonnen met spoelen",
"da": "Begyndte at skylle",
"de": "Hat mit dem Spülen begonnen",
"es": "Comenzó a enjuagar",
"fr": "A commencé à rincer",
"it": "Ha iniziato a sciacquare",
"no": "Startet skylling",
"sv": "Började skölja",
"pl": "Rozpoczęto płukanie",
"ru": "Начался процесс полоскания",
"ko": "헹굼 시작됨"
},
"args": [
{
"type": "device",
"name": "device",
"filter": "driver_id=washer"
}
]
},
{
"id": "alarm_samsung_washer_addwash_door_open_true",
"title": {
Expand Down
35 changes: 29 additions & 6 deletions drivers/dryer/device.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,35 @@ module.exports = class SmartThingsDeviceDryer extends SmartThingsDevice {
smartThingsCapabilityId: 'samsungce.dryerOperatingState',
smartThingsAttributeId: 'washerJobState',
async onReport({ value }) {
if (value === 'finished') {
this.homey.flow
.getDeviceTriggerCard('samsung_dryer_job_finished')
.trigger(this)
.catch(this.error);
}
const homeyCapabilityId = 'samsung_dryer_current_job_state';

const flowArray = [
{
value: 'finished',
flow: 'samsung_dryer_job_finished',
},
{
value: 'dry',
flow: 'samsung_dryer_job_started',
},
{
value: 'spin',
flow: 'samsung_dryer_job_spin',
},
{
value: 'rinse',
flow: 'samsung_dryer_job_rinse',
},
];

flowArray.forEach(f => {
if (value === f.value && this.getCapabilityValue(homeyCapabilityId) !== f.value) {
this.homey.flow
.getDeviceTriggerCard(f.flow)
.trigger(this)
.catch(this.error);
}
});

return value;
},
Expand Down
51 changes: 51 additions & 0 deletions drivers/dryer/driver.flow.compose.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,57 @@
"ru": "Сушка завершена",
"ko": "건조 작업이 완료되었습니다"
}
},
{
"id": "samsung_dryer_job_started",
"title": {
"en": "A drying job has started",
"nl": "Een droogklus is gestart",
"da": "En tørreopgave er startet",
"de": "Ein Trocknungsvorgang hat begonnen",
"es": "Un trabajo de secado ha comenzado",
"fr": "Un travail de séchage a commencé",
"it": "Un lavoro di asciugatura è iniziato",
"no": "En tørkejobb har startet",
"sv": "Ett torkjobb har startat",
"pl": "Rozpoczęto suszenie",
"ru": "Сушка начата",
"ko": "건조 작업이 시작되었습니다"
}
},
{
"id": "samsung_dryer_job_spin",
"title": {
"en": "A drying job is spinning",
"nl": "Een droogklus draait",
"da": "En tørreopgave spinner",
"de": "Ein Trocknungsvorgang dreht",
"es": "Un trabajo de secado está girando",
"fr": "Un travail de séchage tourne",
"it": "Un lavoro di asciugatura sta girando",
"no": "En tørkejobb spinner",
"sv": "Ett torkjobb snurrar",
"pl": "Suszenie się kręci",
"ru": "Сушка крутится",
"ko": "건조 작업이 회전 중입니다"
}
},
{
"id": "samsung_dryer_job_rinse",
"title": {
"en": "A drying job is rinsing",
"nl": "Een droogklus spoelt",
"da": "En tørreopgave skyller",
"de": "Ein Trocknungsvorgang spült",
"es": "Un trabajo de secado está enjuagando",
"fr": "Un travail de séchage rince",
"it": "Un lavoro di asciugatura sta risciacquando",
"no": "En tørkejobb skyller",
"sv": "Ett torkjobb sköljer",
"pl": "Suszenie płucze",
"ru": "Сушка промывается",
"ko": "건조 작업이 헹구는 중입니다"
}
}
]
}
39 changes: 33 additions & 6 deletions drivers/washer/device.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,39 @@ module.exports = class SmartThingsDeviceWasher extends SmartThingsDevice {
smartThingsCapabilityId: 'samsungce.washerOperatingState',
smartThingsAttributeId: 'washerJobState',
async onReport({ value }) {
if (value === 'finished') {
this.homey.flow
.getDeviceTriggerCard('samsung_washer_job_finished')
.trigger(this)
.catch(this.error);
}
const homeyCapabilityId = 'samsung_washer_current_job_state';

const flowArray = [
{
value: 'finished',
flow: 'samsung_washer_job_finished',
},
{
value: 'wash',
flow: 'samsung_washer_job_started',
},
{
value: 'weightSensing',
flow: 'samsung_washer_job_weight_sensing',
},
{
value: 'preWash',
flow: 'samsung_washer_job_pre_wash',
},
{
value: 'rinse',
flow: 'samsung_washer_job_rinse',
},
];

flowArray.forEach(f => {
if (value === f.value && this.getCapabilityValue(homeyCapabilityId) !== f.value) {
this.homey.flow
.getDeviceTriggerCard(f.flow)
.trigger(this)
.catch(this.error);
}
});

return value;
},
Expand Down
Loading

0 comments on commit c38a2f4

Please sign in to comment.