* Add Valve integration. This adds the valve integration discussed in https://github.com/home-assistant/architecture/discussions/975 Most of the code is taken from the cover integration but simplified since valves can't tilt. There are a couple outstanding errors I'm not sure how to solve and prevents me from even making this commit without `--no-verify`. * Apply PR feedback * Apply more feedback: Intruduce the bare minimum * Remove file commited by mistake * Hopefully this fixes tests * Match cover's typing and mypy settings * Change some configuration files * Fix test * Increase code coverage a little * Code coverate inproved to 91% * 95% code coverage * Coverate up to 97% * Coverage 98% * Apply PR feedback * Even more feedback * Add line I shouldn't have removed * Derive closed/open state from current position * Hopefully last feedback * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Remove unnecesary translation * Remove unused method arguments * Complete code coverage * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Simplify tests * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Apply last feedback * Update tests/components/valve/test_init.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update tests/components/valve/test_init.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update tests/testing_config/custom_components/test/valve.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * More feedback * Apply suggestion * And more feedback * Apply feedback * Remove commented code * Reverse logic to unindent * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Implement stop valve for Mock valve * Fix tests now that I've implemented stop_valve * Assert it's neither opening nor closing * Use current position instead * Avoid scheduling executor when opening or closing * Fix incorrect bitwise operation * Simplify toggle * Remove uneeded partial functions * Make is_last_toggle_direction_open private * Remove valve from test custom integration * Improve test coverage * Address review comments * Address review comments * Address review comments * Update homeassistant/components/valve/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * Update tests --------- Co-authored-by: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Erik <erik@montnemery.com>
54 lines
1.2 KiB
JSON
54 lines
1.2 KiB
JSON
{
|
|
"title": "Valve",
|
|
"entity_component": {
|
|
"_": {
|
|
"name": "[%key:component::valve::title%]",
|
|
"state": {
|
|
"open": "[%key:common::state::open%]",
|
|
"opening": "Opening",
|
|
"closed": "[%key:common::state::closed%]",
|
|
"closing": "Closing",
|
|
"stopped": "Stopped"
|
|
},
|
|
"state_attributes": {
|
|
"current_position": {
|
|
"name": "Position"
|
|
}
|
|
}
|
|
},
|
|
"water": {
|
|
"name": "Water"
|
|
},
|
|
"gas": {
|
|
"name": "Gas"
|
|
}
|
|
},
|
|
"services": {
|
|
"open_valve": {
|
|
"name": "[%key:common::action::open%]",
|
|
"description": "Opens a valve."
|
|
},
|
|
"close_valve": {
|
|
"name": "[%key:common::action::close%]",
|
|
"description": "Closes a valve."
|
|
},
|
|
"toggle": {
|
|
"name": "[%key:common::action::toggle%]",
|
|
"description": "Toggles a valve open/closed."
|
|
},
|
|
"set_valve_position": {
|
|
"name": "Set position",
|
|
"description": "Moves a valve to a specific position.",
|
|
"fields": {
|
|
"position": {
|
|
"name": "Position",
|
|
"description": "Target position."
|
|
}
|
|
}
|
|
},
|
|
"stop_valve": {
|
|
"name": "[%key:common::action::stop%]",
|
|
"description": "Stops the valve movement."
|
|
}
|
|
}
|
|
}
|