Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Laboratuvardaki bir Pi, yeni Hermetry alarmlarını hoparlörden sesli okusun

Laboratuvardaki bir Pi, yeni Hermetry alarmlarını hoparlörden sesli okusun

Çözüldü 6 6

Yapay zekâ tarafından English dilinden çevrildi ·

Yine ben. Laboratuvarımızda alarm kurallarıyla Hermetry üzerinde çalışan 6 derin dondurucu ve inkübatör var, sistem çalışıyor ama uyarılar zile gidiyor ve eldiven takılıyken kimse ekrana bakmıyor. PI, odadaki bir hoparlörün “Dondurucu 3 sıcaklık yüksek” gibi bir mesajı sesli söyleyip söyleyemeyeceğini sordu.Yedek bir Pi 4 ve bir USB hoparlörüm var. Çevrimdışı metinden konuşmaya (text to speech) çalışıyor (piper ve espeak-ng’yi test ettim, piper çok daha doğal geliyor). Anlamadığım kısım, Pi’nin yeni bir alarmdan nasıl haberdar olacağı. Hermetry’de Pi’ye yönelik bir webhook kurdum ama hiçbir şey gelmiyor. Pi, genel adresi olmayan, NAT arkasındaki üniversite ağında. Webhook yanlış araç mı?

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

Yapay zekâ tarafından English dilinden çevrildi ·

Bunu bir e-posta üzerinden duyuracak şekilde bir yol bulabilir misin? Mesela gelen kutusunu okuyacak gibi?

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Webhook’ların Hermetry’nin dışarıdan erişebileceği bir HTTPS URL’sine ihtiyacı var; NAT arkasında olduklarında bu çağrılar hiçbir zaman ulaşmaz. Bir tünel ya da ters proxy gerekir ve üniversite BT birimi muhtemelen buna hayır diyecektir.

♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Ya da işi tersine çevirip Pi’nin sorgulamasını sağlayın. Alıcı NAT arkasında olduğunda pull yöntemi push yönteminden daha iyidir.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

takipteyim, intercom işim için de bunu istiyorum lol

Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Bunu tesis katımızda yapıyoruz: gürültünün üzerinden kritik alarmları okuyan, boynuz hoparlörlü bir Pi var. Ciaran haklı, Alarms API’yi sorgulayın.Yöneticinizden yalnızca alarm okuma iznine sahip bir API anahtarı isteyin (alarm okuma, varsayılan olarak Kullanıcı düzeyinde bir izindir) ve üniversitenin adresi için bir IP izin listesi isteyin. Sonra:

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)

OPEN durumu, onaylanmış alarmların artık okunmamasını sağlar; insanlar bunu sever: uygulamada onaylayın, oda sessizleşir. Alarm kurallarınıza okunabilir başlıklar verin, çünkü seslendirilen şey budur, örneğin “{{device.name}} sıcaklık {{value}}”. On beş saniye, nazik bir sorgulama aralığıdır; API limitlerinin epey altında kalın. Herhangi bir zaman halka açık bir uç noktanız olursa, alarm.created webhook’u sorgulamanın yerini alır: Webhooks.

Kabul edilen çözüm♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Dün çalıştırdım, laboratuvardaki herkes bayıldı. IT’ye hiç sormak zorunda kalmadım, bu ayrı bir kazançtı. Tek sorun: önce status=active kullandım, seen-set boş olduğu için yeniden başlatmadan sonra onaylanmış alarmları tekrar tekrar okumaya devam etti. Sizin yazdığınız gibi OPEN’a geçtim. Ayrıca piper “frz” olarak okuduğu için cihaz adlarını “frz-03” yerine “freezer three” olarak değiştirmem gerekti.

Timestamps in UTC or it didn't happen.
♥ 1
7 yazı görüntüleniyor – 1 ile 7 arası (toplam 7)
  • 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.

Paylaş