Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Laura T.

thompsonplc

@lthompson · Mitglied seit Mai 2025

Neuling

Automation engineer · pharma · 14 years in the field

Themen
7
Antworten
65
Punkte
0
Neuling10 Punkte an Mitglied

Erstellte Forenantworten

Ansicht von 15 Beiträgen – 46 bis 60 (von insgesamt 65)

Von English mit KI übersetzt ·

Du brauchst im Firmware-Code überhaupt keine Tokens pro Gerät. Teile das Problem in zwei Teile.WLAN: Behalte WiFiManager bei. Wenn du einen gut lesbaren Gerätenamen möchtest, füge im Portal ein benutzerdefiniertes Feld hinzu, andernfalls verwende die MAC.Token: Lass den Knoten sein eigenes anfordern. Öffne im Geräteprofil den Reiter Provisioning, setze die Strategie auf Allow creating new devices, speichere, klicke dann auf Create key und kopiere das Secret (es wird nur einmal angezeigt). Dieser Schlüssel mit Secret ist für alle 12 Builds gleich. Beim ersten Start verbindet sich der Knoten mit dem Benutzernamen provision und einem leeren Passwort, abonniert v1/provision/res und veröffentlicht seine Anfrage. Die Antwort enthält sein Zugriffstoken; du speicherst es im NVS, und ab dann meldet sich der Knoten normal an.

// first boot only, after Wi-Fi is up
mqtt.setServer(host, 8883);          // WiFiClientSecure, TLS
mqtt.connect(clientId, "provision", "");
mqtt.subscribe("v1/provision/res", 1);
String req = String("{"deviceName":"aq-") + mac6 +
  "","provisionDeviceKey":"pk_xxx","provisionDeviceSecret":"ps_xxx"}";
mqtt.publish("v1/provision/req", req.c_str());
// in the callback: parse credentialsValue when status == "SUCCESS",
// prefs.putString("tok", value); then reconnect with the token as username

Zwei Dinge haben uns auf einer Pharma-Anlage erwischt. Neue Geräte, die so angelegt werden, landen in Quarantäne: Sie verbinden sich, aber ihre Daten werden verworfen, bis ein Administrator sie aktiviert. Sag deshalb dem Verantwortlichen der Organisation, dass er nach ihnen suchen soll. Außerdem muss der Name eindeutig sein; eine zweite Anfrage mit demselben Namen erhält device_exists, weil nie zweimal eine Zugangsdaten ausgegeben wird. Lösche den NVS deshalb nicht leichtfertig. Details stehen unter Adding and claiming devices.

Akzeptierte Lösung♥ 5

Von English mit KI übersetzt ·

Kstewart hat recht gehabt. Im QA-Labor eine Etage darüber gibt es ein Basics-Station-Gateway, das vom QA-Team in unserer Organisation registriert wurde. Das hat meine „sporadischen“ Frames empfangen, mein Entwicklungs-Kit hat nicht einen einzigen weitergeleitet. Ich habe es für den Bench-Test ausgeliehen, die Einkanal-Platine und den Kanal-Hack entfernt. Der Join klappt beim ersten Versuch, Uplinks alle 60 s auf allen acht Kanälen. Der 868.1-Trick hat übrigens zwischendurch funktioniert, der Vollständigkeit halber.

♥ 0

Von English mit KI übersetzt ·

Aoife, der Pi hat leider keinen Tiefschlafmodus. Es ist ein Linux-Rechner, er läuft entweder oder er ist aus. Also schaltest du alles ab, was du kannst, und lässt das Funkmodul weniger arbeiten.Das würde ich tun, nach dem Nutzen geordnet:

  1. Pi: dtoverlay=disable-wifi und dtoverlay=disable-bt in config.txt, HDMI aus (tvservice -o bei älteren Images), Aktivitäts-LED aus. Auf einem Zero kommst du damit auf etwa 80 mA.
  2. GPS: die GNSS-Engine zwischen den Fixes abschalten (AT+CGPS=0, dann wieder AT+CGPS=1). Ein Warmstart am SIM7600 dauert wenige Sekunden.
  3. Rate: 30 s während der Fahrt, 15 bis 60 min im Stand. Entscheide anhand der Geschwindigkeit oder der Distanz zum letzten Fix.
  4. Batch: Fixes puffern und alle paar Minuten eine Nachricht als Array mit ts senden. GPS liefert eine korrekte Uhrzeit, daher sind die Zeitstempel verlässlich. Ein HTTPS-Aufruf statt zehn bedeutet weniger Funkzeit und kostet eine Nachricht des Monatskontingents statt zehn.
[{"ts": 1757683200000, "values": {"lat": 52.95231, "lon": -1.14972, "speed_kmh": 31.5}},
 {"ts": 1757683230000, "values": {"lat": 52.95410, "lon": -1.14701, "speed_kmh": 33.0}}]

