New: the AI firewall watches the whole platform and explains each incident in plain words. See how it works

Selling my monitoring box to pool companies: keep my flow logic and firmware to myself

Selling my monitoring box to pool companies: keep my flow logic and firmware to myself

Solved 7 5

Bit of a business question from a maker who accidentally has customers.

I built a pool monitoring box (ESP32-S3, pH, ORP, temp, flow switch) for my own pool, a friend who runs a pool service company saw it, and now 4 pool service companies want them for their client pools. About 60 boxes in total so far.

All of it runs in my one Hermetry organisation. The useful part is a flow with a Script block that turns pH, ORP and temperature into a dosing suggestion (“add 300 g of X”). That took me months of tuning and it’s basically the product. The firmware also has my calibration routine in it.

Now each company wants to log in and see their pools. Questions:
– one organisation for everyone, or one per company?
– how do I let them see dashboards and alarms without them seeing (and copying) the flow?
– anything to protect the firmware when the boxes are physically in their hands?

I’m not trying to be secretive with customers, I just don’t want a competitor to get the logic by signing up as a “customer”.

♥ 1

One org per company. They’d never accept seeing another company’s pools, and organisations are isolated at the database level.

♥ 0

On firmware: Hermetry never signs firmware, you sign images in your own build and register only the public key. Do that, and turn on secure boot plus flash encryption on the S3, that covers the box side.

♥ 0

If it’s one org per company, do I rebuild the flow and dashboards 4 times? And every time I change the dosing logic?

♥ 0

From the customer side: I’d want my own org, yes. And honestly I don’t care about your script, I care that the number is right.

♥ 1

I run plant monitoring for six customers this way, so here’s the setup that’s held up.

One organisation per customer company. You keep one account and are a member of each, with Admin, and switch between them from the organisation picker. The customer’s people are invited as User. A User can see devices, profiles, dashboards and alarms, acknowledge alarms, send basic commands and build personal boards. Viewing flows needs Admin (the permission is automation.read), so your Script block stays out of their sight. Never give a customer Admin “just for a minute”.

Dashboards: build them once in a template org, download the board as a file and import it into each customer org. Flows don’t travel in the board file, so you bring the flow over separately: Export it from the row menu on the flow list and Import it in each customer org (secrets have to be typed in again, and imported flows arrive switched off). With 4 orgs I keep the Script block code in git as well, it’s a 10-minute job per change. If that gets painful, think about moving the dosing calculation into the firmware and sending dose_g as telemetry; then the logic lives in one signed image.

Firmware: what Laura said, sign with Ed25519 in your pipeline, register the public key on the Firmware page, and leave Allow unsigned images off. Unsigned or re-signed images are then refused by the upload check.

The role table is on Users and roles. Branding with your logo is per organisation too, if you want it to look like your product.

Ground loops are my cardio.
Accepted solution♥ 5

Went with this. Made a template org, 4 customer orgs, customers as User. I tested with a dummy User account and the Flows menu isn’t there, good. Board file import worked first time. I think I’ll move the dosing into firmware next version, re-importing the flow four times is already annoying.

♥ 0

Keep a dummy User in each org for that check, you’ll want it again after role changes.

♥ 0
Viewing 8 posts – 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.

Join the conversation

Sign in to ask and answer, like helpful posts and mark the reply that solved your problem. Every contribution earns points and levels.

Share