github.com/simpleiot/simpleiot@v0.18.3/README.md (about) 1 <img src="docs/images/siot-logo.png?raw=true" width="150"> 2 3 [](https://pkg.go.dev/github.com/simpleiot/simpleiot) 4  5 [](https://github.com/simpleiot/simpleiot/) 6 [](https://goreportcard.com/report/github.com/simpleiot/simpleiot) 7 [](http://gophers.slack.com/messages/simpleiot) 8 9 **Simple Iot enables you to add remote sensor data, telemetry, configuration, 10 and device management to your project or product.** 11 12 Implementing IoT systems is hard. Most projects take way longer and cost more 13 than they should. The fundamental problem is getting data from remote locations 14 (edge) to a place where users can access it (cloud). We also need to update data 15 and configuration at the edge in real time from any location. Simple IoT is an 16 attempt to solve these problems by embracing the fact that IoT systems are 17 inherently distributed and building on simple concepts that scale. 18 19 **Simple IoT** provides: 20 21 - a single application with no dependencies that can be run in both cloud and 22 edge instances 23 - efficient synchronization of data in both directions 24 - a flexible UI to view configuration and current values 25 - a rules engine that runs on all instances that can trigger notifications or 26 set data 27 - extensive support for Modbus -- both server and client 28 - support for the Linux 1-wire subsystem. 29 - flexible graph organization of instances, users, groups, rules, and 30 configuration 31 - integration with other services like InfluxDB and Twilio 32 - a system that is easy to extend in any language using NATS 33 - a number of useful Go packages to use in your custom application 34 35 See [vision](docs/ref/vision.md), [architecture](docs/ref/architecture.md), and 36 [integration](docs/ref/integration.md) for addition discussion on these points. 37 38 See [detailed documentation](https://docs.simpleiot.org) for installation, 39 usage, and development information. 40 41 ## Motivation 42 43 This project was developed while building real-world IoT applications and has 44 been driven by the following requirements: 45 46 - Data (state or configuration) can be changed anywhere — at edge devices or in 47 the cloud and this data needs to be synchronized seamlessly between instances. 48 Sensors, users, rules, etc. can all change data. Some edge systems have a 49 local display where users can modify the configuration locally as well as in 50 the cloud. Rules can also run in the cloud or on edge devices and modify data. 51 - Data bandwidth is limited in some IoT systems — especially those connected 52 with Cat-M modems (< 100kb/s). Additionally, connectivity is not always 53 reliable, and systems need to continue operating if not connected. 54 55 ## Core ideas 56 57 The process of developing Simple IoT has been a path of reducing what started as 58 a fairly complex IoT system to simpler ideas. This is what we discovered along 59 the way: 60 61 1. treat configuration and state data the same for purposes of storage and 62 synchronization. 63 2. represent this data using simple types (Nodes and Points). 64 3. organize this data in a graph. 65 4. all data flows through a message bus. 66 5. run the same application in the cloud and at the edge. 67 6. automatically sync common data between instances. 68 69 > [Design is the beauty of turning constraints into advantages.](https://www.webstock.org.nz/talks/design-is-the-beauty-of-turning-constraints-into-advantages/) 70 > -- Ava Raskin 71 72 These constraints have resulted in Simple IoT becoming a flexible distributed 73 graph database optimized for IoT datasets. We'll explore these ideas more in the 74 [documentation](https://docs.simpleiot.org). 75 76 ## Support, Community, Contributing, etc. 77 78 Pull requests are welcome -- see [development](docs/ref/development.md) for more 79 thoughts on architecture, tooling, etc. Issues are labelled with "help wanted" 80 and "good first issue" if you would like to contribute to this project. 81 82 For support or to discuss this project, use one of the following options: 83 84 - [Documentation](https://docs.simpleiot.org) 85 - [Simple IoT community forum](https://community.tmpdir.org/c/simple-iot/5) 86 - #simpleiot Slack channel is available on 87 [gophers.slack.com](https://gophers.slack.com/messages/simpleiot/) 88 - open a Github issue 89 - [Simple IoT YouTube channel](https://www.youtube.com/@simple-iot) 90 - subscribe to our [email newsletter](https://tmpdir.ck.page/196d1fb480) for 91 project updates. 92 93 If you use this project, please let us know! It is really helpful to hear from 94 users. 95 96 ## License 97 98 Apache Version 2.0 99 100 ## Contributors 101 102 Thanks to contributors: 103 104 <a href="https://github.com/simpleiot/simpleiot/graphs/contributors"> 105 <img src="https://contrib.rocks/image?repo=simpleiot/simpleiot" /> 106 </a> 107 108 Made with [contrib.rocks](https://contrib.rocks).