en un clic
gohome
// Use when Openclaw needs to test or operate GoHome (Home Assistant clone) via gRPC discovery, metrics, and Grafana.
// Use when Openclaw needs to test or operate GoHome (Home Assistant clone) via gRPC discovery, metrics, and Grafana.
| name | gohome |
| description | Use when Openclaw needs to test or operate GoHome (Home Assistant clone) via gRPC discovery, metrics, and Grafana. |
This skill teaches Openclaw how to discover capabilities and validate the GoHome stack using the repo CLI, Prometheus metrics, and Grafana.
Set the target host and ports (optional; defaults read from config or MagicDNS):
export GOHOME_HOST="gohome"
export GOHOME_HTTP_BASE="http://${GOHOME_HOST}:8080"
export GOHOME_GRPC_ADDR="${GOHOME_HOST}:9000"
Use the CLI on PATH (preferred, installed by the nix-openclaw plugin):
gohome-cli services
Use the CLI from source if needed:
go run ./cmd/gohome-cli services
If Go is not available, build with Nix and run the CLI from the result:
nix build .#packages.x86_64-linux.default
./result/bin/gohome-cli services
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli plugins list
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli plugins describe tado
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli methods gohome.plugins.tado.v1.TadoService
jq -n '{}' | GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli call \
gohome.plugins.tado.v1.TadoService/ListZones
Roborock:
gohome-cli roborock status
gohome-cli roborock rooms
gohome-cli roborock clean kitchen
gohome-cli roborock mop kitchen
gohome-cli roborock vacuum kitchen
gohome-cli roborock smart kitchen
gohome-cli roborock map --labels names
When user asks for a map, send it as an image they can see inline. Use the MEDIA: syntax with the gohome map URL:
MEDIA:http://gohome:8080/roborock/map.png?device_name=Roborock+Qrevo+S&labels=names
Robot on dock in hallway. Battery 100%.
This sends the map image directly in the chat. Options:
labels=names — room names (recommended)labels=segments — segment IDsDo NOT just describe the map or show it in a code block — send it as a MEDIA: image so users can see it.
Tado:
gohome-cli tado zones
gohome-cli tado set living-room 20
Weheat (read-only):
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli methods \
gohome.plugins.weheat.v1.WeheatService
jq -n '{state: 3}' | GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli call \
gohome.plugins.weheat.v1.WeheatService/ListHeatPumps
jq -n '{heat_pump_id: "<id>"}' | GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli call \
gohome.plugins.weheat.v1.WeheatService/GetLatestLog
Confirm the Tado scraper is healthy and metrics are present:
curl -s "${GOHOME_HTTP_BASE}/gohome/metrics" | rg -n "gohome_tado_"
Expect:
gohome_tado_scrape_success 1Confirm Weheat metrics:
curl -s "${GOHOME_HTTP_BASE}/gohome/metrics" | rg -n "gohome_weheat_"
Expect:
gohome_weheat_scrape_success 1Grafana is proxied under:
${GOHOME_HTTP_BASE}/grafana/
Use MagicDNS (gohome) or set GOHOME_HOST to the tailnet FQDN if needed.
Only call write RPCs after user approval. Example:
jq -n --arg zone_id "1" --argjson temp 20.0 \
'{zone_id: $zone_id, temperature_celsius: $temp}' | \
GOHOME_GRPC_ADDR="$GOHOME_GRPC_ADDR" go run ./cmd/gohome-cli call \
gohome.plugins.tado.v1.TadoService/SetTemperature
tailscale status.gohome_tado_scrape_success / gohome_weheat_scrape_success and token validity.jq -n to build JSON for gRPC calls; it avoids quoting mistakes.gohome-cli reads /etc/gohome/config.pbtxt (or ~/.config/gohome/config.pbtxt) for default host info.