mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-12 11:56:50 +00:00
Add mysensors device tracker (#1986)
* Add mysensors device tracker * Add release info
This commit is contained in:
parent
e8a25e8194
commit
36698f1227
@ -86,4 +86,4 @@ void loop()
|
|||||||
```
|
```
|
||||||
|
|
||||||
[main component]: /components/mysensors/
|
[main component]: /components/mysensors/
|
||||||
[serial api]: https://www.mysensors.org/download/serial_api_15
|
[serial api]: http://www.mysensors.org/download
|
||||||
|
@ -116,4 +116,4 @@ void incomingMessage(const MyMessage &message) {
|
|||||||
```
|
```
|
||||||
|
|
||||||
[main component]: /components/mysensors/
|
[main component]: /components/mysensors/
|
||||||
[serial api]: https://www.mysensors.org/download/serial_api_15
|
[serial api]: http://www.mysensors.org/download
|
||||||
|
105
source/_components/device_tracker.mysensors.markdown
Normal file
105
source/_components/device_tracker.mysensors.markdown
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
---
|
||||||
|
layout: page
|
||||||
|
title: "MySensors Device Tracker"
|
||||||
|
description: "Instructions how to use MySensors to track devices in Home Assistant."
|
||||||
|
date: 2017-02-06 15:00 +0100
|
||||||
|
sidebar: true
|
||||||
|
comments: false
|
||||||
|
sharing: true
|
||||||
|
footer: true
|
||||||
|
logo: mysensors.png
|
||||||
|
ha_category: Presence Detection
|
||||||
|
featured: false
|
||||||
|
ha_release: "0.38"
|
||||||
|
ha_iot_class: "Local Push"
|
||||||
|
---
|
||||||
|
|
||||||
|
Integrates MySensors device trackers into Home Assistant. See the [main component] for configuration instructions.
|
||||||
|
|
||||||
|
The following sensor types are supported:
|
||||||
|
|
||||||
|
##### MySensors version 2.0 and higher
|
||||||
|
|
||||||
|
S_TYPE | V_TYPE
|
||||||
|
-------------------|---------------------------------------
|
||||||
|
S_GPS | V_POSITION
|
||||||
|
|
||||||
|
For more information, visit the [serial api] of MySensors.
|
||||||
|
|
||||||
|
### {% linkable_title MySensors 2.x example sketch %}
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
/**
|
||||||
|
* Documentation: http://www.mysensors.org
|
||||||
|
* Support Forum: http://forum.mysensors.org
|
||||||
|
*
|
||||||
|
* http://www.mysensors.org/build/gps
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Enable debug prints to serial monitor
|
||||||
|
#define MY_DEBUG
|
||||||
|
// Enable and select radio type attached
|
||||||
|
#define MY_RADIO_NRF24
|
||||||
|
//#define MY_RADIO_RFM69
|
||||||
|
|
||||||
|
#include <MySensors.h>
|
||||||
|
|
||||||
|
#define SN "GPS Sensor"
|
||||||
|
#define SV "1.0"
|
||||||
|
|
||||||
|
// GPS position send interval (in millisectonds)
|
||||||
|
#define GPS_SEND_INTERVAL 30000
|
||||||
|
// The child id used for the gps sensor
|
||||||
|
#define CHILD_ID_GPS 1
|
||||||
|
|
||||||
|
MyMessage msg(CHILD_ID_GPS, V_POSITION);
|
||||||
|
|
||||||
|
// Last time GPS position was sent to controller
|
||||||
|
unsigned long lastGPSSent = -31000;
|
||||||
|
|
||||||
|
// Some buffers
|
||||||
|
char latBuf[11];
|
||||||
|
char lngBuf[11];
|
||||||
|
char altBuf[6];
|
||||||
|
char payload[30];
|
||||||
|
|
||||||
|
// Dummy values. Implementation of real GPS device is not done.
|
||||||
|
float gpsLocationLat = 40.741895;
|
||||||
|
float gpsLocationLng = -73.989308;
|
||||||
|
float gpsAltitudeMeters = 12.0;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void presentation() {
|
||||||
|
sendSketchInfo(SN, SV);
|
||||||
|
present(CHILD_ID_GPS, S_GPS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop()
|
||||||
|
{
|
||||||
|
unsigned long currentTime = millis();
|
||||||
|
|
||||||
|
// Evaluate if it is time to send a new position
|
||||||
|
bool timeToSend = currentTime - lastGPSSent > GPS_SEND_INTERVAL;
|
||||||
|
|
||||||
|
if (timeToSend) {
|
||||||
|
// Send current gps location
|
||||||
|
// Build position and altitude string to send
|
||||||
|
dtostrf(gpsLocationLat, 1, 6, latBuf);
|
||||||
|
dtostrf(gpsLocationLng, 1, 6, lngBuf);
|
||||||
|
dtostrf(gpsAltitudeMeters, 1, 0, altBuf);
|
||||||
|
sprintf(payload, "%s,%s,%s", latBuf, lngBuf, altBuf);
|
||||||
|
|
||||||
|
Serial.print(F("Position: "));
|
||||||
|
Serial.println(payload);
|
||||||
|
|
||||||
|
send(msg.set(payload));
|
||||||
|
lastGPSSent = currentTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
[main component]: /components/mysensors/
|
||||||
|
[serial api]: http://www.mysensors.org/download
|
@ -111,6 +111,7 @@ void incomingMessage(const MyMessage &message) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### {% linkable_title MySensors 2.x example sketch %}
|
### {% linkable_title MySensors 2.x example sketch %}
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
@ -244,5 +245,6 @@ void send_status_message()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
[main component]: /components/mysensors/
|
[main component]: /components/mysensors/
|
||||||
[serial api]: http://www.mysensors.org/download
|
[serial api]: http://www.mysensors.org/download
|
||||||
|
@ -181,4 +181,4 @@ void receive(const MyMessage &message) {
|
|||||||
```
|
```
|
||||||
|
|
||||||
[main component]: /components/mysensors/
|
[main component]: /components/mysensors/
|
||||||
[serial api]: https://www.mysensors.org/download/serial_api_15
|
[serial api]: http://www.mysensors.org/download
|
||||||
|
@ -203,4 +203,4 @@ void incomingMessage(const MyMessage &message) {
|
|||||||
```
|
```
|
||||||
|
|
||||||
[main component]: /components/mysensors/
|
[main component]: /components/mysensors/
|
||||||
[serial api]: https://www.mysensors.org/download/serial_api_15
|
[serial api]: http://www.mysensors.org/download
|
||||||
|
Loading…
x
Reference in New Issue
Block a user