Hey thanks for the reply! So it looks like the dreame_* services donāt exactly expost a go-to-point-esque service, but thereās enough info to use room location to start / stop the vac in node red.
edit: updated the flow
when vac changes to āreturningā, checks if clean time is > 5m. If so, calls clean service on the kitchen, where my trash can is. it waits for the vac current room to change to āKitchenā, stops the vacuum, and then notifies me to empty dustbin
hereās the flow without the inject or announce to alexa:
[{"id":"a472ce81445049f2","type":"server-state-changed","z":"967675d9b8bbd1be","name":"return","server":"7cb2eeb7.3b621","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"vacuum.dreame_robot_vacuum_d9","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"returning","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":90,"y":60,"wires":[["4bb7bb534022e5ec"],[]]},{"id":"719ddfcf52876c26","type":"api-call-service","z":"967675d9b8bbd1be","name":"kitchen","server":"7cb2eeb7.3b621","version":5,"debugenabled":false,"domain":"dreame_vacuum","service":"vacuum_clean_segment","areaId":[],"deviceId":[],"entityId":["vacuum.dreame_robot_vacuum_d9"],"data":"{ \"segments\": 1 }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":380,"y":60,"wires":[["874c776491c69730"]]},{"id":"874c776491c69730","type":"ha-wait-until","z":"967675d9b8bbd1be","name":"in k","server":"7cb2eeb7.3b621","version":2,"outputs":1,"entityId":"sensor.dreame_robot_vacuum_d9_current_room","entityIdFilterType":"exact","property":"state","comparator":"is","value":"Kitchen","valueType":"str","timeout":"0","timeoutType":"num","timeoutUnits":"seconds","checkCurrentState":true,"blockInputOverrides":true,"outputProperties":[],"entityLocation":"data","entityLocationType":"none","x":530,"y":60,"wires":[["fd065cca3ab67606","e48a055547579519"]]},{"id":"fd065cca3ab67606","type":"api-call-service","z":"967675d9b8bbd1be","name":"stop","server":"7cb2eeb7.3b621","version":5,"debugenabled":false,"domain":"vacuum","service":"stop","areaId":[],"deviceId":[],"entityId":["vacuum.dreame_robot_vacuum_d9"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":670,"y":60,"wires":[["ab1e8e875902e167"]]},{"id":"ab1e8e875902e167","type":"api-call-service","z":"967675d9b8bbd1be","name":"notify","server":"7cb2eeb7.3b621","version":5,"debugenabled":false,"domain":"notify","service":"notify","areaId":[],"deviceId":[],"entityId":[],"data":"{ \"message\": \"Time to empty the vacuum\" }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":810,"y":60,"wires":[[]]},{"id":"4bb7bb534022e5ec","type":"api-current-state","z":"967675d9b8bbd1be","name":">5m","server":"7cb2eeb7.3b621","version":3,"outputs":2,"halt_if":"5","halt_if_type":"num","halt_if_compare":"gt","entity_id":"sensor.dreame_robot_vacuum_d9_cleaning_time","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":230,"y":60,"wires":[["719ddfcf52876c26"],[]]},{"id":"7cb2eeb7.3b621","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]