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

Ein Pi im Labor soll neue Hermetry-Alarme über einen Lautsprecher laut vorlesen

Ein Pi im Labor soll neue Hermetry-Alarme über einen Lautsprecher laut vorlesen

Gelöst 6 6

Von English mit KI übersetzt ·

Ich schon wieder. Unser Labor hat 6 Gefriergeräte und Inkubatoren, die über Hermetry mit Alarmregeln laufen und funktionieren, aber Meldungen gehen an die Glocke und niemand schaut auf den Bildschirm, wenn er Handschuhe trägt. Der PI hat gefragt, ob ein Lautsprecher einfach „Gefrierschrank 3 Temperatur zu hoch“ im Raum ausgeben könnte.Ich habe einen überzähligen Pi 4 und einen USB-Lautsprecher. Offline-Text-to-Speech funktioniert (ich habe piper und espeak-ng getestet, piper klingt deutlich besser). Was ich nicht verstehe, ist, wie der Pi von einem neuen Alarm erfährt. Ich habe in Hermetry einen Webhook auf den Pi eingerichtet, aber es kommt nichts an. Der Pi hängt im Uni-Netz hinter NAT, ohne öffentliche Adresse. Ist ein Webhook das falsche Werkzeug?

Timestamps in UTC or it didn't happen.
♥ 0

Von English mit KI übersetzt ·

Könntest du es irgendwie so einrichten, dass es per E-Mail ansagt? Also dass es den Posteingang liest?

♥ 0

Von English mit KI übersetzt ·

Webhooks benötigen eine HTTPS-URL, die Hermetry von außen erreichen kann. Hinter NAT kommen sie daher nie an. Sie bräuchten einen Tunnel oder einen Reverse Proxy, und die IT der Uni wird wahrscheinlich Nein sagen.

♥ 2

Von English mit KI übersetzt ·

Oder man dreht es um und lässt den Pi nachfragen. Pull ist besser als Push, wenn der Empfänger hinter NAT liegt.

♥ 0

Von English mit KI übersetzt ·

folge dem Thread, das will ich für mein Intercom-Ding auch lol

Ask me about 4–20 mA.
♥ 0

Von English mit KI übersetzt ·

Wir machen das auf unserer Produktionsfläche: Ein Pi mit einem Hornlautsprecher liest kritische Alarme über den Lärm hinweg vor. Ciaran hat recht, frag die Alarms-API ab.Bitte deinen Administrator um einen API-Schlüssel nur mit der Berechtigung zum Lesen von Alarmen (das Lesen von Alarmen ist standardmäßig eine Berechtigung auf Benutzerebene) und eine IP-Allowlist für die Adresse der Uni. Dann:

import requests, subprocess, time
H = {"Authorization": f"Bearer {API_KEY}"}
URL = f"https://{HOST}/tenant/{TENANT}/api/iot/alarms"
seen = set()
while True:
    r = requests.get(URL, headers=H, params={"status": "OPEN", "severity": "CRITICAL,MAJOR",
                                             "sort": "opened:desc", "pageSize": 20}, timeout=10)
    for a in r.json()["items"]:
        if a["alarmId"] not in seen:
            seen.add(a["alarmId"])
            subprocess.run(["sh", "-c", f'echo "{a["deviceName"]}: {a["title"]}" | piper --model en_GB-alan-medium.onnx --output-raw | aplay -r 22050 -f S16_LE'])
    time.sleep(15)

Der Status OPEN bewirkt, dass bestätigte Alarme nicht mehr vorgelesen werden, was die Leute mögen: In der App bestätigen, und der Raum wird still. Gib deinen Alarmregeln lesbare Titel, denn genau das wird vorgelesen, z. B. „{{device.name}} Temperatur {{value}}“. Fünfzehn Sekunden sind ein höflicher Abfrageintervall, bleib deutlich unter den API-Limits. Falls du jemals einen öffentlichen Endpunkt bekommst, würde der Webhook alarm.created das Polling ersetzen: Webhooks.

Akzeptierte Lösung♥ 2

Von English mit KI übersetzt ·

Gestern zum Laufen gebracht, alle im Labor sind begeistert. Ich musste die IT nicht um Hilfe bitten, das war ein Gewinn. Nur eine Sache: Zuerst habe ich status=active verwendet, und nach einem Neustart wiederholte er bestätigte Alarme immer wieder, weil mein seen-set leer war. Dann habe ich auf OPEN umgestellt, wie Sie geschrieben hatten. Außerdem musste ich die Gerätenamen von „frz-03“ in „freezer three“ ändern, weil piper „frz“ als „frz“ ausgesprochen hat.

Timestamps in UTC or it didn't happen.
♥ 1
Ansicht von 7 Beiträgen – 1 bis 7 (von insgesamt 7)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.

Mitdiskutieren

Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

Teilen