iobroker.anycubic-cloud
v0.3.5
Published
ioBroker adapter for Anycubic printers via the Anycubic cloud (read-only)
Readme
ioBroker.anycubic-cloud
Description
Reads the status of Anycubic 3D printers and the ACE Pro filament box from the Anycubic cloud: print job, temperatures, fans, ACE slots and the filament used per slot. The adapter is read-only and sends no commands to the printer.
Tested with a Kobra S1 and ACE 2 Pro, manufacturer: Anycubic. Other models that work with the Anycubic app should work as well; feedback is welcome.
[!WARNING] Unofficial. Anycubic has no public API. The adapter uses the same cloud requests as Anycubic Slicer Next and loads the app credentials and certificates from the open source project anycubic-cloud-api at runtime. If Anycubic changes its cloud, the adapter may stop working.
The printer must be connected to the Anycubic cloud. In LAN-only mode it is not reachable.
Installation
The adapter is not in the ioBroker repository yet. Install it from npm:
iobroker url iobroker.anycubic-cloudRequirements: Node.js 22.18 or newer, js-controller 6.0.11 or newer, Admin 7.6.20 or newer.
Configuration
| Setting | Description |
| --- | --- |
| Slicer token | Access token of Anycubic Slicer Next, see below |
| REST resync | Interval of the full resync via REST in minutes (default 10) |
| Token warning | Days before expiry when info.tokenExpiring is set (default 14) |
Obtaining the token
Anycubic offers no API login with username and password. The adapter uses the access token that Anycubic Slicer Next stores after you log in. It is valid for about 90 days.
On Windows the script tools/get-token.ps1
does the work. It is not part of the npm package, download it from GitHub.
- Start Anycubic Slicer Next and log in.
- Run
powershell -ExecutionPolicy Bypass -File .\get-token.ps1. - The script reads the slicer configuration. Newer slicer versions encrypt it; the script then asks for
a dump file: Task Manager, tab "Details", right-click
AnycubicSlicerNext.exe, "Create dump file". Run the script again, it finds the file in%TEMP%. - The token is copied to the clipboard. Paste it into the instance settings.
The script only reads files and sends nothing over the network. It is not signed, so Windows may ask
for confirmation (Unblock-File .\get-token.ps1 or "More info, Run anyway").
Without the script: older slicer versions keep the token in plain text in
%APPDATA%\AnycubicSlicerNext\AnycubicSlicerNext.conf (anycubic_cloud.access_token). In a dump file
the token is a long string starting with eyJ and containing two dots.
States
One device per printer, named by its cloud ID.
| State | Description |
| --- | --- |
| status | idle, downloading, checking, leveling, heating, printing, paused, resuming, finished, stopping, stopped, error |
| online, busy, model, firmware, firmwareUpdate | Printer info |
| light, lightBrightness | Chamber light |
| job.* | File, progress, remaining and elapsed time, layers, filament (mm, g, planned), start, end, pause reason |
| temperature.* | Nozzle and bed, current and target |
| fan.* | Part cooling, auxiliary and ACE fan |
| ace.* | Temperature, humidity, active slot, drying |
| ace.slotN.* | Color, material, SKU, remaining amount in %. manual is true for spools entered by hand without RFID; they have no remaining value. |
| usage.last, usage.history | Filament used per slot for the last print and the last 30 prints (JSON) |
| event.finished | true when a print has finished, false when the next one starts |
| message.* | Last error or notice from the printer |
| info.tokenExpiry, info.tokenDaysLeft, info.tokenExpiring | Token expiry |
The printer sends temperatures often only while the app or slicer is open; otherwise the values are updated by the REST resync. The ACE temperature and humidity are taken from MQTT only: the REST response reports fixed values for them.
Not supported
- Controlling the printer (pause, stop, light, drying). Possible via the cloud, but not implemented yet.
- Camera images. The cloud offers only a live stream, no snapshots.
Changelog
0.3.5 (2026-10-08)
- (hwiedermann) ACE humidity no longer jumps to a fixed cloud value (e.g. 22 %) with every REST resync, only MQTT reports the real value
0.3.4 (2026-10-08)
- (hwiedermann) ACE temperature no longer drops to a fixed cloud value (e.g. 30 °C) with every REST resync, only MQTT reports the real value
- (hwiedermann) Printer is shown online again right after waking up from sleep (
lastWill/onlineReportwith stateonline)
0.3.3 (2026-10-05)
- (hwiedermann) Name and role of existing objects are updated on start, not only when a new value arrives
0.3.2 (2026-10-05)
- (hwiedermann) Filament slot colours use role
textinstead oflevel.color.rgb(read-only state,level.*requires write access) - (hwiedermann) Object names are translated into all ioBroker languages
0.3.1 (2026-10-04)
- (hwiedermann) Durations (remaining and elapsed time, drying) use the unit
mdefined for rolevalue.interval; values are still minutes - (hwiedermann) Admin: number fields follow the responsive layout recommendations
- (hwiedermann) Documentation linked in io-package.json, README links the device and manufacturer page
License
GPL-3.0-or-later, see LICENSE and COPYING. Based on findings of the anycubic-cloud-api project (GPL-3.0).
Copyright (c) 2026 Hendrik [email protected]
