diff --git a/content/.obsidian/workspace b/content/.obsidian/workspace index ae11e41..1bc5fad 100644 --- a/content/.obsidian/workspace +++ b/content/.obsidian/workspace @@ -4,12 +4,12 @@ "type": "split", "children": [ { - "id": "7f0602e2f0f19f5d", + "id": "e466de4f93356253", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "QotNews.md", + "file": "Sensors.md", "mode": "source", "source": false } @@ -69,7 +69,7 @@ "state": { "type": "backlink", "state": { - "file": "QotNews.md", + "file": "Sensors.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -86,27 +86,28 @@ "state": { "type": "outline", "state": { - "file": "QotNews.md" + "file": "Sensors.md" } } } - ] + ], + "currentTab": 1 } ], "direction": "horizontal", "width": 300 }, - "active": "7f0602e2f0f19f5d", + "active": "e466de4f93356253", "lastOpenFiles": [ - "QotNews.md", + "Sensors.md", "Protospace.md", - "t0txt.md", - "Notica.md", + "Plant Waterer.md", + "QotNews.md", + "Solar Car.md", "Spaceport.md", + "t0txt.md", "Backup Strategy.md", - "p.md", - "media/Screenshot from 2022-05-18 16-24-38.png", - "media/Pasted image 20220518162452.png", - "media/Pasted image 20220518162414.png" + "Notica.md", + "p.md" ] } \ No newline at end of file diff --git a/content/Backup Strategy.md b/content/Backup Strategy.md index 439883f..f588635 100644 --- a/content/Backup Strategy.md +++ b/content/Backup Strategy.md @@ -165,7 +165,7 @@ The `tbotbak` user has write access to the `/mnt/backup/remote/tbotbak` director I run a lot of services for [Protospace](https://protospace.ca/), my city's makerspace. -The member portal I wrote called [Spaceport](https://my.protospace.ca/) creates an archive I download daily: +The member portal I wrote called [[Spaceport]] creates an archive I download daily: ``` 40 10 * * * wget --content-disposition \ diff --git a/content/Sensors.md b/content/Sensors.md new file mode 100644 index 0000000..34925dc --- /dev/null +++ b/content/Sensors.md @@ -0,0 +1,17 @@ +Title: Sensors +Date: 2022-05-24 +Category: Notes +Summary: A dashboard for various sensors around my house. +Short: d + +I wrote a custom [dashboard](https://sensors.dns.t0.vc/) to visualize data from various sensors around my house. I'm a huge fan of sensors because they're at the intersection of what I love: electronics, home automation, and data hoarding. + +You can find the [source code](https://git.tannercollin.com/tanner/sensors) on my Gitea. + +![[sensors1.png]] + +Most of the data is captured by two cheap RTL-SDRs (software-defined radios) that are set to listen to 433 MHz and 915 MHz radio frequencies. I use the open-source project [rtl_433](https://github.com/merbanan/rtl_433) to automatically decode the signals and forward them to an MQTT broker, which is a messaging server that services can publish and subscribe to. Other sensors run an MQTT client directly or expose their data through other means like a web interface that I poll. + +The data gets collected by a central Python script that process and stores it in an InfluxDB database for "efficient" storage. The script also runs a web server that queries the database and exposes the data over an API to the dashboard at various dates and ranges. The dashboard is written in JavaScript / React using a simple chart library. + +My biggest regret was using InfluxDB. It's a stupid database and I wouldn't recommend it to anyone. The documentation is confusing and I ran into timezone issues with `group by time()`. It also assumes the column data type is an integer if your sensor happens to send it a whole number at first and it won't let you change that. Just stick to Postgres / SQLite. \ No newline at end of file diff --git a/content/media/sensors1.png b/content/media/sensors1.png new file mode 100644 index 0000000..bd59e29 Binary files /dev/null and b/content/media/sensors1.png differ