Hi,
ich habe den Luftbefeuchter H7140 von Govee. Diesen möchte ich über HA steuern. Govee stellt ja eine API unter
zur Verfügung.
Mit dem Tool Postman kann ich das Gerät mit dem dort genannten Post-Request, dem API-Key und dem Body-Code:
{
“requestId”: “uuid”,
“payload”: {
“sku”: “H7140”,
“device”: “1D:XX:D4:XX:XX:XX:XX:XX”,
“capability”: {
“type”: “devices.capabilities.on_off”,
“instance”: “powerSwitch”,
“value”: 1 bzw. 0
}
}
}
ein- bzw. auschalten.
Mit dem Body-Code:
{
“requestId”: “uuid”,
“payload”: {
“sku”: “H7140”,
“device”: “1D:XX:D4:XX:XX:XX:XX:XX”,
“capability”: {
“type”: “devices.capabilities.work_mode”,
“instance”: “workMode”,
“value”: {“workMode”: 1, “modeValue”: 7}
}
}
}
kann ich den Modus auf “Manuel” bzw. “Benutzerdefiniert” schalten und bei “Manuel” kann ich eine bestimmte Stufe von 1-8 mit angeben.
Wie gesagt dies funktioniert mit Postman perfekt.
In Homeassistant habe ich folgenden Eintrag in meiner configuration.yaml:
rest_command:
govee_control:
url: https://openapi.api.govee.com/router/api/v1/device/control
headers:
Content-Type: application/json
Govee-API-Key: !secret govee_api_key
payload: ‘{“requestId”: “uuid”,“payload”:{ “sku”: “{{ model }}”, “device”: “{{ device }}”,“capability”: { “type”: “{{ type }}”,“instance”: “{{ instance }}”,“value”: {{ value }}}}}’
method: POST
verify_ssl: false
Unter Entwicklungswerkzeuge rufe ich den Dienst rest_command.govee_control
auf.
Wenn ich folgenden Yaml-Code verwende:
service: rest_command.govee_control
data:
device: 1D:XX:D4:XX:XX:XX:XX:XX
model: H7140
type: devices.capabilities.on_off
instance: powerSwitch
value: 1
kann ich das Gerät ein oder ausschalten.
Mit
service: rest_command.govee_control
data:
device: 1D:XX:D4:XX:XX:XX:XX:XX
model: H7140
type: devices.capabilities.work_mode
instance: workMode
value: {
“workMode”:1, “modeValue”:7
}
kann ich jedoch nicht den Modus schalten. Es muss irgendwie am Value-Wert liegen.
Erkennt jemand einen Fehler im Yaml-Code (payload:) der configuration.yaml bzw. beim Service-Code.
Danke im voraus
Gruß Tom