Valuetudo Maps (Hypfer/dreame) shows error
carefulcomputer opened this issue · comments
Checklist
- I have updated the card to the latest version available
- I have cleared the cache of my browser
- I have checked if the problem is already reported
The problem
I use Valetudo on a dreame vaccum.
I see following error
What can I do to show the map ? I use valetudo-map-card and that shows the map correctly and shows the map.
For this integration I used the camera created by other map car integration. Do I need to do something different ?
What version of a card has described problem?
v2.1.2
What was the last working version card?
No response
What vacuum model do you have problems with?
dreame d9 pro
Which integration do you use to control your vacuum (link)?
https://valetudo.cloud/pages/integrations/home-assistant-integration.html
What browser (browsers/apps) does have this problem?
Chrome
What version of Home Assistant do you use?
2023.2.3
What type of installation are you running?
Home Assistant Container
Card's configuration
type: custom:xiaomi-vacuum-map-card
title: Rosie
entity: vacuum.valetudo_rosietherobot
vacuum_platform: Hypfer/Valetudo
map_source:
camera: camera.valetudo_rosietherobot_map_data
internal_variables:
topic: valetudo/rockrobo
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
tiles:
- tile_id: battery_level
entity: vacuum.valetudo_rosietherobot
label: Battery
attribute: battery_level
icon: mdi:battery-charging-100
unit: '%'
- tile_id: fan_speed
entity: vacuum.valetudo_rosietherobot
label: Fan speed
attribute: fan_speed
icon: mdi:fan
translations:
silent: Silent
standard: Standard
medium: Medium
turbo: Turbo
auto: Auto
gentle: Gentle
icons:
- icon: mdi:play
conditions:
- entity: vacuum.valetudo_rosietherobot
value_not: cleaning
- entity: vacuum.valetudo_rosietherobot
value_not: error
- entity: vacuum.valetudo_rosietherobot
value_not: returning
tooltip: Start
tap_action:
action: call-service
service: vacuum.start
service_data:
entity_id: vacuum.valetudo_rosietherobot
- icon: mdi:pause
conditions:
- entity: vacuum.valetudo_rosietherobot
value_not: docked
- entity: vacuum.valetudo_rosietherobot
value_not: idle
- entity: vacuum.valetudo_rosietherobot
value_not: error
- entity: vacuum.valetudo_rosietherobot
value_not: paused
tooltip: Pause
tap_action:
action: call-service
service: vacuum.pause
service_data:
entity_id: vacuum.valetudo_rosietherobot
- icon: mdi:stop
conditions:
- entity: vacuum.valetudo_rosietherobot
value_not: docked
- entity: vacuum.valetudo_rosietherobot
value_not: idle
- entity: vacuum.valetudo_rosietherobot
value_not: error
- entity: vacuum.valetudo_rosietherobot
value_not: paused
tooltip: Stop
tap_action:
action: call-service
service: vacuum.stop
service_data:
entity_id: vacuum.valetudo_rosietherobot
- icon: mdi:home-map-marker
conditions:
- entity: vacuum.valetudo_rosietherobot
value_not: docked
- entity: vacuum.valetudo_rosietherobot
value_not: returning
tooltip: Return to base
tap_action:
action: call-service
service: vacuum.return_to_base
service_data:
entity_id: vacuum.valetudo_rosietherobot
- icon: mdi:map-marker
tooltip: Locate
tap_action:
action: call-service
service: vacuum.locate
service_data:
entity_id: vacuum.valetudo_rosietherobot
- icon: mdi:fan-alert
conditions:
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value: low
tooltip: Change fan speed
tap_action:
action: call-service
service: vacuum.set_fan_speed
service_data:
entity_id: vacuum.valetudo_rosietherobot
fan_speed: medium
- icon: mdi:fan-alert
conditions:
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value: medium
tooltip: Change fan speed
tap_action:
action: call-service
service: vacuum.set_fan_speed
service_data:
entity_id: vacuum.valetudo_rosietherobot
fan_speed: high
- icon: mdi:fan-alert
conditions:
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value: high
tooltip: Change fan speed
tap_action:
action: call-service
service: vacuum.set_fan_speed
service_data:
entity_id: vacuum.valetudo_rosietherobot
fan_speed: max
- icon: mdi:fan-alert
conditions:
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value: max
tooltip: Change fan speed
tap_action:
action: call-service
service: vacuum.set_fan_speed
service_data:
entity_id: vacuum.valetudo_rosietherobot
fan_speed: low
- icon: mdi:fan-alert
conditions:
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value_not: low
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value_not: medium
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value_not: high
- entity: vacuum.valetudo_rosietherobot
attribute: fan_speed
value_not: max
tooltip: Change fan speed
tap_action:
action: call-service
service: vacuum.set_fan_speed
service_data:
entity_id: vacuum.valetudo_rosietherobot
fan_speed: low
map_modes:
- name: Zone cleanup
icon: mdi:select-drag
run_immediately: false
coordinates_rounding: true
selection_type: MANUAL_RECTANGLE
max_selections: 5
repeats_type: EXTERNAL
max_repeats: 3
service_call_schema:
service: mqtt.publish
evaluate_data_as_template: true
service_data:
topic: '[[topic]]/ZoneCleaningCapability/start/set'
payload: >-
{"zones": [{%for s in ('[[selection]]')|from_json %}{ "points": {"pA":
{ "x": {{s[0]}}, "y": {{s[1]}} }, "pB": { "x": {{s[2]}}, "y": {{s[1]}}
}, "pC": { "x": {{s[2]}}, "y": {{s[3]}} }, "pD": { "x": {{s[0]}}, "y":
{{s[3]}} } }, "iterations": [[repeats]]}{%if not
loop.last%},{%endif%}{%endfor%}]}
predefined_selections: []
variables: {}
- name: Pin & Go
icon: mdi:map-marker-plus
run_immediately: false
coordinates_rounding: true
selection_type: MANUAL_POINT
max_selections: 999
repeats_type: NONE
max_repeats: 1
service_call_schema:
service: mqtt.publish
service_data:
topic: '[[topic]]/GoToLocationCapability/go/set'
payload: '{ "coordinates": { "x": [[point_x]], "y": [[point_y]] } }'
predefined_selections: []
variables: {}
Javascript errors shown in the browser's console (if applicable)
No response
Additional information
No response
Thanks for pointer. However, now velatudo publishes both map data and map image on MQTT. Is that something which can be used to show map instead of installing I can't believe it's not Valetudo.
I don't see any info about map image being published over MQTT, can you show me when it has changed/how does it work?
https://valetudo.cloud/pages/integrations/mqtt.html#rawmapdataforhomeassistantmap-data-hass
Edit: my bad. this is only static image (not map). However, there is already lovelase card for maps which doesn't require running extra container. Are we able to use that to show map ?
Valetudo Map Card displays map by parsing JSON that is embedded in the static image. This is not something that I want to add to this card. Instead I plan to add support for Valetudo to Map Extractor (it will work without the cloud)
Great ! that would work too !