๐Ÿš€ Simple IoT Releases

v0.0.26

  • make description in nats logger and notification messages smarter
  • allow modbus busses to be added to groups as well as devices
  • UI:
    • donโ€™t show node + operation for nodes that canโ€™t have child-nodes
    • force email entry to always be lowercase

v0.0.28

  • modbus: donโ€™t require poll period to be set for modbus server
  • modbus: fix issue with reg values being sent every poll period, even if not
    changing
  • modbus: add timestamp to points being sent out
  • support storing Point data in Influxdb 2.0

You can now configure an InfluxDB 2.0 node at any level. Any data that passes through this node will be logged to Influx.

1 Like

v0.0.29

  • fix sending notifications to a single user through UI

v0.0.30 (upstream sync support)

Demo:

Changes:

  • fix using SIOT_AUTH_TOKEN for -logNats command line option
  • upgrade to NATS 2.2.2. Increases SIOT binary by about 2MB (uncompressed), 1MB
    (compressed)
  • disable badger for now โ€“ can be re-enabled in db/genji.go. Bolt seems to work
    better for the current SIOT use cases and Badger just adds bloat to the
    binary.
  • implement upstream synronization support
    #109
  • update to Genji v0.13.0

v0.0.33

Rule conditions can now be schedules:

image

Quite a bit of effort went into making this work as we display the times in local time in the browser, but store them in UTC in the database. This allows consistent operation no matter what time zone the user is in.

  • improve rule condition processing to process all conditions/points rather than just first match
  • implement schedule conditions for rules
  • switch from github.com/dgrijalva/jwt-go to github.com/golang-jwt/jwt/v4
  • update frontend dependencies to satisify github security checks
  • add rule audio playback action functionality for Linux (requires alsa-utils)
  • fix various bugs with rule schedule condition functionality
  • all using rule active in rule conditions (allows chaining rules)

v0.0.34

Main feature in this release is caching which greatly improves the performance of handling node point updates.

  • handle audio playback where file bitrate does not match default of audio
    device (#240)
  • support rule actions that trigger when rule goes inactive (instead of active).
    This allows a rule to do something with the run goes active as well as
    inactive and in some cases saves us from writing two rules (#241).
  • re-enable indexes on edge up/down fields (#219)
  • add point min/max to NATS packets
  • add NATS api metrics (as points to root device node) (#244)
  • donโ€™t color root node grey for now
  • update influxdb client to 2.5.0
  • switch to async influx DB API (batches data, retries, etc)
  • implement caching of nodes and edges to speed up read access
  • add point processing cycle time and nats client pending messages metrics
  • modbus loglevel 1 only prints errors, 2 now prints transactions
  • web UI auth expires in 24hr instead of 30m โ€“ still not ideal, but one step at
    a time (#249)
  • update front tar package to fix security warnings

quite a bit of features accomplished

v0.0.35

  • add placeholders for some UI forms
  • add disable for Modbus and Modbus client nodes (#250)
  • clean up locking issues and simplify DB code
1 Like

v0.0.36

It is even easier now to embed Simple IoT in your Go app.

  • rename db package to store
  • factor out siot server startup code into simpleiot package. This makes it easier to embed SIOT in other programs.
  • change siot_run in envsetup.sh to go build instead of go run

v0.0.37

  • fix issue with setup where you sometimes get error: elm: Text file busy
  • cleanup simpleiot.Start() so it actually returns

See this example for ideas on how to

Note, the simpleiot.Start() function cannot be used directly because we donโ€™t checkin the frontend assets for the SIOT web ui. See this example for how you can embed SIOT in your project by adding it as a submodule. The go modules replace directive allows you to do some pretty neat stuff.

Testing this in yoe mut branch right now

So its fixed with https://github.com/simpleiot/simpleiot/commit/38e84cbe1f7ff31b33199c06b3fc77191aef6f0b

so I guess updating to 0.0.37 in yoe is on cards :slight_smile:

1 Like

thanks for updating โ€“ this looks good!

v0.0.38

  • fix population of version when building with envsetup.sh
  • changes to point data structure to make it more flexible
    (ADR-1)

This release concludes our first Architectural Decision Record (ADR), and lays the groundwork for a flexible and reliable system.

We now also include releases for the Mac M1 chip.

1 Like

Iโ€™m a little behind on posting releases โ€ฆ

[0.0.42] - 2022-02-22

  • move HTTP API to get nodes for user to use NATS instead of direct call into
    database (#327)
  • BREAKING API CHANGE: the Nats node.<id> subject now returns an array of
    data.NodeEdge structs instead of a single node. Both instances of an
    upstream connection must be upgraded.
  • donโ€™t send deleted nodes to frontend โ€“ may fix #259
  • default to nats/websocket being enabled on port 9222

[0.0.41] - 2022-01-05

  • with v0.0.40, if upstream URI was specified as ws://myserver.com without the
    port being specified, the NATS Go client assumed the port was 4222. If this
    port is not specified for ws or wss protocols, SIOT now sets the port to :80
    or :443. This makes the behavior more predictable, as these kinds of problems
    are very hard to debug. #315
  • if upstream config changes, restart upstream connection. #258

[0.0.40] - 2022-01-03

  • support for NATS over WS connections to upstream. This is handy for cases
    where the edge network may block outgoing connections on the port NATS is
    using. HTTP(s) almost always works. In the upstream config, simply change the
    URL to something like: ws://my.service.com.

[0.0.39] - 2021-12-17

  • fix issue where app exits if upstream auth is incorrect (#298)
  • fix issues with orphaned device nodes in upstreams. We now make sure devices
    in upstream have upstream edges or are not deleted if the device is still
    receiving points. (#299)
  • only report nats stats every 1m. This makes upstream work better as these
    currently are run in sync.

v0.0.44

  • UI: fix bug where copy node crashes UI if not on secure URL or localhost (#341)
  • support clone/duplicate node (as well as mirror) operation (#312). Now when
    you copy and paste a node, you will be presented with a list of options as
    shown below. The new duplicate option allows you to easily replicate complex
    setups (for instance a bunch of modbus points) from an existing site to a new
    site.

copy options

See documenation or a demo video for more information.

1 Like

v0.0.45

  • add DeleteNode, MoveNode, and MirrorNode to
    nats package.
    #344, #347
  • store and display App Version in root node (see screenshot below). This value
    is extracted by the SIOT build using the git describe command. See
    envsetup.sh. #192, #349
  • store and display OS version in root node (see screenshot below). On Linux,
    this value is extracted from the VERSION field in /etc/os-release. The
    field can be
    changed using the
    OS_VERSION_FIELD environment variable. #324, #353
  • update go.bug.st/serial from v1.1.3 โ†’ v1.3.5
  • sort nodes in UI a little nicer, conditions before actions, move more often
    used nodes to the top, etc. #355, #337
  • add NATS user auth API and change HTTP auth to use that. #326, #356
  • fix bug where deleted nodes where still considered for user auth
  • add SIOT JS library using NATS over WebSockets (#357)

and we I have updated yoe distro to use 0.0.45 as well

v0.1.0 1-Wire support

  • docs: add list of supported devices to install
  • docs: add upstream documentation
  • add support for 1-wire buses, and DS18B20 temp sensor #230 #361

See docs: 1-Wire - Simple IoT

1wire support ! Superb