iot alternatives and similar packages
Based on the "IoT (Internet of Things)" category.
Alternatively, view iot alternatives based on common mentions on social networks and blogs.
-
flogo
Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps. -
connectordb
An aggregator for personal metrics, and an extensible analysis engine -
devices
Suite of libraries for IoT devices (written in Go), experimental for x/exp/io -
huego
An extensive Philips Hue client library for Go with an emphasis on simplicity
Less time debugging, more time building
Do you think we are missing an alternative of iot or a related project?
Popular Comparisons
README
IoT
A simple framework for implementing a Google IoT device.
This package makes use of the context package to handle request cancelation, timeouts, and deadlines.
Copyright 2018, Andrew C. Young <[email protected]>
License: [MIT]
Here is an example showing how to use this library:
package main
import (
"context"
"log"
"github.com/vaelen/iot"
// Your client must include the paho package
// to use the default Eclipse Paho MQTT client.
_ "github.com/vaelen/iot/paho"
)
func main() {
ctx := context.Background()
id := &iot.ID{
DeviceID: "deviceName",
Registry: "my-registry",
Location: "asia-east1",
ProjectID: "my-project",
}
credentials, err := iot.LoadRSACredentials("rsa_cert.pem", "rsa_private.pem")
if err != nil {
panic("Couldn't load credentials")
}
options := iot.DefaultOptions(id, credentials)
options.DebugLogger = log.Println
options.InfoLogger = log.Println
options.ErrorLogger = log.Println
options.ConfigHandler = func(thing iot.Thing, config []byte) {
// Do something here to process the updated config and create an updated state string
state := []byte("ok")
thing.PublishState(ctx, state)
}
thing := iot.New(options)
err = thing.Connect(ctx, "ssl://mqtt.googleapis.com:443")
if err != nil {
panic("Couldn't connect to server")
}
defer thing.Disconnect(ctx)
// This publishes to /events
thing.PublishEvent(ctx, []byte("Top level telemetry event"))
// This publishes to /events/a
thing.PublishEvent(ctx, []byte("Sub folder telemetry event"), "a")
// This publishes to /events/a/b
thing.PublishEvent(ctx, []byte("Sub folder telemetry event"), "a", "b")
}
Thanks to Infostellar for supporting my development of this project.
*Note that all licence references and agreements mentioned in the iot README section above
are relevant to that project's source code only.