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

Ubuntu masaüstümden terminal ile ofis ışıkları rölesini değiştirme

Ubuntu masaüstümden terminal ile ofis ışıkları rölesini değiştirme

Çözüldü 8 7

Yapay zekâ tarafından English dilinden çevrildi ·

tamam, bu yarı kolaylık meselesi, yarı da API’yi öğrenmek istemem.Analitik ofisimiz ve yanındaki rıhtım ışıkları, MQTT üzerinden Hermetry’ye bilgi veren bir ESP32 röle kartıyla açılıp kapatılıyor. Üzerinde anahtar kartı olan bir pano var ve tarayıcıdan sorunsuz çalışıyor. Ancak günün çoğunu Ubuntu’da terminalde geçiriyorum ve panoyu açmadan ofis ışıklarını değiştiren bir klavye kısayolu istiyorum.Denediğim şey: cihazın erişim belirtecini Credentials çekmecesinden alıp cihazın HTTP uç noktasına gönderdim:

curl -X POST "https://<device host>/api/v1/telemetry" 
  -H "Authorization: Bearer <ACCESS_TOKEN>" 
  -H "Content-Type: application/json" 
  -d '{"light": false}'

200 yanıtı dönüyor ve bir an için anahtar kartı Off gösteriyor, ama ışıklar açık kalıyor ve birkaç saniye sonra ESP32 tekrar bilgi verince kart yeniden On oluyor. Demek ki yanlış şeyle konuşuyorum. Cihazın gerçekten bir işlem yapması için hangi uç nokta doğru?

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Cihaz token’ı ile telemetri göndermek, cihazmış gibi davranmak anlamına gelir. Hermetry yalnızca “cihazın” söylediğini kaydeder. Sizin ihtiyacınız olan, ters yönde giden bir komuttur.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Doğru, bu kartın geri dönmesini açıklıyor. Yani /api/v1/rpc mi? Cihazın HTTP sayfasında bu listeleniyor

♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Bu, cihaz tarafı için; komutları bekliyor. Bence cihaz token’ı yerine bir API anahtarı kullanman gerekiyor. Bir süre önce python requests ile buna benzer bir şey yapmıştım ama yolu hatırlamıyorum.

QoS 1 and a lot of patience.
♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Fabrikamızdaki hat aydınlatmaları için tam olarak bunu, süpervizör bilgisayarındaki küçük bir betikle yapıyoruz. Bir API anahtarıyla Commands API kullanılıyor.Anahtar kartınız zaten bir komut gönderiyor ve kartlar yalnızca cihaz profilinin Temel seviyedeki Commands kataloğunda bulunan komutları gönderebilir. Yani yöntem mevcut. Tam adını ve parametrelerini görmek için, oluşturacağınız anahtarla API’ye sorun: GET /tenant/<tenantId>/api/iot/devices/<deviceId>/rpc-commands o cihaza bir kontrolün gönderebileceği komutları listeler.API Keys altında anahtarı oluşturun: temel komutları gönderme ve komutları okuma iznini verin, masaüstünüzün adresini IP izin listesine ekleyin ve bir son kullanma tarihi seçin. Ardından:

#!/bin/sh
# ~/bin/office-lights  (chmod 700)
KEY=$(cat ~/.config/hermetry/key)
curl -s -X POST "https://<your host>/tenant/<tenantId>/api/iot/devices/<deviceId>/rpc" 
  -H "Authorization: Bearer $KEY" 
  -H "Content-Type: application/json" 
  -d "{"method":"light.set","params":{"on":$1},"timeoutMs":10000}"

Zaman aşımı 30 saniye veya daha az olan çift yönlü bir komut bekler ve durumla birlikte 200 yanıtı verir; böylece terminalde SUCCESSFUL veya hatayı görürsünüz. office-lights true ve office-lights false komutlarını iki kısayola bağlayın, işiniz bitti. Bir API anahtarı yalnızca katalogdaki yöntemleri gönderebilir; bu da zaten burada istediğiniz şey.Dokümantasyon: Commands API.

Ground loops are my cardio.
Kabul edilen çözüm♥ 9

Yapay zekâ tarafından English dilinden çevrildi ·

Anahtarlar varsayılan olarak 90 gün sonra sona erer (en fazla bir yıl), bu yüzden bir yere hatırlatıcı koyun, yoksa kısayolunuz üç ay sonra sessizce çalışmaz hale gelir. Ayrıca anahtar dosyasını chmod 600 olarak tutun ve dotfiles deponuza koymayın.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Çalışıyor. Tek sorunum: katalogda light.set yok; entegratörümüz buna relay.set dedi ve state (0 veya 1) adında bir parametre kullanıyor. rpc-commands çağrısı bunu hemen gösterdi. İlk atadığım kısayol Super+L idi, bu da tabii ekranı kilitliyor; şimdi Super+F9 üzerinde.

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

+1, bunu evdeki garaj kapısı için kaydediyorum

♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Güzel. Rıhtım ışıkları için, bir sürücü hâlâ geri manevra yaparken birisi ışıkları kapattıktan sonra bizimkine “emin misiniz?” onayı ekledik.

♥ 0
9 yazı görüntüleniyor – 1 ile 9 arası (toplam 9)
  • 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ş