Pionix

Hi EVeryone,

Welcome to the second edition of the Pionix Cloud Changelog. It has been a while, so this one covers everything since the public beta in July: Pionix Cloud v1.13 to v1.15 and Cloud Connector v0.2 to v0.5.

The theme this time is organising and sharing your fleet. You can label everything you manage, share a single charger with another company, build your own dashboards, and restart a single service on a charger. The Cloud Connector mostly got polish and hardening in the meantime; there is a short section on that further down.

A few changes need action on your side, most of them in the Cloud Connector. They are at the bottom under "Action required". Read them before you update.

TL;DR

What’s new in the cloud

Labels: your own tags for the whole fleet

Labels are tags private to your company. You attach them to chargers, firmware editions, release channels, charging parks and charging sessions, and every one of those lists gets a label filter. On the charger list the filter is part of the URL, so you can send a filtered view to a colleague as a link.

Keys make label values mutually exclusive: with priority::high and priority::low, a charger is always exactly one priority. Rules let a label look after itself. You define conditions over the entity’s fields, and every matching entity gets the label and loses it again when it stops matching. Rules are rolling out gradually, so if you do not see the rule editor yet, it is on its way.

Label management

You find all of this under Label management in the sidebar. Docs: Organise Your Fleet with Labels.

Share a charger with another company

You can now give another company, or a single person, access to one charger, charging park, firmware edition, release channel or Cloud Connector config. The entity stays yours and the recipient does not join your company. Pick a role (Viewer, Operator, Editor) or hand-pick permissions. Shares expire after a week unless you say otherwise, and "Who has access" lists every recipient and lets you revoke.

To share with a whole company you need their shareable ID, which each company finds in its own share dialog. You can also share a label instead of a single entity, and the recipient sees whatever carries that label.

Share dialog

Dashboards: build your own view of a charger’s health

The Health tab no longer stops at the auto-generated telemetry list. Pick the values you care about, lay them out on a grid, and save. A dashboard can be assigned to a manufacturer and model, optionally scoped to a firmware range, so every matching charger gets it automatically.

There are more widgets than before. A multi-series chart puts L1, L2 and L3 into one picture. State badges and timelines show categorical values and when they changed. Stat tiles show the latest number with a sparkline, and you can drop in your own Markdown notes. Two widgets go beyond charts: an SVG overlay, where you upload a schematic of your charger and bind live values to hotspots, and a 3D model widget that takes a .glb.

Dashboard

Docs: Save and Share Telemetry Dashboards, including a Blender walkthrough for preparing a .glb.

Restart a single service on the charger

Until now the remedy for a wedged service was a full reboot or an SSH session. The services table on the Debugging tab now lists every systemd unit and lets you restart, start, stop, reload, enable or disable it. While a charging session is running, disruptive actions are refused unless you force them.

Needs Cloud Connector v0.4.0 on the device. On older devices the actions stay greyed out.

Telemetry monitors: decide what your chargers report

Every telemetry value can carry a reporting policy: a rate cap, a heartbeat, and a deadband so you only hear about changes that matter. You set the baseline in the charger’s config, and the cloud shows the policy currently in force. For debugging, apply a temporary override from the UI to crank a value up to high frequency. Overrides disappear on reboot, so you cannot leave a charger shouting forever.

Telemetry monitor

Smaller things worth knowing

Fixes you may have noticed

Cloud Connector: hardening and polishing

Cloud Connector v0.3 to v0.5 are mostly about making the connector leaner and sturdier on real hardware.

Action required

Cloud Connector v0.1.x or older? Start here

  1. The CLI uses subcommands. The daemon starts via cloud-connector daemon start --config … instead of cloud-connector --config …. Our Yocto layer and systemd unit are already updated; check your own units and scripts.
  2. CLI output is human readable by default. Scripts that parse status or get-config need --format json.

Cloud Connector v0.2.x or v0.3.x? Start here

  1. Set your allowlists explicitly. log_units (systemd plugin) and allowed_topic_prefixes (MQTT bridge plugin) treated an empty list as "everything". v0.4.0 warns about that, and the next major release will refuse everything instead. Name what may leave the device, or write the wildcard (["*"] and ["#"]) on purpose.
  2. Plaintext to a non-loopback local broker will be refused in the next major. Move the broker to a Unix socket or loopback, or set allow_remote_plaintext: true in the everest.mqtt and mqtt_bridge blocks.
  3. Default local packet size is 1 MiB (was 5 MiB). Raise everest.mqtt.max_packet_size_bytes if your local bus carries larger packets. The log names the key when it rejects one.
  4. The MQTT bridge plugin refuses a config it cannot parse rather than silently running on defaults. A typo now stops the plugin, so check your bridge config before updating.
  5. Network failover needs net.ipv4.conf.*.ignore_routes_with_linkdown=1, otherwise the redial goes out the dead interface.
  6. Remote SSH: session TTLs are capped at 24 hours, and OpenSSH certificates, FIDO and ssh-dss keys are refused. Use ed25519, ECDSA or RSA.
  7. Config schema tightened. tls.client_credentials is now required, which the daemon always demanded anyway. Configs generated by the cloud wizard before Cloud v1.14 may lack it. If your daemon does not start after the update, regenerate the config.

Any Cloud Connector version: Pionix Cloud side

  1. Operator and Editor share roles now include service control. Grants you issued earlier are unchanged; new grants of the same role are broader.
  2. meta-basecamp is no longer a supported Yocto base. The integration guide names meta-everest only.

As always: if something in here is unclear, or a change bites you in a way we did not anticipate, just reply to the changelog email. It reaches the team directly.

Cheers, Your Pionix Cloud Team