Havuz firmalarına izleme kutumu satıyorum: flow mantığım ve firmware'im bende kalacak
Yapay zekâ tarafından English dilinden çevrildi ·
Biraz iş ile ilgili bir soru, kazara müşterisi olan bir yapımcıdan.Kendi havuzum için bir havuz izleme kutusu yaptım (ESP32-S3, pH, ORP, sıcaklık, akış şalteri). Havuz servisi işleten bir arkadaşım gördü ve şimdi 4 havuz servis firması müşterilerinin havuzları için bunlardan istiyor. Şimdiye kadar toplam yaklaşık 60 kutu.Hepsi tek Hermetry organizasyonumda çalışıyor. Asıl değerli kısım, pH, ORP ve sıcaklığı bir dozajlama önerisine (“300 g X ekle”) çeviren Script bloğu olan bir flow. Bunun ayarlanması aylarımı aldı ve esasen ürünün kendisi. Firmware’de ayrıca kalibrasyon rutinim de var.Şimdi her firma giriş yapıp kendi havuzlarını görmek istiyor. Sorularım:- herkes için tek organizasyon mu, yoksa her firma için ayrı mı?- flow’u görmeden ve kopyalamadan panelleri ve alarmları nasıl görmelerine izin verebilirim?- kutular fiziksel olarak müşterilerin elinde olduğunda firmware’i korumak için bir şey var mı?Müşterilere karşı gizli olmak istemiyorum, sadece bir rakibin “müşteri” olarak kaydolup mantığı almasını istemiyorum.
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”.
Yapay zekâ tarafından English dilinden çevrildi ·
Her şirket için bir organizasyon. Başka bir şirketin havuzlarını görmeyi asla kabul etmezler ve organizasyonlar veritabanı seviyesinde birbirinden izole edilmiştir.
One org per company. They’d never accept seeing another company’s pools, and organisations are isolated at the database level.
Yapay zekâ tarafından English dilinden çevrildi ·
Firmware konusunda: Hermetry hiçbir zaman firmware imzalamaz; imajları kendi derlemenizde siz imzalarsınız ve yalnızca genel anahtarı kaydedersiniz. Bunu yapın ve S3 üzerinde secure boot ile flash şifrelemesini etkinleştirin; kutu tarafını bu kapsar.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Her şirket için ayrı bir org varsa, akışı ve panoları 4 kez mi yeniden kurmam gerekiyor? Ve dozajlama mantığını her değiştirdiğimde?
If it’s one org per company, do I rebuild the flow and dashboards 4 times? And every time I change the dosing logic?
Yapay zekâ tarafından English dilinden çevrildi ·
Müşteri tarafından bakınca: Kendi organizasyonumun olmasını isterim, evet. Dürüst olmak gerekirse senin scriptini umursamıyorum, önemli olan sayının doğru olması.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Altı müşteri için plant izlemeyi bu şekilde yürütüyorum, o yüzden işe yarayan kurulumu anlatayım.Her müşteri şirketi için bir organizasyon. Tek bir hesabınız olur ve her birinin Admin üyesi olursunuz; organizasyon seçicisinden aralarında geçiş yaparsınız. Müşterinin çalışanları User olarak davet edilir. User; cihazları, profilleri, panoları ve alarmları görebilir, alarmları onaylayabilir, temel komutlar gönderebilir ve kişisel paneller oluşturabilir. Akışları görüntülemek Admin yetkisi gerektirir (yetki automation.read), bu yüzden Script bloğunuz onların görüşünden uzak kalır. Müşteriye “sadece bir dakikalığına” bile Admin vermeyin.Paneller: Bunları bir şablon organizasyonunda bir kez oluşturun, paneli dosya olarak indirin ve her müşteri organizasyonuna içe aktarın. Akışlar panel dosyasıyla taşınmaz, bu yüzden akışı ayrıca taşıyorsunuz: akış listesindeki satır menüsünden Export ile dışa aktarın ve her müşteri organizasyonunda Import ile içe aktarın (gizli bilgiler yeniden yazılmalı ve içe aktarılan akışlar kapalı gelir). 4 organizasyonla Script bloğu kodunu ayrıca git’te tutuyorum; her değişiklik 10 dakikalık bir iş. Bu zahmetli hale gelirse, dozaj hesabını firmware’e taşıyıp dose_g değerini telemetri olarak göndermeyi düşünün; böylece mantık tek bir imzalı imajda yaşar.Firmware: Laura’nın dediği gibi, pipeline’ınızda Ed25519 ile imzalayın, genel anahtarı Firmware sayfasına kaydedin ve Allow unsigned images seçeneğini kapalı tutun. Böylece imzasız veya yeniden imzalanmış imajlar yükleme kontrolünde reddedilir.Rol tablosu Users and roles sayfasında. Logonuzla markalama da organizasyon bazında yapılır; ürününüz gibi görünmesini isterseniz kullanabilirsiniz.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Bunu tercih ettim. Bir şablon org oluşturdum, 4 müşteri org’u ve müşterileri User olarak tanımladım. Dummy bir User hesabıyla test ettim, Flows menüsü görünmüyor, iyi. Board dosyası içe aktarımı ilk seferde çalıştı. Bence dozajlamayı bir sonraki sürümde firmware’e taşıyacağım, flow’u dört kez yeniden içe aktarmak zaten can sıkıcı.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Bu kontrol için her org içinde bir dummy User tutun, rol değişikliklerinden sonra buna tekrar ihtiyaç duyacaksınız.
Keep a dummy User in each org for that check, you’ll want it again after role changes.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

