Skip to content

Commit

Permalink
Merge pull request #447 from PiotrMachowski/dev
Browse files Browse the repository at this point in the history
v2.1.0
  • Loading branch information
PiotrMachowski authored Sep 13, 2022
2 parents 0fdf028 + 0408877 commit 49cf276
Show file tree
Hide file tree
Showing 93 changed files with 5,056 additions and 1,531 deletions.
3 changes: 2 additions & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
custom: ["buymeacoffee.com/PiotrMachowski", "paypal.me/PiMachowski"]
ko_fi: piotrmachowski
custom: ["paypal.me/PiMachowski"]
5 changes: 5 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,8 @@ jobs:
run: |
npm install
npm run build
- name: Archive built file
uses: actions/upload-artifact@v3
with:
name: xiaomi-vacuum-map-card
path: dist/xiaomi-vacuum-map-card.js
2 changes: 1 addition & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "v2.0.11",
"version": "v2.1.0",
"tasks": [
{
"type": "npm",
Expand Down
134 changes: 69 additions & 65 deletions README.md

Large diffs are not rendered by default.

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
124 changes: 124 additions & 0 deletions docs/templates/alOneHassXiaomiMiot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
# Xiaomi MIoT

[Integration's documentation](https://github.com/al-one/hass-xiaomi-miot)

This platform can be used to control vacuums connected to Home Assistant using Xiaomi MIoT integration created by [@al-one](https://github.com/al-one).

There is no single configuration that works for all vacuum models: every vacuum has to be configured individually.
[Here](https://github.com/PiotrMachowski/lovelace-xiaomi-vacuum-map-card/discussions/406) you can find a list of config for different vacuum models
([related discussion](https://github.com/PiotrMachowski/lovelace-xiaomi-vacuum-map-card/issues/251)).


Used service: `xiaomi_miot.call_action`.

## Available templates

* ### Room cleaning (`vacuum_clean_segment`)

Uses IDs to clean specific rooms. Requires `predefined_selections` to be provided.

[Configuration generator](https://github.com/PiotrMachowski/lovelace-xiaomi-vacuum-map-card/discussions/317)

[Getting coordinates](/docs/templates/setup.md#getting-coordinates)

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_clean_segment
predefined_selections:
- id: 14
outline: [[ 21458, 32131 ], [ 24235, 32152 ], [ 24194, 27409 ], [ 23181, 27409 ]]
label:
text: "Bedroom"
x: 22932
y: 30339
offset_y: 35
icon:
name: "mdi:bed"
x: 22932
y: 30339
- id: 19
outline: [[ 21478, 27237 ], [ 23048, 27250 ], [ 23061, 25655 ], [ 21478, 25680 ]]
label:
text: "Bathroom"
x: 22282
y: 26496
offset_y: 35
icon:
name: "mdi:shower"
x: 22282
y: 26496
```
</details>
<details>
<summary>Example video</summary>
https://user-images.githubusercontent.com/6118709/141666925-34b01cde-82ff-447b-aecc-e9ced402b1ed.mp4
</details>
* ### Zone cleaning (`vacuum_clean_zone`)

Uses 4 coordinates to clean rectangular zones.

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_clean_zone
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666913-d95f082d-f5bf-4ab5-a478-ba44effe6f34.mp4

</details>

* ### Predefined zone cleaning (`vacuum_clean_zone_predefined`)

Uses 4 coordinates to clean rectangular zones that have been defined in the configuration. Requires `predefined_selections` to be provided.

[Getting coordinates](/docs/templates/setup.md#getting-coordinates)

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_clean_zone_predefined
predefined_selections:
- zones: [[ 21485, 28767, 24236, 32131 ], [ 23217, 27379, 24216, 28737 ]]
label:
text: "Bedroom"
x: 22932
y: 30339
offset_y: 35
icon:
name: "mdi:bed"
x: 22932
y: 30339
- zones: [[ 27782, 27563, 29678, 29369 ]]
label:
text: "Kitchen"
x: 28760
y: 28403
offset_y: 35
icon:
name: "mdi:pot-mix"
x: 28760
y: 28403
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666920-492a000c-9a78-4c20-b4f5-9343928140c7.mp4

</details>
238 changes: 238 additions & 0 deletions docs/templates/hypferValetudo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
# Valetudo by [@Hypfer](https://github.com/Hypfer) over MQTT

[Integration's documentation](https://valetudo.cloud)

This platform can be used to control vacuums flashed with Valetudo created by [@Hypfer](https://github.com/Hypfer) connected to Home Assistant using [MQTT](https://www.home-assistant.io/integrations/mqtt/).

## Calibration

If you want to use **just** room cleaning you can calibrate the map using following config:
```yaml
calibration_source:
identity: true
```
In other cases you have to manually calibrate the map and provide calibration points.
## Requirements
To use this card with a Valetudo vacuum you have to define `topic` internal variable in your preset:

```yaml
type: custom:xiaomi-vacuum-map-card
map_source:
camera: camera.valetudo
calibration_source:
calibration_points:
- vacuum:
x: 25500
y: 25500
map:
x: 466
y: 1889
- vacuum:
x: 26500
y: 26500
map:
x: 730
y: 1625
- vacuum:
x: 25500
y: 26500
map:
x: 466
y: 1625
entity: vacuum.valetudo
vacuum_platform: Hypfer/Valetudo
internal_variables:
topic: valetudo/rockrobo
```

## Retrieving map image

To retrieve map image you have to use [I can't believe it's not Valetudo](https://github.com/Hypfer/Icantbelieveitsnotvaletudo).

## Available templates

* ### Room cleaning (`vacuum_clean_segment`)

Uses IDs to clean specific rooms. Requires `topic` variable and `predefined_selections` to be provided.

[Getting coordinates](/docs/templates/setup.md#getting-coordinates)

Used service: `mqtt.publish`

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_clean_segment
variables:
topic: valetudo/robot
predefined_selections:
- id: "12"
outline: [[ 21458, 32131 ], [ 24235, 32152 ], [ 24194, 27409 ], [ 23181, 27409 ]]
label:
text: "Bedroom"
x: 22932
y: 30339
offset_y: 35
icon:
name: "mdi:bed"
x: 22932
y: 30339
- id: "9"
outline: [[ 21478, 27237 ], [ 23048, 27250 ], [ 23061, 25655 ], [ 21478, 25680 ]]
label:
text: "Bathroom"
x: 22282
y: 26496
offset_y: 35
icon:
name: "mdi:shower"
x: 22282
y: 26496
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666925-34b01cde-82ff-447b-aecc-e9ced402b1ed.mp4

</details>

* ### Zone cleaning (`vacuum_clean_zone`)

Uses 4 points to clean rectangular zones.

Used service: `mqtt.publish`

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_clean_zone
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666913-d95f082d-f5bf-4ab5-a478-ba44effe6f34.mp4

</details>

* ### Predefined zone cleaning (`vacuum_clean_zone_predefined`)

Uses 4 coordinates to clean rectangular zones that have been defined in the configuration. Requires `predefined_selections` to be provided.

[Getting coordinates](/docs/templates/setup.md#getting-coordinates)

Used service: `mqtt.publish`

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_clean_zone_predefined
predefined_selections:
- zones: [[ 21485, 28767, 24236, 32131 ], [ 23217, 27379, 24216, 28737 ]]
label:
text: "Bedroom"
x: 22932
y: 30339
offset_y: 35
icon:
name: "mdi:bed"
x: 22932
y: 30339
- zones: [[ 27782, 27563, 29678, 29369 ]]
label:
text: "Kitchen"
x: 28760
y: 28403
offset_y: 35
icon:
name: "mdi:pot-mix"
x: 28760
y: 28403
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666920-492a000c-9a78-4c20-b4f5-9343928140c7.mp4

</details>

* ### Going to a specified point (`vacuum_goto`)

Uses a pair of coordinates for vacuum to get to a user-specified point.

Used service: `mqtt.publish`

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_goto
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666921-2f3d66da-6ffc-492a-8439-625da97651bd.mp4

</details>

* ### Going to a predefined point (`vacuum_goto_predefined`)

Uses a pair of coordinates for vacuum to go to a point that has been defined in the configuration. Requires `predefined_selections` to be provided.

[Getting coordinates](/docs/templates/setup.md#getting-coordinates)

Used service: `mqtt.publish`

<details>
<summary>Example configuration</summary>

```yaml
map_modes:
- template: vacuum_goto_predefined
predefined_selections:
- position: [ 28006, 28036 ]
label:
text: "Emptying"
x: 28006
y: 28036
offset_y: 35
icon:
name: "mdi:broom"
x: 28006
y: 28036
- position: [ 32143, 26284 ]
label:
text: "Sofa"
x: 32143
y: 26284
offset_y: 35
icon:
name: "mdi:sofa"
x: 32143
y: 26284
```

</details>
<details>
<summary>Example video</summary>

https://user-images.githubusercontent.com/6118709/141666923-965679e9-25fb-44cd-be08-fc63e5c85ce0.mp4

</details>
Loading

0 comments on commit 49cf276

Please sign in to comment.