james56
@james_p56 · Mitglied seit August 2026
Automation engineer · manufacturing
- Themen
- 2
- Antworten
- 14
- Punkte
- 0
Erstellte Forenantworten
Von English mit KI übersetzt ·
Wir haben das bei einer kleineren Flotte mit Befehlen gemacht, und jedes Mal, wenn ein Gerät einen Befehl verpasst hat, war es ein Chaos. Niemand konnte sagen, welche Geräte welches Intervall hatten.
We did it with commands on a smaller fleet and it was a mess every time a unit missed one. Nobody could tell which units had which interval.
Von English mit KI übersetzt ·
Wir haben unsere Palettierungsansicht neu aufgebaut, wobei die Bandbreiten den echten Bändern entsprechen. Bei uns funktioniert es.
Rebuilt our palletising screen with the belt widths set to match the real belts. Works for us.
Von English mit KI übersetzt ·
Nein, der Uno verkraftet beides. Aber wie wird das Relais versorgt, und wo werden die Massen zusammengeführt? Die springenden Messwerte und der verschwindende Port klingen eher nach dem Ventil als nach der Versorgung.
No, the Uno handles both. But how is the relay powered, and where do the grounds meet? The jumping readings and the disappearing port sound like the valve, not the supply.
Von English mit KI übersetzt ·
DTR ist eine der alten Modem-Steuerleitungen. Am Uno läuft sie über einen 100-nF-Kondensator zum Reset-Pin, damit die IDE das Board vor einem Upload zurücksetzen kann. Jedes Programm, das den Port öffnet, schaltet DTR um, und das Board resetet sich. Ich habe mich letztes Jahr bei einem Zeilenzähler auf der Arbeit damit herumgeschlagen.Softwareseitig zwei Dinge zusammen:
stty -F /dev/ttyUSB0 -hupcl # don't drop DTR when the port closes
ser = serial.Serial()
ser.port = '/dev/ttyUSB0'
ser.baudrate = 9600
ser.timeout = 2
ser.dtr = False
ser.open()
Vorsicht: Unter Linux kann der Treiber beim allerersten Öffnen nach dem Booten DTR trotzdem kurz setzen. Das reduziert die Resets also, beseitigt sie aber nicht immer.Die sichere Lösung ist Hardware: ein 10-µF-Kondensator zwischen RESET und GND am Uno, Minuspol an GND. Der schluckt den Reset-Impuls. Du musst ihn dann zum Hochladen neuer Firmware wieder herausnehmen (oder im richtigen Moment von Hand die Reset-Taste drücken).Und zu den Aussetzern in deiner Summe: Speichere den Zähler außerdem alle paar Minuten im EEPROM, oder lass den Uno eine laufende Summe seit dem Flashen statt seit dem Booten senden. Ein Reset kostet dich dann ein paar Impulse, nicht die ganze Summe.
DTR is one of the old modem control lines. On the Uno it goes through a 100 nF capacitor to the reset pin, so the IDE can reset the board before an upload. Any program that opens the port toggles DTR, so the board resets. I fought this on a line counter at work last year.
Software side, two things together:
stty -F /dev/ttyUSB0 -hupcl # don't drop DTR when the port closes
ser = serial.Serial()
ser.port = '/dev/ttyUSB0'
ser.baudrate = 9600
ser.timeout = 2
ser.dtr = False
ser.open()
Be warned that on Linux the driver may still raise DTR for a moment on the very first open after boot, so this reduces resets, it doesn’t always kill them.
The sure fix is hardware: a 10 µF capacitor between RESET and GND on the Uno, minus to GND. That swamps the reset pulse. You then have to pull it out (or press reset by hand at the right moment) when you upload new firmware.
And for the drops in your total: also keep the count in EEPROM every few minutes, or have the Uno send a running total since it was flashed instead of since boot. A reset then costs you a few pulses, not the whole total.
Did this for a roof inspection drone, so here’s what I ended up with.
On the Pi, pymavlink reads the MAVLink stream from TELEM2. You only need two messages: GLOBAL_POSITION_INT (lat/lon in 1e7 degrees, relative altitude in mm) and SYS_STATUS (battery voltage in mV). Once a second, publish a flat object over MQTT with TLS:
from pymavlink import mavutil
m = mavutil.mavlink_connection("/dev/serial0", baud=921600)
state = {}
while True:
msg = m.recv_match(type=["GLOBAL_POSITION_INT", "SYS_STATUS"], blocking=True)
if msg.get_type() == "GLOBAL_POSITION_INT":
state.update(lat=msg.lat / 1e7, lng=msg.lon / 1e7, alt_m=msg.relative_alt / 1000)
else:
state["batt_v"] = msg.voltage_battery / 1000
if time.time() - last >= 1:
client.publish("v1/telemetry", json.dumps(state), qos=1); last = time.time()
Name the keys lat and lng, that’s what the Map card looks for by default.
On the board, a Map card. Bind Points to the drone’s latest values (lat, lng), and that’s your live marker. Bind Routes to Device readings over time with the keys lat,lng, and turn on Replay controls. The client can play the flight back at 1x to 10x and scrub. Add a value card for battery and altitude next to it. Satellite map style helps them see the panel rows.
1 message a second is far inside the default per-device limits. And keep it read-only: no commands from the board to the drone, the pilot flies it.
Von English mit KI übersetzt ·
Gibt es nicht eine Relay-Funktion? Ich bin mir sicher, irgendwo in der Gateway-Liste einen Gateway-Status namens ‚Pending‘ gesehen zu haben.
Isn’t there a relay feature? I’m sure I saw a gateway status called Pending somewhere in the gateway list.
Von English mit KI übersetzt ·
Die Sternverkabelung ist dein Dropout-Problem. 1-Wire mag keine Stichleitungen, jede Abzweigung reflektiert. Entweder führst du eine Leitung an jedem Sensor vorbei, mit winzigen Stichleitungen, oder du teilst sie auf: Du kannst das Overlay zweimal auf zwei Pins laden und hast dann zwei kürzere Busse. Bei so viel Kabel würde ich außerdem 2.2k statt 4.7k probieren.
The star is your dropout problem. 1-wire hates stubs, every leg reflects. Either run one line past every probe with tiny stubs, or split it: you can load the overlay twice on two pins and have two shorter buses. I’d also try 2.2k instead of 4.7k with that much cable.
Von English mit KI übersetzt ·
disable-bt plus das Entfernen der Konsole hat es gelöst. 600 Abfragen über Nacht, null CRC-Fehler, null Timeouts. Ich war auf ttyAMA0 und habe offenbar mit … nichts Brauchbarem gesprochen, und das Skript fiel auf Wiederholungsversuche zurück, die manchmal erfolgreich waren. Ich habe auf serial0 umgestellt. Kevin, ttyAMA ist die ARM-PL011-Benennung, nicht USB.
disable-bt plus removing the console did it. 600 polls overnight, zero CRC errors, zero timeouts. I was on ttyAMA0 talking to… nothing useful apparently, and the script fell back to retries that sometimes hit. Changed it to serial0. Kevin, ttyAMA is the ARM PL011 naming, not USB.
Von English mit KI übersetzt ·
An diesen Standorten gibt es wohl kein VPN, das ist ja gerade der Sinn der Panel-Funktion.Router A: Das lässt sich von Hermetry aus nicht umstellen, das ist so gewollt. „Panel-Zugriff über mein Cloud-Konto erlauben“ ist die lokale Zustimmung des Router-Besitzers und existiert nur auf der Cloud-Seite des Routers selbst. Jemand vor Ort muss es einmal aktivieren. Wir haben das mit einem Landwirt telefonisch gemacht, es dauerte fünf Minuten: am Laptop im LAN beim lokalen Panel des Routers anmelden, Cloud-Seite öffnen, Schalter setzen. Danach funktioniert Panel öffnen von überall.Router B: Die Firmware ist für Panel-Sitzungen zu alt. Aktualisiere sie über die Firmware-Seite von Hermetry. Bei einem so weit entfernten Router würde ich das separat und vorab erledigen, nicht als Teil einer Welle, und im Firmware-Tab die Einstellung Updates über LTE prüfen, falls er über das Mobilfunknetz angebunden ist. Lizenzierte Geräte haben lokale Freigabe- und Messtarifregeln, daher kann er so lange im Status Wartend hängen, bis diese es erlauben.Ein paar Dinge für wenn es funktioniert. Ist der Router über LTE angebunden, erhältst du eine Bestätigung, dass die Sitzung bis zu 50 MB verbrauchen darf, danach wird sie geschlossen. Sitzungen enden nach 30 Minuten ohne Nutzung oder nach insgesamt 4 Stunden. Nur wer eine Sitzung geöffnet hat, kann sie betreten, also öffnet ein Kollege seine eigene. Und was du im Panel änderst, liegt bei dir, das Öffnen allein ändert nichts.Alle Ablehnungsmeldungen sind auf Remote access to a router’s panel aufgelistet.
No VPN at those sites I’d bet, that’s the point of the panel feature.
Router A: you can’t switch that from Hermetry, by design. „Allow panel access from my cloud account“ is the router owner’s local consent and lives only on the router’s own Cloud page. Someone on site has to turn it on once. We had a farmer do it with me on the phone, it took five minutes: log into the router’s local panel from a laptop on the LAN, Cloud page, tick the switch. After that Open panel works from anywhere.
Router B: the firmware is too old for panel sessions. Update it through Hermetry’s firmware page. For a router that far away I’d do it on its own first, not as part of a wave, and check its Firmware tab for the Updates over LTE setting if it’s on the mobile uplink. Licensed devices have local approval and metered-link rules, so it may sit in Waiting until those allow it.
Couple of things for when it works. If the router is on LTE you get a confirm that the session may use up to 50 MB and is then closed. Sessions end after 30 minutes without use or 4 hours total. Only the person who opened a session can enter it, so a colleague opens their own. And what you change inside the panel is up to you, opening it changes nothing.
All the refusal messages are listed on Remote access to a router’s panel.
Von English mit KI übersetzt ·
Das war es, sie hatten die Pumpen-Seite direkt als Lesezeichen gespeichert. Erledigt, danke.
That was it, they had the pump board bookmarked directly. Sorted, thanks.
Von English mit KI übersetzt ·
Gibt es eine Möglichkeit zurück, nachdem man ein Board geöffnet hat? Unsere Betriebsleute landen drei Boards tief und schließen dann den Tab, um von vorne zu beginnen.
Is there a way back after Open a board? Our ops people end up three boards deep and then close the tab to start over.
Von English mit KI übersetzt ·
Ich betreue die Anlagenüberwachung für sechs Kunden so, und hier ist das Setup, das sich bewährt hat.Eine Organisation pro Kundenfirma. Sie behalten ein Konto und sind Mitglied in jeder Organisation, mit Admin, und wechseln über die Organisationsauswahl zwischen ihnen. Die Mitarbeiter des Kunden werden als User eingeladen. Ein User kann Geräte, Profile, Dashboards und Alarme sehen, Alarme quittieren, einfache Befehle senden und persönliche Boards erstellen. Das Ansehen von Flows erfordert Admin (die Berechtigung ist automation.read), daher bleibt Ihr Script-Block außerhalb ihres Blickfelds. Geben Sie einem Kunden niemals Admin-Rechte „nur für einen Moment“.Dashboards: Bauen Sie sie einmal in einer Vorlagen-Organisation, laden Sie das Board als Datei herunter und importieren Sie es in jede Kundenorganisation. Flows werden nicht mit der Board-Datei übertragen, daher bringen Sie den Flow separat hinüber: Über das Zeilenmenü der Flow-Liste exportieren (Export) und in jeder Kundenorganisation importieren (Import). Geheimnisse müssen erneut eingegeben werden, und importierte Flows sind zunächst deaktiviert. Bei 4 Organisationen halte ich den Script-Block-Code zusätzlich in git; jede Änderung ist eine Aufgabe von 10 Minuten. Wenn das lästig wird, sollten Sie überlegen, die Dosierberechnung in die Firmware zu verlagern und dose_g als Telemetrie zu senden; dann liegt die Logik in einem signierten Image.Firmware: Was Laura gesagt hat, Signierung mit Ed25519 in Ihrer Pipeline, den öffentlichen Schlüssel auf der Firmware-Seite registrieren und die Option Allow unsigned images deaktiviert lassen. Unsignierte oder neu signierte Images werden dann von der Upload-Prüfung abgelehnt.Die Rollentabelle finden Sie unter Users and roles. Branding mit Ihrem Logo wird ebenfalls pro Organisation festgelegt, falls Sie es so aussehen lassen möchten, als wäre es Ihr eigenes Produkt.
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.
Von English mit KI übersetzt ·
Auf meinem Linux-Rechner funktioniert es ohne Weiteres, einen Mac habe ich nie ausprobiert.
Works out of the box on my Linux machine, never tried a Mac.
Thanks. Do I need to buy a library for the electrical side, or is there something in the base set for meters and breakers?

