นี่คือไลบรารี Golang เพื่ออ่านข้อมูล P1 จากเครื่องวัดพลังงาน อัจฉริยะ ที่เรียกว่าใช้เป็นหลักในเนเธอร์แลนด์ P1 เป็นโปรโตคอล Dutch Power Grid บริษัท ที่ออกแบบมาร่วมกันและอธิบายไว้ใน netBeheernederland.nl สมาร์ทมิเตอร์ที่ถูกนำไปใช้ในเบลเยียมใช้โปรโตคอลเดียวกัน แต่ประเภทข้อมูลเพิ่มเติมบางชนิดถูกกำหนดโดย บริษัท Power Grid ประเภทเหล่านี้ถูกกำหนดไว้ในข้อกำหนด E-Mucs H
ในการอ่านข้อมูล P1 คุณจะต้องมีบางอย่างเช่นสายเคเบิล P1-to-USB พอร์ต P1 นั้นเป็นพอร์ตอนุกรมที่ข้อมูล (เรียกว่า P1 Telegram) ถูกทิ้งทุกวินาที
package main
import (
"fmt"
"github.com/skoef/gop1"
)
func main () {
// open a new reader to given USB serial device
p1 , err := gop1 . New (gop1. P1Config {
USBDevice : "/dev/ttyUSB0" ,
})
if err != nil {
panic ( err )
}
// start reading data
// this will send new telegrams to the channel p1.Incoming
p1 . Start ()
for telegram := range p1 . Incoming {
// loop over the objects in the telegram to find types we're interested in
for _ , obj := range telegram . Objects {
switch obj . Type {
case gop1 . OBISTypeInstantaneousPowerDeliveredL1 :
fmt . Printf ( "actual power usage: %s %s n " , obj . Values [ 0 ]. Value , obj . Values [ 0 ]. Unit )
}
}
}
}ในตัวอย่าง/ โฟลเดอร์เป็นแอปพลิเคชั่นตัวอย่างที่รวบรวมตัวชี้วัดที่เกี่ยวข้องและเสนอให้กับจุดสิ้นสุด HTTP ที่เข้ากันได้กับโพรโพร
โครงการ SmartMeter จาก Marcel de Graaf เป็นแรงบันดาลใจให้ฉันเขียนอะไรแบบนี้ ฉันชอบงานของเขา แต่กำลังมองหาห้องสมุดที่สามารถทำได้มากกว่าแอปพลิเคชันจริง นอกจากนี้ยังมีโครงการงูหลามจำนวนมากที่มีการสนับสนุน P1 ที่ให้ข้อมูลเชิงลึก