Il s'agit d'une bibliothèque Golang pour lire les données P1 d'un soi-disant compteur d'énergie intelligente , utilisé principalement aux Pays-Bas. P1 est le protocole des sociétés de réseau électrique néerlandais conçues ensemble et est décrite sur Netbeheernederland.nl. Les compteurs intelligents qui sont déployés en Belgique mettent en œuvre le même protocole, mais certains types de données supplémentaires ont été définis par les sociétés de réseau électrique. Ces types sont définis dans la spécification E-Mucs H.
Pour lire les données P1, vous aurez besoin de quelque chose comme un câble P1-To-USB. Le port P1 est essentiellement un port série où les données (un soi-disant télégramme P1) sont déversées chaque seconde.
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 )
}
}
}
}Dans l'exemple / le dossier est un exemple d'application qui collecte des mesures pertinentes et les propose par rapport à un point de terminaison HTTP compatible compatible par Prométhée pour le grattage.
Le projet SmartMeter de Marcel de Graaf m'a inspiré pour écrire quelque chose comme ça. J'aime son travail, mais je cherchais une bibliothèque plus enfichable plutôt qu'une application réelle. De plus, il y a beaucoup de projets Python avec le support P1 qui a donné un aperçu.