The Design

The relay module for the smoke detector only provides a closure (or open, or both) when the detector is in the alarm state. This isn't good enough for me. I want the alarm state to turn the printer off and keep it off until I manually intervene. To solve that, I coupled it with a SPDT latching relay. One position is `Normal` and one is `Off`. The Smoke detector triggeres the latching relay into the `Off` state (via the relay module) and a reset button resets it back into the `Normal` state. That solved the logic, but the latching relay I found was better suited for low-voltage, so I needed something to handle the 120v AC to turn the printer on and off. A little searching turned up a small power strip designed for IoT applications.
It accepts a low voltage DC input to turn the AC outlets on and off.

With the theoretical design worked out, it's time to actually put this thing to paper.

The Components

Any AC powered First Alert smoke detector with the orange interconnect wire will work with the RM4 Accessory Relay. Alternatively, If you'd prefer to use another brand (such as Kidde), a matching set of smoke detector and accessory relay that provides a dry contact closure on alarm would work just as well.

The latching relay module was selected on the basis that it used an actual latching relay. Many of the others I looked at were regular (non-latching) relays, using electronics to maintain the latching state. I wanted to have confidence that it would hold its state, even if the power was becoming unreliable (for instance, if the printer was on fire).

The "IoT AC Relay" was the hardest part to source. I wanted something that I could provide with a low-voltage input and it would turn the printer on (and thus off, in the absence of a signal). I did not want to rely on something that required significant infrastructure, such as a Smart Outlet. If my printer is trying (or succeeding) to burn my house down, it needs to be easy to turn it off. I finally found this little power-strip looking device, with an always-on, normally-on, and two normally-off outlets. It has an opto-isolated input that will take anywhere from 3.3V up to 48V DC, perfect for the 12VDC I intend to run everything at (I have a lot of 12V power adapters).

Additionally, I used some push buttons and 12V indicators to change and display the normal/alarm state of the assembled device. I use it as my main power-off for the 3D printer when it's not in use.