วิธีติดตั้งใช้งาน CLI ของ COWTH
สอนติดตั้งใช้งาน CLI ของ COWTH MQTT BROKER
เนื่องจาก COWTH ได้ปล่อยเครื่องมือ CLI มาให้ทุกคนได้ใช้งานร่วมกับ sandbox COWTH ผมจึงมาเขียนบทความนี้เพื่อแนะนำวิธีการติดตั้งให้กับทุกท่านนะครับ

ก่อนอื่น ทุกท่านสามารถดาวน์โหลดได้จากที่นี่เลยครับ
ดาวน์โหลด
| ระบบปฏิบัติการ | ลิงก์ | ขนาด |
|---|---|---|
| Windows (64-bit) | CowthInstaller_v0.1.2_x64.exe | 2.21 MB |
| Linux (x64) | cowthctl-0.1.2-linux-x64.zip | 1.24 MB |
| SHA-256 checksums | SHA256SUMS-0.1.2.txt | — |
💡 หมายเหตุ: … บทความนี้ผมขอแนะนำกับผู้ใช้งานระบบ Windows เพียงอย่างเดียวก่อนนะครับ
เมื่อดาวน์โหลดเสร็จแล้ว ให้ทุกท่านเปิดโปรแกรม CowthInstaller_v0.1.2_x64.exe ได้เลยครับ
โปรแกรมจะแจ้งเตือน ให้คลิกที่ More Info

💡 หมายเหตุ: … warning นี้เกิดขึ้นเพราะ installer ยังไม่มีลายเซ็นดิจิทัล (code signing)
จากนั้นคลิก Run anyway

ทำการเลือกโฟลเดอร์ที่จะติดตั้งโปรแกรม (ผมจะใช้ค่า Default) และคลิก Next ได้เลย

หน้านี้คลิก Next ครับ โดยหัวข้อ Setup ให้ติ๊กตาม Default เพื่อให้ตัวติดตั้งไปทำการติดตั้ง environment PATH ให้ครับ

ตัวติดตั้งจะแสดงสรุปรายละเอียดก่อนติดตั้ง ส่วนนี้หากตรวจสอบแล้วไม่มีข้อผิดพลาด หรือไม่เปลี่ยนใจสำหรับตำแหน่งโฟลเดอร์ที่จะติดตั้ง ก็ให้คลิก Install ได้เลย

เมื่อติดตั้งเสร็จจะขึ้นแบบด้านล่างครับ ให้คลิก Finish เป็นอันเสร็จสิ้น

💡 หมายเหตุ: ก่อนใช้งานระบบ COWTH ได้ ทุกท่านต้องไปขอชื่อผู้ใช้กับรหัส ผ่านทางหน้าเว็ป broker.cowth.dev เลือกลงไปจะเจอข้อความ “ขอ username/password สำหรับ Sandbox” ให้กรอกอีเมลไปได้เลย
คำสั่งที่ใช้งาน
ดูเวอร์ชัน
cowthctl version
ตัวอย่างผลลัพธ์:
Cowth Broker 0.1.2
ดู help
cowthctl help
แสดงรายการคำสั่งทั้งหมดที่ใช้ได้
ตั้งค่า Sandbox Profile (ครั้งแรก)
ใช้สำหรับสร้างโฟลเดอร์ profile และบันทึก credential token เพื่อเชื่อมต่อกับ Cowth hosted broker
ขั้นตอน:
- ตั้งค่า environment variable สำหรับ token ก่อน:
# Windows (PowerShell)
$env:COWTH_SANDBOX_CREDENTIAL_TOKEN = "token ที่ได้รับจากอีเมลที่ขอผ่านทาง dashboard"
- สร้าง profile:
cowthctl sandbox profile init --user <ชื่อผู้ใช้ของคุณที่ได้รับทางอีเมล>
ตัวอย่าง:
cowthctl sandbox profile init --user somchai
ตัวอย่างผลลัพธ์:
sandbox.profile=initialized
user=somchai
namespace=sandbox/somchai
profile_root=C:\ProgramData\Cowth\Broker\sandbox
profile_dir=C:\ProgramData\Cowth\Broker\sandbox\somchai
profile_file=C:\ProgramData\Cowth\Broker\sandbox\somchai\profile.toml
credential_file=C:\ProgramData\Cowth\Broker\sandbox\somchai\credentials.toml
credential_state=present-redacted
credential_value=[redacted]
wrote_credentials=true
log_dir=C:\ProgramData\Cowth\Broker\sandbox\somchai\logs
ตัวเลือกเพิ่มเติม:
| ตัวเลือก | ความหมาย |
|---|---|
--user <ชื่อ> | (จำเป็น) ชื่อ sandbox user |
--client-id <id> | กำหนด MQTT client ID เอง (ถ้าไม่ระบุจะใช้ชื่อ user) |
--force | เขียนทับ profile เดิมถ้ามีอยู่แล้ว |
--profile-root <path> | ระบุ path ของโฟลเดอร์ profile (ถ้าไม่ระบุใช้ค่า default) |
ความปลอดภัย: token จะถูกเก็บใน
credentials.tomlด้วยสิทธิ์ private (อ่านได้เฉพาะเจ้าของ) และจะไม่แสดงค่าจริงในผลลัพธ์
ตรวจสอบ Profile
ตรวจสอบว่า profile ถูกสร้างและอยู่ถูกที่แล้วหรือยัง:
cowthctl sandbox profile check --user <ชื่อผู้ใช้>
ตัวอย่าง:
cowthctl sandbox profile check --user somchai
Publish ข้อความ
ส่งข้อความไปยัง sandbox topic บน broker.cowth.dev
cowthctl pub --user <ชื่อผู้ใช้> --topic <topic> --message <ข้อความ>
ตัวอย่าง:
cowthctl pub --user somchai --topic sensors/temperature --message "25.5"
ผลลัพธ์:
published=true
topic.mapped=sandbox/somchai/sensors/temperature
message=25.5
broker=broker.cowth.dev:1883
Loop mode — ส่งซ้ำอัตโนมัติ:
# ส่งทุก 1 วินาที (default)
cowthctl pub --user somchai -t sensors/temperature -m "25.5" --loop
# ส่งทุก 5 วินาที
cowthctl pub --user somchai -t sensors/temperature -m "25.5" -l -i 5
# ส่งทุก 100ms (เร็วที่สุดที่ broker รองรับ)
cowthctl pub --user somchai -t sensors/temperature -m "25.5" -l -i 0.1
กด Ctrl+C เพื่อหยุด
💡 หมายเหตุ: ทั้งหมดนี้ให้ใช้งานบน Power Shell นะครับ
หากติดปัญหาการใช้งาน สามารถติดต่อเข้าไปในเพจ COWTH ได้เลยครับ ขอบคุณทุกท่านที่เข้ามาอ่านบทความนี้ หวังว่าจะเป็นประโยชน์แก่ทุกท่านครับ