<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://krillswarm.com/</id><title>Krill</title><subtitle>Krill is a powerful open-source platform for Raspberry Pi automation, Zigbee device control, sensor monitoring, and decentralized mesh networking. Manage GPIO pins, serial devices, MQTT, webhooks, and more from Android, iOS, desktop, or web.</subtitle> <updated>2026-06-09T07:18:13-04:00</updated> <author> <name>Sautner Studio LLC</name> <uri>https://krillswarm.com/</uri> </author><link rel="self" type="application/atom+xml" href="https://krillswarm.com/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://krillswarm.com/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Sautner Studio LLC </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title><i class="fa-duotone fa-timer fa-xl"></i> Timers</title><link href="https://krillswarm.com/posts/2026/05/31/timer-trigger/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-timer fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Timers" /><published>2026-05-31T09:00:00-04:00</published> <updated>2026-05-31T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/31/timer-trigger/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/31/timer-trigger/" /> <author> <name>bsautner</name> </author> <category term="Compute" /> <summary>Delay an action by a fixed duration after a trigger fires — and cancel the countdown with a reset before it completes.</summary> </entry> <entry><title><i class="fa-duotone fa-server fa-xl"></i> Krill Server Node</title><link href="https://krillswarm.com/posts/2026/05/21/krill-server-node/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-server fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Krill Server Node" /><published>2026-05-21T11:00:00-04:00</published> <updated>2026-05-21T11:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/krill-server-node/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/krill-server-node/" /> <author> <name>bsautner</name> </author> <category term="Krill Server" /> <summary>Set up a Krill server on a Raspberry Pi or Linux host to manage GPIO pins, serial devices, sensors, and automation across your network.</summary> </entry> <entry><title><i class="fa-duotone fa-bolt fa-xl"></i> Triggers</title><link href="https://krillswarm.com/posts/2026/05/21/triggers/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-bolt fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Triggers" /><published>2026-05-21T10:45:00-04:00</published> <updated>2026-05-21T10:45:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/triggers/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/triggers/" /> <author> <name>bsautner</name> </author> <category term="Compute" /> <summary>Triggers decide when home automation runs — fire on sensor thresholds, schedules, button presses, or incoming webhooks to start an action.</summary> </entry> <entry><title><i class="fa-duotone fa-bolt fa-xl"></i> Executors</title><link href="https://krillswarm.com/posts/2026/05/21/executors/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-bolt fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Executors" /><published>2026-05-21T10:30:00-04:00</published> <updated>2026-05-21T10:30:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/executors/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/executors/" /> <author> <name>bsautner</name> </author> <category term="Compute" /> <summary>Executors are the action nodes in a home automation workflow — send alerts, run scripts, call webhooks, and control devices when a trigger fires.</summary> </entry> <entry><title><i class="fa-duotone fa-clone fa-xl"></i> Server Backup</title><link href="https://krillswarm.com/posts/2026/05/21/server-backup/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-clone fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Server Backup" /><published>2026-05-21T10:00:00-04:00</published> <updated>2026-05-21T10:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/server-backup/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/server-backup/" /> <author> <name>bsautner</name> </author> <category term="Krill Server" /> <summary>Automated Krill Server backup with configurable retention and one-click restore — compressed archives of node data, snapshot history, project files, and camera thumbnails.</summary> </entry> <entry><title><i class="fa-duotone fa-gauge-min fa-xl"></i> Discard Below Filter</title><link href="https://krillswarm.com/posts/2026/05/21/discard-below-filter/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-gauge-min fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Discard Below Filter" /><published>2026-05-21T09:15:00-04:00</published> <updated>2026-05-21T09:15:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/discard-below-filter/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/discard-below-filter/" /> <author> <name>bsautner</name> </author> <category term="Data Points" /> <summary>Filter out dropouts and invalid readings by ignoring any sensor value below a minimum you set before it's stored.</summary> </entry> <entry><title><i class="fa-duotone fa-gauge-max fa-xl"></i> Discard Above Filter</title><link href="https://krillswarm.com/posts/2026/05/21/discard-above-filter/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-gauge-max fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Discard Above Filter" /><published>2026-05-21T09:10:00-04:00</published> <updated>2026-05-21T09:10:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/discard-above-filter/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/discard-above-filter/" /> <author> <name>bsautner</name> </author> <category term="Data Points" /> <summary>Filter out sensor spikes and bad readings by ignoring any value above a maximum you set before it's stored.</summary> </entry> <entry><title><i class="fa-duotone fa-reply-clock fa-xl"></i> Debounce Filter</title><link href="https://krillswarm.com/posts/2026/05/21/debounce-filter/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-reply-clock fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Debounce Filter" /><published>2026-05-21T09:05:00-04:00</published> <updated>2026-05-21T09:05:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/debounce-filter/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/debounce-filter/" /> <author> <name>bsautner</name> </author> <category term="Data Points" /> <summary>Throttle noisy or chatty sensors — rate-limit readings so a value is only logged once per set time interval.</summary> </entry> <entry><title><i class="fa-duotone fa-skull-cow fa-xl"></i> Deadband Filter</title><link href="https://krillswarm.com/posts/2026/05/21/deadband-filter/" rel="alternate" type="text/html" title="&amp;lt;i class=&amp;quot;fa-duotone fa-skull-cow fa-xl&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Deadband Filter" /><published>2026-05-21T09:00:00-04:00</published> <updated>2026-05-21T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/21/deadband-filter/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/21/deadband-filter/" /> <author> <name>bsautner</name> </author> <category term="Data Points" /> <summary>Smooth noisy sensor data by ignoring small changes — only log a new reading when the value moves more than a set amount.</summary> </entry> <entry><title>How Nodes, Verbs, and Sources Work</title><link href="https://krillswarm.com/posts/2026/05/18/how-nodes-verbs-and-sources-work/" rel="alternate" type="text/html" title="How Nodes, Verbs, and Sources Work" /><published>2026-05-18T09:00:00-04:00</published> <updated>2026-05-18T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/05/18/how-nodes-verbs-and-sources-work/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/05/18/how-nodes-verbs-and-sources-work/" /> <author> <name>bsautner</name> </author> <category term="Guide" /> <summary>How a home automation swarm works in Krill - independent nodes that watch their data sources and act on their own, with no central controller.</summary> </entry> <entry><title>How I use multiple agents for CI/CD on a complex Kotlin Multiplatform Project</title><link href="https://krillswarm.com/posts/2026/04/29/blog-agentic-sdd/" rel="alternate" type="text/html" title="How I use multiple agents for CI/CD on a complex Kotlin Multiplatform Project" /><published>2026-04-29T09:00:00-04:00</published> <updated>2026-04-29T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/29/blog-agentic-sdd/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/29/blog-agentic-sdd/" /> <author> <name>bsautner</name> </author> <category term="Guide" /> <summary>How my staff of Claude agents runs a full spec-driven development pipeline for Krill, my Kotlin Multiplatform IoT control system, with zero human labor on the implementation of features and fixes.</summary> </entry> <entry><title>Krill MCP &amp; Claude Skill on macOS</title><link href="https://krillswarm.com/posts/2026/04/29/claude-desktop-macos/" rel="alternate" type="text/html" title="Krill MCP &amp;amp; Claude Skill on macOS" /><published>2026-04-29T09:00:00-04:00</published> <updated>2026-04-29T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/29/claude-desktop-macos/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/29/claude-desktop-macos/" /> <author> <name>bsautner</name> </author> <category term="Download" /> <summary>Wire Claude Desktop on macOS up to a local krill-mcp server via the mcp-remote stdio bridge, and install the companion Krill Claude skill so every project gets it.</summary> </entry> <entry><title>Logging Vivarium Temperature and Humidity with an SHT30 and Two Lambdas</title><link href="https://krillswarm.com/posts/2026/04/28/vivarium-sht30-temp-humidity/" rel="alternate" type="text/html" title="Logging Vivarium Temperature and Humidity with an SHT30 and Two Lambdas" /><published>2026-04-28T09:00:00-04:00</published> <updated>2026-04-28T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/28/vivarium-sht30-temp-humidity/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/28/vivarium-sht30-temp-humidity/" /> <author> <name>bsautner</name> </author> <category term="Automate" /> <summary>A QT Py reads an SHT30 over I2C, posts JSON to a Krill DataPoint, and two tiny Python Lambdas fan that one snapshot out into a TempF DataPoint (with C→F conversion) and a Humidity DataPoint.</summary> </entry> <entry><title>New Krill MCP Server Claude Skill</title><link href="https://krillswarm.com/posts/2026/04/25/krill-mcp-claude-skill/" rel="alternate" type="text/html" title="New Krill MCP Server Claude Skill" /><published>2026-04-25T09:00:00-04:00</published> <updated>2026-04-25T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/25/krill-mcp-claude-skill/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/25/krill-mcp-claude-skill/" /> <author> <name>bsautner</name> </author> <category term="Download" /> <summary>Total home automation, process control, and insights with Claude — the Krill Claude skill gives you complete control of your swarm from natural language.</summary> </entry> <entry><title>Krill SDK for Kotlin Multiplatform</title><link href="https://krillswarm.com/posts/2026/04/24/oss-krill-sdk/" rel="alternate" type="text/html" title="Krill SDK for Kotlin Multiplatform" /><published>2026-04-24T09:00:00-04:00</published> <updated>2026-04-24T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/24/oss-krill-sdk/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/24/oss-krill-sdk/" /> <author> <name>bsautner</name> </author> <category term="Download" /> <summary>Develop Home Automation on any Platform with the Krill Kotlin Multiplatform SDK for Java and Kotlin.</summary> </entry> <entry><title>Tracking Planted Aquarium Water Quality</title><link href="https://krillswarm.com/posts/2026/04/22/blog-color-logging-samples/" rel="alternate" type="text/html" title="Tracking Planted Aquarium Water Quality" /><published>2026-04-22T08:00:00-04:00</published> <updated>2026-04-22T08:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/22/blog-color-logging-samples/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/22/blog-color-logging-samples/" /> <author> <name>bsautner</name> </author> <category term="Automate" /> <summary>Logging water-test colors over time with a Raspberry Pi color sensor for aquarium and water-quality monitoring.</summary> </entry> <entry><title>DIY Liquid Color Sensor</title><link href="https://krillswarm.com/posts/2026/04/20/diy-liquid-color-sensor/" rel="alternate" type="text/html" title="DIY Liquid Color Sensor" /><published>2026-04-20T08:00:00-04:00</published> <updated>2026-04-20T08:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/20/diy-liquid-color-sensor/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/20/diy-liquid-color-sensor/" /> <author> <name>bsautner</name> </author> <category term="Automate" /> <summary>Build a calibrated liquid color sensor, track changes over time and get alerts.</summary> </entry> <entry><title>Recurring Tasks &amp; Expiry Automation</title><link href="https://krillswarm.com/posts/2026/04/16/tasklist-reoccurring-expiry/" rel="alternate" type="text/html" title="Recurring Tasks &amp;amp; Expiry Automation" /><published>2026-04-16T09:00:00-04:00</published> <updated>2026-04-16T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/16/tasklist-reoccurring-expiry/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/16/tasklist-reoccurring-expiry/" /> <author> <name>bsautner</name> </author> <category term="Automate" /> <summary>Turn recurring task lists into maintenance reminders that trigger automations when a task becomes due, missed, or overdue.</summary> </entry> <entry><title>Raspberry Pi Kiosk Tutorial — Boot Any Web Page Fullscreen</title><link href="https://krillswarm.com/posts/2026/04/14/raspberry-pi-kiosk-tutorial/" rel="alternate" type="text/html" title="Raspberry Pi Kiosk Tutorial — Boot Any Web Page Fullscreen" /><published>2026-04-14T09:00:00-04:00</published> <updated>2026-04-14T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/14/raspberry-pi-kiosk-tutorial/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/14/raspberry-pi-kiosk-tutorial/" /> <author> <name>bsautner</name> </author> <category term="Krill Server" /> <summary>A no-frills guide to turning a Raspberry Pi into a fullscreen browser kiosk that loads a web page on boot. Works with any URL — local or remote.</summary> </entry> <entry><title>Our Open Source Philosophy</title><link href="https://krillswarm.com/posts/2026/04/07/oss/" rel="alternate" type="text/html" title="Our Open Source Philosophy" /><published>2026-04-07T09:00:00-04:00</published> <updated>2026-04-07T09:00:00-04:00</updated> <id>https://krillswarm.com/posts/2026/04/07/oss/</id> <content type="text/html" src="https://krillswarm.com/posts/2026/04/07/oss/" /> <author> <name>bsautner</name> </author> <category term="Open Source" /> <summary>Krill is free to use with source-available code synced daily to GitHub. Learn what's open, what you can build with it, and how to contribute.</summary> </entry> </feed>
