Home Assistant – MobileAlerts Sensoren einbinden

(C) 107er BLOG

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:

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

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

  1. Synology NAS neustarten
  2. 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.

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

AMAZON Links

 

Alle Angaben ohne Gewähr!

In diesem Artikel sind Partnerlinks enthalten.
Durch einen Klick darauf ge­lan­gt man direkt zum Anbieter. 

 

12 Kommentare zu "Home Assistant – MobileAlerts Sensoren einbinden"

  1. 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?

  2. 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 🙁

  3. 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

  4. 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

  5. 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

  6. 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 🙂

  7. 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!!!

Einen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


74 − 65 =