Da das Gerät nur alle paar Minuten sendet, stelle die Online-Regel des Profils auf Recent message mit einem erwarteten Intervall, das zu deiner Standzeit-Rate passt. Sonst wird es die ganze Nacht als offline angezeigt.Wenn eine Woche eine harte Anforderung ist, lautet die ehrliche Antwort: ein Mikrocontroller (ESP32 oder nRF), der schläft und das Modem aufweckt, oder ein Timer-Chip wie ein TPL5110, der zwischen den Läufen die gesamte Stromversorgung des Pi abschaltet. Eine Linux-Platine, die mit 80 mA im Leerlauf läuft, schafft das mit 10 Ah nie.

Akzeptierte Lösung♥ 8

No register trick, I’m afraid. As far as I remember the sleep mode table in the 328P datasheet, the analog comparator is only a wake source in idle (and ADC noise reduction), not power-down. In power-down only the external interrupts, pin change, TWI address match and the watchdog wake it. Your idle current is the clocks running.

Move the comparator outside. A nanopower comparator with push-pull output into INT0 (D2) lets the 328P sit in power-down at a few µA. TLV3691 draws about 75 nA, and the reference can be a micropower 2.5 V shunt. Add hysteresis with a resistor from output to the + input, a few hundred mV at the battery side, otherwise a battery hovering at 11.8 V will wake you a hundred times a night as the load changes.

attachInterrupt(digitalPinToInterrupt(2), wake, FALLING);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable(); sleep_cpu();     // wakes on INT0 only
// on wake: read ADC once for the real value, send it, sleep again

Aoife: you can use the bandgap internally, but the comparator itself still can’t wake power-down, so it doesn’t help here.

On the Hermetry side I’d still send a heartbeat once a day with the voltage. Then an offline alarm on the profile tells you a sensor died, which a wake-only design never would. Put the low-voltage alarm rule on bat_v with some hysteresis too.

Akzeptierte Lösung♥ 4

Von English mit KI übersetzt ·

Das habe ich bei einem Haufen SG90 für einen Lehraufbau gemacht. Die Modifikation:
1. Gehäuse öffnen, Abtriebszahnrad herausnehmen. Den kleinen Kunststoffnocken auf der Unterseite, der am Endanschlag aufschlägt, abschneiden oder abfeilen.
2. Das Potentiometer unter der Abtriebswelle ist die Positionsrückmeldung. Auslöten und an seiner Stelle zwei 2,2-kΩ-Widerstände als feste Spannungsteiler einsetzen (Enden an die äußeren Pads, die Mitte an das Schleiferpad). Der Servo glaubt jetzt immer, er stehe in der Mitte.
3. Wieder zusammenbauen. Jetzt bestimmt die Pulsbreite Geschwindigkeit und Richtung statt Position: etwa 1,5 ms stoppen ihn, kürzer dreht in eine Richtung, länger in die andere. Den genauen Stoppwert durch Ausprobieren finden, die Widertoleranz verschiebt ihn.
Zu deiner zweiten Frage: Nein, er weiß nicht mehr, wo er steht, genau wie ein FS90R. Bei einem Rollladen ist das wichtig, also mach, was Keisha gesagt hat: einen Reedkontakt oder Mikroschalter bei ganz offen und ganz geschlossen anbringen und die Zeit zählen oder dazwischen einen günstigen Encoder einbauen. Ehrlich gesagt ist ein SG90 auch schwach für einen echten Rollladen. Ein 28BYJ-48-Schrittmotor mit ULN2003-Platine liefert dir die Position gratis und mehr Drehmoment.
Auf der Board-Seite: Füge blind.set mit einem Number-Parameter 0-100 im Commands-Tab des ESP32-Profils hinzu, Basic-Stufe. Der Slider sendet den Wert einmal beim Loslassen, nicht während du ziehst, was für einen Motor passt. Lass den ESP32 seine tatsächliche Position als blind_pct veröffentlichen und binde den Current value des Sliders daran, damit die Karte zeigt, wo der Rollladen wirklich steht.
Versorge den Servo oder Schrittmotor aus einem eigenen 5-V-Netzteil, nicht über den Pin des ESP32.

Akzeptierte Lösung♥ 6

Von English mit KI übersetzt ·

