Serial Sensor
The serial
sensor platform is using the data provided by a device connected to the serial port of the system where Home Assistant is running. With ser2net
and socat
would it also work for sensors connected to a remote system.
To check what kind of data is arriving at your serial port, use a command-line tool like minicom
or picocom
on Linux, on a macOS you can use screen
or on Windows putty
.
$ sudo minicom -D /dev/ttyACM0
To setup a serial sensor to your installation, add the following to your configuration.yaml
file:
# Example configuration.yaml entry
sensor:
- platform: serial
serial_port: /dev/ttyACM0
Configuration Variables
- serial_port
-
(string)(Required)Local serial port where the sensor is connected and access is granted.
- name
-
(string)(Optional)Friendly name to use for the frontend. Default to “Serial sensor”.
- baudrate
-
(int)(Optional)Baudrate of the serial port.
Default value: 9600 Bps
- value_template
-
(template)(Optional)Defines a template to extract a value from the serial line.
value_template
for Template sensor
TMP36
"{{ (((states('sensor.serial_sensor') | float * 5 / 1024 ) - 0.5) * 100) | round(1) }}"
Examples
Arduino
For controllers of the Arduino family a possible sketch to read the temperature and the humidity could look like the sample below.
#include <ArduinoJson.h>
void setup() {
Serial.begin(115200);
}
void loop() {
StaticJsonBuffer<100> jsonBuffer;
JsonObject& json = prepareResponse(jsonBuffer);
json.printTo(Serial);
Serial.println();
delay(2000);
}
JsonObject& prepareResponse(JsonBuffer& jsonBuffer) {
JsonObject& root = jsonBuffer.createObject();
root["temperature"] = analogRead(A0);
root["humidity"] = analogRead(A1);
return root;
}
Digispark USB Development Board
This blog post describes the setup with a Digispark USB Development Board.