Spacestate sensors
Project: Spacestate sensors | |
---|---|
Featured: | Yes |
State | Active |
Members | Xopr |
GitHub | SpaceAPI-sensors |
Description | You can't manage what you don't measure |
Picture | |
This project ties strongly with the MQTT setup (to connect to the SpaceAPI) as it uses Tasmota on ESP devices for feature bang and ease of use.
Note that you're more than welcome to add any sensor (or actuator) that you might see fit for our hackerspace. Think: 3D printer nozzle temperature or filament weight, outside radiation, air quality, motion sensing, window opener and the likes; this project is proof anyone that can handle a screwdriver and PC can do this.
Contents
synopsis
Create a modular repository of sensors and outputs to keep an eye on temperatures (and/or other stuff), especially for monitoring the server room, and optionally, the [sl|h|st]ackspace(s), including the space state switch.
intro
After some iterations of the Space state switch and some versions of the Spacestate indicator, some different types of temperature sensors, it was time to make it easy on ourselves: switch to MQTT and use Tasmota.
In most cases, an off-the-shelf ESP device will suffice, but since not all devices are not galvanically isolated from mains, it's more practical to use an ESP-12 PCB for things where contacts are bare (like the Space state switch).
Here are the steps to setup such a device
configuring a spacestate sensor from scratch
Most of this (apart from the MQTT configuration) only applies to the Spacestate sensor board (see image); it will setup a pinout template that matches the board.
- Under Configuration, click Configure Other
- Paste this template:
{"NAME":"ACKsensor","GPIO":[0,0,0,0,0,0,0,0,1,0,0,0,1,1],"FLAG":0,"BASE":18}
and check Activate - Fill in Device Name (
ACKtemp
orACKstate
) and Friendly Name 1 (Space state switch
or leave as is) - Save (will reboot)
- Click Configure Module
- Make sure Module type is
ACKsensor (0)
- Set functions for GPIO17 (ADC), GPIO16 (Typically
Switch 1
orButton 1
) and GPIO12 (DS18x20
which is connected to 3.3v using ~4k7 pull up), see GPIO-Conversion for details - Save (will reboot again)
- Click Configure MQTT
- Set Host (
192.168.1.42
), User (temperature
orspacestate
), Password (currently, only xopr knows these passwords), Topic (temperature
,switch
orspacestate
) and Full Topic (ackspace/hackspace/%topic%/%prefix%/
) - Save (will reboot yet again)
notes and troubleshooting
ADC/GPIO17
Note that the analog in is 0-1V maximum; use a voltage divider to limit its input (also see the Tasmota ADC and calibration/tuning pages).
multiple switches on the spacestate sensor
If you want to provide MQTT state for multiple switches without having corresponding relay outputs, you need some rule magic; see this rule section to do so.
other devices (switches)
Note that the space has a modified sonoff POW (old revision) that allows switching with a regular toggle switch while able to monitor the power usage.
It uses the following template:
{"NAME":"Dangerous POW","GPIO":[32,160,0,0,0,2592,0,0,224,2656,2688,288,0,0],"FLAG":0,"BASE":6}
Note that while the GPIO is 5V relative to GND, it most likely is 225V above earth potential: insulate well and never connect it to your PC.
recovery
When a device doesn't respond or won't connect to wifi, you might need to trigger recovery mode by:
- power it off for 30 seconds
- power on 7 times with less than 10 second interval
Note that this only works if SetOption65
is 0
(which one would have disabled if brown-outs occur often.