11 Commits

Author SHA1 Message Date
Luis R
bd6c77a4da Bump version to 0.8.3 2021-04-30 15:12:17 +02:00
Luis R
81d3385c48 Merge pull request #1 from aluini/feature/lang-fr
Add french plugin language
2021-04-30 15:11:38 +02:00
Luis R
6c7d669a43 Merge branch 'master' into feature/lang-fr 2021-04-30 15:08:46 +02:00
Luis Riegger
8ae17f6a4a Merge branch 'master' of https://github.com/himbeles/homebridge-kobold 2021-04-30 15:00:55 +02:00
Luis Riegger
13846a9322 update changelog and bump version to 0.8.2 2021-04-30 15:00:52 +02:00
Arne Blumentritt
ae7138e245 Fixed homebridge 1.3 warning because of additional parameter in setter callback 2021-04-30 14:52:26 +02:00
Arne Blumentritt
16140dc71e Fixed #61 Warnings in homebridge 1.3 because of illegal characteristic values 2021-04-30 14:51:47 +02:00
Luis R
310ed41e28 Update npm.yml 2021-04-30 14:41:40 +02:00
Luis R
b9e0e64390 Create Github Action for publishing to npm 2021-04-30 14:29:01 +02:00
Alexandre Luini
0376dc09d5 add french plugin language 2021-03-10 16:49:40 +01:00
Luis Riegger
4b6002f686 bump npm version 2021-02-07 15:31:31 +01:00
6 changed files with 101 additions and 34 deletions

19
.github/workflows/npm.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: npm
on:
workflow_dispatch:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# Setup .npmrc file to publish to npm
- uses: actions/setup-node@v2
with:
node-version: '12.x'
registry-url: 'https://registry.npmjs.org'
- run: npm install
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -123,4 +123,10 @@
* Added possibility to toggle between languages (English/German) in Homebridge UI Plugin Settings * Added possibility to toggle between languages (English/German) in Homebridge UI Plugin Settings
## 0.8.1 ## 0.8.1
* Include Robot name in Homekit battery service name * Include Robot name in Homekit battery service name
## 0.8.2
* Eliminate warnings on Homebridge >= 1.3.0 (77945f8 and 877c3d7 on `naofireblade/homebridge-neato`)
## 0.8.3
* Add French plugin language (for example, this gives you a "Aspirer la cuisine" Siri command for a zone called "La cuisine")

View File

