Skip to content

Repository files navigation

Makera logo

MakerHA — Makera Carvera for Home Assistant

Makera yourself at home.

Important

Unofficial community project. This integration is developed by the community and is not affiliated with, endorsed by, or supported by Makera Inc. in any way. Makera and Carvera are trademarks of Makera Inc.; the name and logo are used solely to identify the machines this integration works with. Don't contact Makera for support with this integration — open an issue here instead.

HACS Custom Validate License: MIT HA 2025.6+

Local, no-cloud Home Assistant integration for Makera Carvera CNC machines running the Community Firmware with the read-only HTTP status API.

Know when your machine is waiting for a tool change, get pinged when the job finishes or alarms, chart your spindle temperature, and switch the dust extraction with the machine — all local, nothing leaves your network.

The MakerHA card in a Home Assistant dashboard

Status: early (v0.3.x). Running against a Carvera Air on the RC firmware. Feedback and issue reports are very welcome — this is being shared to find out what other people need.

  • Auto-discovery — machines are found via the Carvera's own UDP announcement; no IP typing, and the integration follows the machine across DHCP lease changes automatically.
  • Built for machines that are usually off — entities go unavailable while the CNC is powered down (no error spam, no timeouts: polling is gated on the announcement beacon), and an always-available Online sensor lets you automate on power-on/power-off.
  • Ready-made device triggersTool change required, Job started, Job finished, Alarm raised — so the headline automation ("ping my phone when the machine waits for a tool") is a two-click affair.
  • A dashboard card in the box — installs and registers itself; add it from the card picker, no resource wrangling.
  • Read-only by design — the firmware API is GET-only; nothing on your network can control the machine through it.

Requirements

  • A Carvera or Carvera Air running the Community Firmware with the HTTP status API. The feature is on its way upstream (PR #391); until it ships in official builds, flash the ready-made RC release (pick the file matching your current firmware — stable 2.1.0c or dev). Enable once via the console:

    config-set sd wifi.http_enable true
    reset
    
  • Home Assistant 2025.6 or newer.

  • For discovery and off-detection, Home Assistant must be able to receive UDP broadcasts on port 3333 (true for Home Assistant OS and container installs with host networking). Without it, the integration still works by plain polling.

Installation

HACS (recommended)

Open your Home Assistant instance and add this repository to HACS

  1. Click the badge above (or: HACS → three-dot menu → Custom repositories → add https://github.com/BellionBastien/MakerHA as type Integration).
  2. Download MakerHA, restart Home Assistant.
  3. Settings → Devices & Services → Add integrationMakera Carvera (MakerHA). Machines that are powered on appear in a pick list; select one and you're done.

Manual

Copy custom_components/carvera/ into your Home Assistant config/custom_components/ directory and restart.

Entities

Entity Type Notes
State sensor (enum) Idle · Run · Home · Hold · Alarm · Sleep · Pause · Wait · Tool — positions (MPos/WPos), WCS and modes as attributes
Spindle speed sensor RPM
Spindle temperature sensor °C, long-term statistics
Power supply temperature sensor °C (Carvera Air)
Feed rate / Feed override / Spindle override sensor mm/min, %
Tool / Target tool / Tool offset sensor tool numbers; below-zero means "none"
Job progress / Job file / Job elapsed sensor %, filename, seconds
Wireless probe battery sensor V (diagnostic)
Laser power sensor % (diagnostic)
Halt reason sensor firmware halt code (diagnostic)
Running / Alarm / Job playing binary sensor
Controller connected binary sensor someone is on the console port
Laser mode / Vacuum mode binary sensor diagnostic
Online binary sensor stays available while the machine is off — automate on power-on

Example automations

Tool change notification (the reason this exists):

automation:
  - alias: "Carvera: tool change needed"
    mode: single
    triggers:
      - trigger: device
        domain: carvera
        device_id: <pick in the UI>
        type: tool_change_required
    actions:
      - action: notify.mobile_app_your_phone
        data:
          title: "Carvera"
          message: >-
            Waiting for tool T{{ states('sensor.carvera_air_05214_target_tool') }}
            ({{ states('sensor.carvera_air_05214_job_file') }})

Shop follows the machine:

  - alias: "Carvera powered on -> dust extraction outlet on"
    triggers:
      - trigger: state
        entity_id: binary_sensor.carvera_air_05214_online
        to: "on"
    actions:
      - action: switch.turn_on
        target:
          entity_id: switch.dust_extractor

(Entity IDs contain your machine's name — pick them in the UI.)

The card

The integration ships its own dashboard card and registers it for you — no HACS frontend repo, no resource setup. Edit any dashboard → + Add card → search Carvera → pick your machine. That's it.

It shows the machine at a glance: state (colour-coded), the current job with a progress bar, spindle speed, feed, tool, and both temperatures. When the machine is waiting on you it says so in plain words — "Insert tool T7, then press the button" — and when it's powered off it collapses to a quiet "Offline" row instead of a wall of unavailable. Every value is clickable for its full history.

Full dashboard (optional)

docs/dashboard.yaml is a complete multi-card view — gauges, temperature history, diagnostics — if you want a dedicated Carvera dashboard. Settings → Dashboards → + Add dashboardNew dashboard from scratch → open it → pencil → three-dot menu → Raw configuration editor → paste → Save, then search & replace carvera_air_05214 with your machine's slug.

Note: feed rate and tool offset follow the machine's unit mode — they report in/min/in while the machine runs in inch mode (G20). You can add the integration once per machine; several Carveras work side by side.

How the "usually off" handling works

The Carvera broadcasts a NAME,IP,PORT,BUSY announcement on UDP 3333 every second while powered on. The integration listens passively: while no announcement is heard, it doesn't even attempt HTTP, so an off machine costs nothing. When you flip the machine on, the announcement arrives within a second, the integration re-learns the machine's current IP from it, and polling resumes. Everything except the Online sensor shows unavailable while the machine is off — that's the correct, expected representation.

Troubleshooting

First reflex for anything network-ish: run scripts/live_check.py from any computer on the same network (no Home Assistant needed) — it listens for the machine's announcement and calls the status API, which cleanly separates "machine-side problem" from "Home Assistant-side problem".

Nothing shows up in the discovery list. The machine is probably powered off (turn it on and retry), or UDP broadcasts on port 3333 don't reach your Home Assistant (typical for Docker installs without host networking). Use Enter address manually — everything works without discovery, you just lose the automatic IP-follow and the fast off-detection.

"Could not reach the status API" during setup. The firmware feature is off. On the machine console (Carvera Controller or USB): config-set sd wifi.http_enable true then reset. Verify with curl http://<machine-ip>:8080/status from any computer.

All entities are unavailable. The machine is powered off — that's the intended representation. The Online binary sensor stays available and tells you on/off; automate on that.

Sensors freeze during file transfers. Expected: the firmware suspends its network stack while receiving a file (XMODEM). Everything recovers when the transfer ends.

Credits

Built on the Carvera Community Firmware's HTTP status API. Thanks to the Carvera-Community project, and to tcatm's early webserver exploration that paved the way.

About

Home Assistant integration for Makera Carvera CNC machines — Makera yourself at home

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages