Kurzes ToDo, wie man Sensoren von MobileAlerts mit NodeJs, Synology und MQTT Server in HomeAssistant einbinden kann.
Vorwort
Ich war schon länger auf der Suche nach bezahlbaren Thermometer, die ich in HomeAssistant einbinden kann. Was ich vermeiden wollte, ist eine zwingende Cloud Anbindung. Einfach aus dem Grund, dass ich mir nicht Sensoren zulegen wollte, wo nach einigen Jahren beschlossen wird, die Cloud Anbindung dafür einfach einzustellen.
Ich bin dann über MobileAlerts gestolpert!
Diese haben zwar eine Cloud Anbindung, aber es gibt dafür auf GitHub einen Server, der als Proxy dient. Der Proxy kann die Daten interpretieren, und wenn gewünscht, werden diese danach noch an die MobileAlerts Cloud weitergeleitet, damit man die App verwenden kann.
Leider erfüllten sie nicht ganz dem 2ten Wunsch. Ich wollte ein weiteres Gateway vermeiden, aber ZigBee oder WLAN Sensoren waren ohne Cloud nicht wirklich zu finden. Nachdem mit einem Gateway mehrere Sensoren betrieben werden können, konnte ich darüber einmal hinwegsehen!
Vorbereitung
- Ein Sensor und ein Gateway von MobileAlerts, zb. „Mobile Alerts MA 10001 Starter Set Hausüberwachungssystem„
- Konfigurieren vom MobileAlerts Gateway
- Installation von Node.js auf einem NAS von Synology
- Installation und Konfiguration von MMMMobileAlerts
- Installation und Konfiguration eines MQTT Server in Home Assistant
- Start/Stop Skript damit mobilealerts.js automatisch gestartet wird
- Konfiguration von Home Assistant damit die Temperatur angezeigt wird
WICHTIG: Sensor und Gateway von MobileAlerts
Es sind nicht alle Sensoren und alle Werte von MobileAlerts in MMMMobileAlerts abgedeckt. Ein Liste der mögliches Sensoren findet man hier:
auch gibt es zwei unterschiedliche Versionen, bitte dazu unbedingt hier nachlesen:
Folgende Sensoren laufen bei mir:
- Mobile Alerts MA 10001 Starter Set Hausüberwachungssystem inklusive Gatway und Temperatursender MA 10100
- Mobile Alerts MA 10230 Raumklimastation
Konfigurieren vom MobileAlerts Gateway [Update: 2021-03-21]
- Download und Installation von Gateway Advanced Setup von http://www.weatherdirect.com/
Dazu bitte Link „Gateway Advanced Setup software“ suchen - Bei der Konfiguration habe ich folgendes ausgewählt
- PC-IP: Wenn mehrere IP-Adressen (wegen VPN etc.) vorhanden, die aussuchen in dessen Bereich auch das MobileAlerts Gateway vorhanden ist.
- Static IP: sind bei mir irgendwelche Werte drinnen, weil ich DHCP verwende
- Use DHCP: habe ich aktiviert, weil die IP-Konfiguration bei mir über DHCP vom Router läuft
- Use 192.168.0.14 (=IP Adresse vom node.js Server), Port 8080 (= proxyServerPort von config.json vom Plugin)
- „Set“ drücken und danach „Reboot“
- Danach sollte unter der IP-Adresse vom Mobile-Alerts Gateway folgendes zu sehen sein
Synology
Installation
- Unter SynoCommunity findet man, leider eine veraltete, Version von NodeJs. Diese ist aber mit 2 Klicks installiert.
Anleitung zum Hinzufügen der SynoCommunity Paketquellen zum NAS gibt es hier! - Aktivieren des SSH Zugang (Systemsteuerung -> Terminal)
Weitere Einstellungen sind zu diesem Zeitpunkt nicht nötig.
MQTT Server
Installation
Im Community Hass.io Add-On Store befindet sich das Add-On „MQTT Server & Web client“. Die Installation funktioniert ohne Probleme. Die Konfiguration war für mich etwas langwieriger, da ich es noch nie mit einem MQTT Server zu tun hatte. Nachdem starten dauert es eine Weile bis der Server hoch gefahren ist, also etwas Geduld. Der aktuelle Status kann im Log nachgelesen werden.
Konfiguration
Ich habe auf SSL verzichtet, vielleicht werde ich das bei Gelegenheit nachholen.
{ "log_level": "debug", "certfile": "fullchain.pem", "keyfile": "privkey.pem", "web": { "enabled": true, "ssl": false }, "broker": { "enabled": true, "enable_ws": true, "enable_mqtt": true, "enable_ws_ssl": false, "enable_mqtt_ssl": false, "allow_anonymous": false }, "mqttusers": [ { "username": "USERNAME01", "password": "PASSWORD", "readonly": false, "topics": [ "#" ] } ] }
Hive MQ
Wenn man auf „OPEN WEB UI“ klickt, dann öffnet sich der MQTT Webclient HiveMQ. Bei mir ist das Problem, dass die aufgerufene URL https://homeassitant.home.local:5713 ist, ich aber kein HTTPS konfiguriert habe. Wenn man es händisch auf http://homeassistant.home.local:5713 ändert, dann funktioniert es.
Connection
- Broker IP or hostname: IP-Adresse oder Hostname vom HomeAssistant Server (bei mir homeassistant.home.local)
- Port: 1884
- ClientID: hassio-mqtt-client
- Username: USERNAME01
- Password: PASSWORD
- SSL: Nein
Subscriptions
- QoS: 2
- Topic: #
MMMMobileAlerts
Installation
- Download der aktuellsten Version von GitHub (https://github.com/sarnau/MMMMobileAlerts)
- Kopieren des Verzeichnis „maserver“ auf das Synology NAS
- mit SSH verbinden
- ins Verzeichnis von „maserver“ wechseln
- mit „sudo npm install“ installieren
- danach mit „node mobilealerts.js“ schauen, ob es funktioniert!
- siehe dazu auch die Anleitung unter https://github.com/sarnau/MMMMobileAlerts/tree/master/maserver
Konfiguration
config.json
{ "localIPv4Address": "IPADRESSE_VOM_SYNOLOGY_NAS", "mqtt": "mqtt://IPADRESSE_VON_HOMEASSISTANT", "mqtt_home": "MobileAlerts/", "mqtt_username": "USERNAME01", "mqtt_password": "PASSWORD", "logfile": "./MobileAlerts.log", "logGatewayInfo": false, "proxyServerPort": 8080, "mobileAlertsCloudForward": false, "serverPost": null, "serverPostUser": "", "serverPostPassword": "" }
Startskript
Damit das NAS beim Starten auch den MMMobileAlerts Server startet, habe ich 2 Sktipte auf dem NAS hinterlegt.
/etc/init/mmmobilealerts.conf
# only start this service after the httpd user process has started start on started httpd-user # stop the service gracefully if the runlevel changes to 'reboot' stop on runlevel [06] # exec the process. Use fully formed path names so that there is no reliance on # the 'www' file is a node.js script which starts the foobar application. exec /volume1/Server/NodeJs/maserver/mobilealerts.sh
/volume1/Server/NodeJs/maserver/mobilealerts.sh
#!/bin/bash startme() { cd /volume1/Server/NodeJs/maserver/ node mobilealerts.js } startme
Starten
Es gibt 2 Möglichkeiten den Server zu starten
- Synology NAS neustarten
- Im Terminal folgendes eingeben:
> sudo start mmmobilealerts
Ausgabe sollte dann sein:
> mmmobilealerts start/running, process XXXX
Home Assistant
Was an MQTT geschickt wird, kann man gut im HiveMQ sehen. Bei meinem Sensor zum Beispiel
Konfiguration
configuration.yaml
# Sensor sensor: !include sensors.yaml #################################################### # # # ACCESSPOINTS # # # #################################################### mqtt: broker: a0d7b954-mqtt username: !secret mqtt_username password: !secret mqtt_password client_id: home-assistant
sensors.yaml
########################################## # # # MQTT/MOBILE ALERTS # # # ########################################## - platform: mqtt name: "mmm_02576xxxxxxx_temperature" state_topic: "MobileAlerts/02576XXXXXX/json" unit_of_measurement: '°C' value_template: "{{value_json.temperature[0]}}"
- state_topic:
- Die Nummer 02576XXXXXX entspricht der Nummer die am MobileAlerts Sensor steht!
Buchstaben in der Nummer müssen KLEIN geschrieben werden! - Der ganze Pfad entspricht dem „Topic“ unter HiveMQ.
- Die Nummer 02576XXXXXX entspricht der Nummer die am MobileAlerts Sensor steht!
Ergebnis
Wenn alles funktioniert, und HomeAssistant konfiguriert ist, sollte man folgendes unter „Temperatur WZ“ sehen
Update 2021-03-21
Im Zuge des Kommentar von Kerim, habe ich mir Alternativen angeschaut und bin über das Home Assistant Plugin „Weather Station MQTT“ gestolpert. Mit Hilfe des Plugins ist ein extra node.js Server überflüssig geworden.
Die Installation und Konfiguration habe ich in folgendem Beitrag zusammen gefasst: HomeAssistant – MobileAlerts Sensoren einbinden mit Hilfe vom Plugin “Weather Station MQTT”
Links
- Synology hinzufügen der SynoCommunity Paketquellen
https://synocommunity.com/#easy-install - MMMMobileAlerts auf GitHub
https://github.com/sarnau/MMMMobileAlerts - MQTT Server & Web client auf GitHub
https://github.com/hassio-addons/addon-mqtt/blob/master/README.md - MQTT Server & Web client auf Home Assistant Forum
https://community.home-assistant.io/t/community-hass-io-add-on-mqtt-server-web-client/70376 - Home Assistant
https://www.home-assistant.io/
AMAZON Links
- Mobile Alerts MA 10001 Starter Set Hausüberwachungssystem,2-teilig, inklusive Gateway und Temperatursender MA 10100 (mit Alexa kompatibel) zur Temperaturüberwachung, 4×2,5×10,3cm
- Mobile Alerts MA 10230 Raumklimastation + MA 10001 Starter Set Hausüberwachungssystem,2-teilig weiß, 4 x 2,5 x 10,3 cm
- Mobile Alerts Zusatzsensor MA 10200 – Thermo – Hygro-Sensor mit Datenübertragung auf das Smartphone, mit Alexa kompatibel, Temperatur- und Luftfeuchteüberwachung, 9 x 7 x 18 cm
- Technoline MA 10410 Wetterstation mit Anbindung zum MOBILE ALERTS Haus-Überwachungs-System
Alle Angaben ohne Gewähr!
In diesem Artikel sind Partnerlinks enthalten.
Durch einen Klick darauf gelangt man direkt zum Anbieter.
Hi Michael,
ich bin wieder ein Stück weiter…
Hab es geschafft mit einem Sensor sie Temperatur anzuzeigen 🤗🤗
Nun benötige ich für die unterschiedlichen Sensoren die Konfiguration also die Infos die in Sensors.yaml rein müssen 🙈
Sorry für die lei Begriffe…
Woher bekomme ich die Befehle wenn man selbst es nicht schreiben kann?
Hi Michael,
ich hab mal den MQTT Broker genommen.
Hier bekomme ich in der Weather Station MQTT Protokoll folgende Info:
### MQTT server is connected
undefined MobileAlerts/072528bfe4bf/json {„in“:{„temperature“:[24.7,24.6],“humidity“:[35,35]},“out“:{„temperature“:[1.6,1.8],“humidity“:[67,67]},“id“:“072528bfe4bf“,“t“:“2021-03-19T19:23:27.000Z“,“offline“:false}
### Offline state undefined {„temperature“:[0.5,19.7,14.9,22.7],“humidity“:[87,49,56,43],“id“:“1148a76fa501″,“t“:“2020-12-31T15:43:43.000Z“,“offline“:true}
undefined MobileAlerts/030b7c491bdf/json {„temperature“:[19.2,19.2],“humidity“:[43,43],“id“:“030b7c491bdf“,“t“:“2021-03-19T19:23:28.000Z“,“offline“:false}
undefined MobileAlerts/0213c3c841f4/json {„temperature“:[6.8,6.8],“id“:“0213c3c841f4″,“t“:“2021-03-19T19:23:41.000Z“,“offline“:false}
undefined MobileAlerts/0308061a7674/json {„temperature“:[19.9,19.9],“humidity“:[41,41],“id“:“0308061a7674″,“t“:“2021-03-19T19:23:57.000Z“,“offline“:false}
undefined MobileAlerts/072528bfe4bf/json {„in“:{„temperature“:[24.6,24.7],“humidity“:[34,35]},“out“:{„temperature“:[1.4,1.6],“humidity“:[68,67]},“id“:“072528bfe4bf“,“t“:“2021-03-19T19:30:27.000Z“,“offline“:false}
undefined MobileAlerts/030b7c491bdf/json {„temperature“:[19.2,19.2],“humidity“:[42,43],“id“:“030b7c491bdf“,“t“:“2021-03-19T19:30:30.000Z“,“offline“:false}
undefined MobileAlerts/0213c3c841f4/json {„temperature“:[6.8,6.8],“id“:“0213c3c841f4″,“t“:“2021-03-19T19:30:41.000Z“,“offline“:false}
undefined MobileAlerts/0308061a7674/json {„temperature“:[19.9,19.9],“humidity“:[41,41],“id“:“0308061a7674″,“t“:“2021-03-19T19:31:00.000Z“,“offline“:false}
Irgendwie hat schon die Sensoren mal erkannt. Aber die Übertragung hat nur einmal stattgefunden.
vermutlich ist es etwas kleines… aber ich komme nicht dahinter 🙁
Hallo,
na das schaut ja schon super aus. Läuft noch das Plugin? Kommt dort etwas in den Logs an?
Michael
Hallo Michael,
vielen vielen Dank! Super freundlich und hilfsbereit 🙂
2 Punkte bekomme ich nicht hin 🙁
1. der MQTT startet irgendwie nicht… Fehler Connect failed: AMQJS0007E Socket Error: undefined
Protokoll steht aber das er läuft… Wenn ich die Einstellungen so nehme wie du es beschrieben hast also Copy+Paste (username + PW ändern) bringt er Fehler.
2. Die Konfiguration vom Sensor – das runterladen und im lokalen Store installieren hat funktioniert
Weather Station MQTT ist installiert – Konfiguration wie beschrieben angepasst.
Mobile alerts Gateway hat funktioniert
Falls es einfacher ist, könntest auch gerne per Teamviewer drauf oder so… Ansonsten danke ich dir natürlich für alles was du bisher getan hast!
Meine Telefon Nummer 017**********
Viele Grüße
Kerim
Hi,
vielen Dank im voraus schon einmal!
Zur Bestandsaufnahme:
-HA läuft auf Pi4
-MQTT wurde ebenfalls schon installiert
– eine Basisstation mit Außentemperaturanzeige + 2 Raum inkl. Luftfeuchtigkeitssensoren + 1 Temperatursensor.
Kein NAS kein Synology
Vg
Hallo,
sorry für die späte Antwort. Aber ich bin gestern über das Home Assistant Plugin „Weather Station MQTT“ gestolpert. Das macht das NAS oder einen anderen Server und node.js überflüssig. Hab auch gleich mal einen (noch nicht ganz fertigen) Beitrag verfasst.
Vielleicht kommst Du damit weiter …
Home Assistant – MobileAlerts Sensoren einbinden mit Hilfe vom Plugin “Weather Station MQTT”
Helfe gerne weiter, wenn irgendwas unklar ist.
Michael
Hallo Michael,
vielen Dank für die Nachricht. Grundsätzlich ist das auch in Ordnung. Allerdings, ist die Beschreibung ohne Fachkenntnisse etwas schwierig umzusetzen. Die Schritte sind nicht einzeln beschrieben. Aus dem Grund suche ich nach einer Möglichkeit/Hilfe die einfacher ist bzw. eine Beschreibung die Schritt für Schritt erklärt.
Weis grad nicht mehr weiter… 🙁
Viele Grüße
Kerim
Hallo,
alles klar, vielleicht kann ich helfen. Was gibt es denn schon?
* Ein Sensor und ein Gateway von MobileAlerts, zb. “Mobile Alerts MA 10001 Starter Set Hausüberwachungssystem“
* Installation und Konfiguration eines MQTT Server in Home Assistant
Denke die 2 Schritte sind erledigt, oder?
* Installation von Node.js auf einem NAS von Synology
* Installation und Konfiguration von MMMMobileAlerts
gibt es irgendwo ein lauffähiges node.js?
Michael
Hallo Michael & Jakob,
seit der Zusammenfassung vom Michael hat sich doch einiges bei Hassio getan. Aus dem Grund, ist es für mich mit der aktuellen Version so nicht mehr ganz verständlich (wahrscheinlich hätte ich es früher überhaupt nicht kapiert) aber heute ist doch schon einiges einfacher.
Ich bin gerade dabei mir einen Hassio mit einem Pi4 einzurichten. Leider habe ich wenig Kenntnisse mit dem programmieren…(man lernt nie aus) Aber man bekommt heutzutage doch schon sehr gute Info´s über YT und andere Plattformen.
Viele Dinge habe ich bereits hinbekommen. Aber bei den MobileAlerts Sensoren benötige ich noch Hilfe.
MQTT hab ich bereits installiert.
Muss man die Sensoren noch zusätzlich irgendwo in einem Ordner eintragen? Oder ist es möglich über http://www.data199.com mit der entsprechenden Telefon ID alle Sensoren die hinterlegt sind automatisch einzubinden?
Gibt es einen fertigen text.yaml wo ich kopieren kann?
Sorry für die blöden Fragen…
Vielen Dank schon im Voraus 🙂
Hallo,
mit Hilfe von MMMMobileAlerts (https://github.com/sarnau/MMMMobileAlerts/tree/master/maserver) sparst Du Dir die Cloud. Und das war auch gewollt von mir, nachdem ich versuche soviel wie möglich ohne irgendeiner Cloud auszukommen.
Nachdem ich HomeAssistant auch am Handy verwende, brauche ich also nicht extra die App von MobileAlerts.
Michael
Lieber Michael,
vielen Dank für die tolle Anleitung! Wir hatten allerdings folgende Probleme:
Nachdem HiveMQ auf HomeAssistant unter Deprecated läuft haben wir es mit Mosquitto versucht, anfangs allerdings erfolglos. Mosquitto schien zu funktionieren aber keine Messages zu verarbeiten. Auch eine Neuinstallation von Mosquitto brachte keine Abhilfe. Nach langem Suchen haben wir einen Foreneintrag gefunden, bei dem darauf hingewiesen wurde, dass bei einer Neuinstallation von Mosquitto unbedingt auch die Integration zu entfernen ist. Sprich: 1. Mosquitto deinstallieren 2. Mosquitto Integration entfernen 3. Neuinstallation von Mosquitto
der mosquitto broker brauchte keine weitere konfiguration
auch keine subscription
In unserem Fall reichte es dann folgendes in die configuration.yaml einzutragen:
# Sensor
sensor: !include sensors.yaml
####################################################
# #
# ACCESSPOINTS #
# #
####################################################
mqtt:
broker: IPADRESSE VON HOMEASSISTANT
username: USER WELCHEN WIR IN HOMEASSISTANT ANGELEGT HABEN
password: DAZUGEHÖRIGES PW
client_id: home-assistant-mqtt
ähnlich wie oben
genauso die sensors.yaml wie oben beschrieben,
und schon lief es,
ich möchte dies nur hier hinterlegen, um weiteren anwendern eine lange suche zu ersparen!
herzlichen dank für die tolle beschreibung und alles gute!!!
Hallo, vielen Dank für die Ergänzung. Werde wohl auch bald umsteigen.
Michael