Ich habe letztes Jahr für einen Auftragnehmer ein ähnliches Design geprüft, daher hier die Begründung für den Bericht.Trenne öffentliche von geheimen Daten. Das CA-Bundle ist öffentlich; das Serverzertifikat ist ein öffentliches Zertifikat, das mit einem normalen CA-Bundle geprüft wird, daher ist es unbedenklich, es auf der Karte zu speichern. WLAN-Passwort und Geräte-Token sind Geheimnisse, denn sie identifizieren genau dieses Gerät.Geheimnisse auf Wechselmedien scheitern aus zwei Gründen: Beim Entfernen bleibt keine Spur zurück, und die Karte wird häufig auf andere Boards kopiert („klon einfach die Karte“), sodass mehrere Geräte dieselbe Zugangsdaten teilen. Hermetry erlaubt pro Gerät nur eine Sitzung; zwei Boards mit demselben Token werfen sich daher ständig gegenseitig heraus, und du würdest eine Übernahme im Log-Tab des Geräts sehen.Zu X.509: Für eigene Boards ist das nicht verfügbar. Client-Zertifikate müssen von der Geräte-Zertifizierungsstelle von Hermetry stammen, und das Hochladen einer eigenen CA für Fremdgeräte wird nicht angeboten; dieser Weg ist für lizenzierte Geräte gedacht, die ihren Schlüssel selbst erzeugen und selbst eine CSR senden. Dein ESP32 verwendet ein Access-Token oder MQTT basic.Was ich auf einem ESP32 tun würde:1. Dasselbe Binary für jedes Board ist in Ordnung. Lege das Token bei der Bereitstellung über einen kleinen seriellen Befehl beim ersten Start in NVS ab, nicht auf der Karte.2. Aktiviere Flash-Verschlüsselung und NVS-Verschlüsselung, damit ein Flash-Dump das Token nicht preisgibt.3. Die Karte nur für Datenprotokollierung und das CA-Bundle verwenden.4. In Hermetry je ein Gerät und ein Token pro Board anlegen; wenn ein Board verloren geht, das Geheimnis rotieren. Damit werden dessen Sitzungen sofort beendet.Die Einschränkung bei Zertifikaten steht im letzten Abschnitt von Device certificates.

Akzeptierte Lösung♥ 6

The pH jumping with the EC probe in is a ground loop. Both EZO circuits share the Pi’s ground and the EC probe drives current through the water, which shifts the pH reference. Atlas sells an isolated carrier board for exactly this, put at least one of the two on it.

♥ 0

Von English mit KI übersetzt ·

Nur zwischen dem Telefon und dem Funkmast, und die 2G-Version davon ist schwach, weshalb der Van-Trick funktioniert. Hinter dem Kernnetz des Betreibers ist es normales Internet. Behandeln Sie die Funkstrecke als nicht vertrauenswürdig.

♥ 0

Until something like that exists, do the zone decision on the robot. That’s also what the personnel tracking solution expects: the tracker or its gateway reports the zone name, and Hermetry’s rules work on that. I run exactly this for carts in a warehouse, ESP32 scanning fixed BLE tags.

every 2 s: scan 1.5 s, keep RSSI per known tag (EMA, alpha 0.3)
best = tag with highest smoothed RSSI
switch zone only if best beats the current zone's tag by 6 dB
             for 3 scans in a row          (stops flapping at borders)
publish on change and every 60 s:
  {"zone": "F3-east", "zone_id": 32, "zone_rssi": -71}

Send both: zone as text for tables and the alarm, zone_id as a number because text keys have no chart history and you’ll want „where was it at 14:00“.

For the kitchen corridor: give each cleaner a server attribute forbiddenZone = „F0-kitchen“ and an alarm rule on the robot profile where zone equals that attribute. Per-device thresholds from attributes work for text too with ==. Same pattern the tracking solution uses, described on Personnel tracking.

Polygons: no workaround on the map that I know of. Map the polygon to tag zones instead, one zone per forbidden area.

Akzeptierte Lösung♥ 3

Von English mit KI übersetzt ·

Gut. Plane aber einen Ersatz für diesen Edison ein, er wird seit Jahren nicht mehr produziert und Ersatzteile werden immer schwerer zu finden.

♥ 1

Aoife has the core of it.

Cutting the solenoid only puts the directional valve into its rest position. Depending on the valve type that can trap air in the cylinder (closed-centre 5/3 valves do exactly that), so the cylinder can still move when someone opens a fitting, or hold a load that drops later. A stuck valve spool is the other failure: power off, valve doesn’t move. Pneumatic energy is stored energy, and for safe access you want it gone, not held. The dump valve exhausts the supply to atmosphere so the cell ends up at zero pressure. The safety relay usually also monitors the dump valve’s feedback (a pressure switch or a position contact), so a dump valve that fails to vent stops the cell from restarting. The two parts cover different failures. How much of this you need follows from the risk assessment and the required performance level under ISO 13849, which is your engineer’s job to document.

On Hermetry Safe: there’s no doc page for it, so I won’t guess what it does. Whatever it does, I would never put a cloud platform into the safety function itself. Even the personnel tracking page calls that solution an information tool, not a certified safety system. Emergency stop, safety relay and dump valve stay hardwired.

What works today and is useful: monitoring. Wire the safety relay’s auxiliary contact and the dump valve’s pressure switch into the cell PLC or a gateway and send them as telemetry, say estop.active and dump.vented. Then an alarm rule can tell maintenance when the e-stop has been active for a long time, or when the e-stop is active and dump.vented is still 0. That gives you records and notifications without touching the safety chain.

Akzeptierte Lösung♥ 5
Ansicht von 15 Beiträgen – 46 bis 60 (von insgesamt 65)