@@ -27,7 +27,7 @@ The interaction with the Server is handled by the underlying [node-kobold-contro
- Automatic or periodic refresh of robot state - Automatic or periodic refresh of robot state
- Multiple robots - Multiple robots
- German or English Language Setting - German, English or French Language Setting
> <b name="change-room">2</b> You can send the robot from one room to another as well. He will return to the base, wait there some seconds and then starts cleaning the next room. > <b name="change-room">2</b> You can send the robot from one room to another as well. He will return to the base, wait there some seconds and then starts cleaning the next room.
@@ -45,7 +45,7 @@ The interaction with the Server is handled by the underlying [node-kobold-contro
Add the following information to your config file. Change the values for email and password. Add the following information to your config file. Change the values for email and password.
### Simple ### Simple
```json ```json
"platforms": [ "platforms": [
@@ -95,7 +95,7 @@ curl -X "POST" "https://mykobold.eu.auth0.com/oauth/token" \
From the output, you want to copy the `id_token` value. From the output, you want to copy the `id_token` value.
The `language` can be `de` for German, or `en` for English. The `language` can be `de` for German, `en` for English, or `fr` for French.
### Advanced ### Advanced
@@ -124,4 +124,4 @@ List of plugin features that you don't want to use in homekit (e.g. `dock`, `doc
## Tested robots ## Tested robots
- Vorwerk Kobold VR300 - Vorwerk Kobold VR300

View File

@@ -64,6 +64,19 @@ function KoboldVacuumRobotAccessory(platform, robotObject)
"findMe": "Finde mich", "findMe": "Finde mich",
"cleanSpot": "Spot Reinigung", "cleanSpot": "Spot Reinigung",
"battery": "Batterie" "battery": "Batterie"
},
'fr': {
"clean": "Aspirer",
"clean the": "Aspirer",
"goToDock": "Retour à la base",
"dockState": "Sur la base",
"eco": "Eco mode",
"noGoLines": "Lignes NoGo",
"extraCare": "Extra Care",
"schedule": "Planifier",
"findMe": "Me retrouver",
"cleanSpot": "Nettoyage local",
"battery": "Batterie"
} }
}[this.platform.language] }[this.platform.language]
@@ -260,7 +273,10 @@ KoboldVacuumRobotAccessory.prototype = {
if (this.robot.canResume) if (this.robot.canResume)
{ {
debug(this.name + ": ## Resume cleaning"); debug(this.name + ": ## Resume cleaning");
this.robot.resumeCleaning(callback); this.robot.resumeCleaning((error) =>
{
callback(error);
});
} }
// Start cleaning // Start cleaning
else if (this.robot.canStart) else if (this.robot.canStart)
@@ -302,7 +318,10 @@ KoboldVacuumRobotAccessory.prototype = {
if (this.robot.canPause) if (this.robot.canPause)
{ {
debug(this.name + ": ## Pause cleaning"); debug(this.name + ": ## Pause cleaning");
this.robot.pauseCleaning(callback); this.robot.pauseCleaning((error) =>
{
callback(error);
});
} }
else else
{ {
@@ -338,12 +357,8 @@ KoboldVacuumRobotAccessory.prototype = {
if (error) if (error)
{ {
this.log.error("Cannot start cleaning. " + error + ": " + JSON.stringify(result)); this.log.error("Cannot start cleaning. " + error + ": " + JSON.stringify(result));
callback(true);
}
else
{
callback();
} }
callback(error);
}); });
} }
// Room cleaning // Room cleaning
@@ -354,12 +369,8 @@ KoboldVacuumRobotAccessory.prototype = {
if (error) if (error)
{ {
this.log.error("Cannot start room cleaning. " + error + ": " + JSON.stringify(result)); this.log.error("Cannot start room cleaning. " + error + ": " + JSON.stringify(result));
callback(true);
}
else
{
callback();
} }
callback(error);
}); });
} }
// Spot cleaning // Spot cleaning
@@ -370,12 +381,8 @@ KoboldVacuumRobotAccessory.prototype = {
if (error) if (error)
{ {
this.log.error("Cannot start spot cleaning. " + error + ": " + JSON.stringify(result)); this.log.error("Cannot start spot cleaning. " + error + ": " + JSON.stringify(result));
callback(true);
}
else
{
callback();
} }
callback(error);
}); });
} }
}, },
@@ -399,14 +406,20 @@ KoboldVacuumRobotAccessory.prototype = {
setTimeout(() => setTimeout(() =>
{ {
debug(this.name + ": ## Go to dock"); debug(this.name + ": ## Go to dock");
this.robot.sendToBase(callback); this.robot.sendToBase(() =>
{
callback();
});
}, 1000); }, 1000);
}); });
} }
else if (this.robot.canGoToBase) else if (this.robot.canGoToBase)
{ {
debug(this.name + ": ## Go to dock"); debug(this.name + ": ## Go to dock");
this.robot.sendToBase(callback); this.robot.sendToBase(() =>
{
callback();
});
} }
else else
{ {
@@ -485,12 +498,18 @@ KoboldVacuumRobotAccessory.prototype = {
if (on) if (on)
{ {
debug(this.name + ": " + "Enabled".brightGreen + " Schedule"); debug(this.name + ": " + "Enabled".brightGreen + " Schedule");
this.robot.enableSchedule(callback); this.robot.enableSchedule((error) =>
{
callback(error);
});
} }
else else
{ {
debug(this.name + ": " + "Disabled".red + " Schedule"); debug(this.name + ": " + "Disabled".red + " Schedule");
this.robot.disableSchedule(callback); this.robot.disableSchedule((error) =>
{
callback(error);
});
} }
}); });
}, },
@@ -510,13 +529,16 @@ KoboldVacuumRobotAccessory.prototype = {
this.findMeService.setCharacteristic(Characteristic.On, false); this.findMeService.setCharacteristic(Characteristic.On, false);
}, 1000); }, 1000);
this.robot.findMe(callback); this.robot.findMe((error) =>
{
callback(error);
});
} }
}, },
getSpotClean: function (callback) getSpotClean: function (callback)
{ {
callback(); callback(false, this.spotCleanService.getCharacteristic(Characteristic.On).value);
}, },
setSpotClean: function (on, callback) setSpotClean: function (on, callback)
@@ -556,7 +578,10 @@ KoboldVacuumRobotAccessory.prototype = {
if (this.robot.canPause) if (this.robot.canPause)
{ {
debug(this.name + ": ## Pause cleaning"); debug(this.name + ": ## Pause cleaning");
this.robot.pauseCleaning(callback); this.robot.pauseCleaning((error) =>
{
callback(error);
});
} }
else else
{ {
@@ -674,8 +699,13 @@ KoboldVacuumRobotAccessory.prototype = {
if (this.spotPlusFeatures) if (this.spotPlusFeatures)
{ {
this.spotCleanService.setCharacteristic(SpotWidthCharacteristic, this.robot.spotWidth); let widthProps = this.spotCleanService.getCharacteristic(SpotWidthCharacteristic).props;
this.spotCleanService.setCharacteristic(SpotHeightCharacteristic, this.robot.spotHeight); let heightProps = this.spotCleanService.getCharacteristic(SpotHeightCharacteristic).props;
this.spotCleanService.setCharacteristic(SpotWidthCharacteristic,
this.robot.spotWidth >= widthProps.minValue && this.robot.spotWidth <= widthProps.maxValue ? this.robot.spotWidth : widthProps.minValue);
this.spotCleanService.setCharacteristic(SpotHeightCharacteristic,
this.robot.spotHeight >= heightProps.minValue && this.robot.spotHeight <= heightProps.maxValue ? this.robot.spotHeight : heightProps.minValue);
} }
} }
@@ -692,4 +722,4 @@ KoboldVacuumRobotAccessory.prototype = {
}); });
} }
} }
}; };

View File

@@ -27,10 +27,16 @@
"enum": [ "enum": [
"de" "de"
] ]
},
{
"title": "French",
"enum": [
"fr"
]
} }
], ],
"required": true "required": true
} }
} }
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "homebridge-kobold", "name": "homebridge-kobold",
"version": "0.8.0", "version": "0.8.3",
"description": "A Vorwerk Kobold vacuum robot plugin for homebridge.", "description": "A Vorwerk Kobold vacuum robot plugin for homebridge.",
"license": "MIT", "license": "MIT",
"keywords": [ "keywords": [
@@ -16,6 +16,12 @@
"name": "Luis R.", "name": "Luis R.",
"url2": "https://github.com/himbeles" "url2": "https://github.com/himbeles"
}, },
"contributors": [
{
"name": "Alexandre L.",
"url": "https://github.com/aluini"
}
],
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git://github.com/himbeles/homebridge-kobold.git" "url": "git://github.com/himbeles/homebridge-kobold.git"