HomeAssistant – MobileAlerts Sensoren einbinden mit Hilfe vom Plugin “Weather Station MQTT”

(C) 107er BLOG

Nach längerer Zeit habe ich mich nochmals den MobileAlerts Sensoren und HomeAssistant angenommen. Diesmal die Anbindung mit Hilfe des Plugins “Weather Station MQTT”

Vorwort

Im Beitrag “Home Assistant – MobileAlerts Sensoren einbinden”, habe ich die Sensoren über MMMobileAlerts, MQTT Server und Node.js (am NAS) eingebunden. Diesmal bin ich über ein Home Assistant Plugin gestolpert, das Node.js am NAS überflüssig machen würde.

Die Installation und Konfiguration war eigentlich sehr einfach, einzig bis das Add-On im Add-On Shop von Home Assistant aufgetaucht ist, hat es etwas gedauert.

Vorbereitung

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:

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 damals 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

{
  "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": [
        "#"
      ]
    }
  ]
}

Weather_Station_MQTT

Installation

  • Download der aktuellsten Version von GitHub (https://github.com/jakubonty/weather_station_mqtt)
  • Kopieren aller Dateien unter \\homeassistant\addons\weather_station_mqtt
  • config.json konfigurieren, wobei hier nur die Parameter unter “options” interessant sind
    {
      "name": "Weather Station MQTT",
      "version": "0.1",
      "slug": "weather_station_mqtt",
      "url": "https://github.com/jakubonty/weather_station_mqtt",
      "description": "Port of maserver: https://github.com/sarnau/MMMMobileAlerts/tree/master/maserver",
      "arch": ["armhf", "armv7", "aarch64", "amd64", "i386"],
      "startup": "services",
      "boot": "auto",
      "schema": {
        "localIPv4Address": "str",
        "gatewayIPv4Address": "str",
        "mqtt": "str",
        "mqtt_home": "str",
        "mqtt_username": "str",
        "mqtt_password": "str",
        "logfile": "str",
        "logGatewayInfo": "bool",
        "proxyServerPort": "int",
        "mobileAlertsCloudForward": "bool"
      },
      "ports": {
        "8080/tcp": 8080,
        "8080/udp": 8080,
        "8003/udp": 8003
      },
      "options": {
        "localIPv4Address": "[IP_ADRESSE_VON_HOMEASSISTANT]",
        "gatewayIPv4Address": "192.168.0.100",
        "mqtt": "mqtt://[IP_ADRESSE_VON_MQTT_SERVER]",
        "mqtt_home": "MobileAlerts/",
        "mqtt_username": "[MQTT_USERNAME]",
        "mqtt_password": "[MQTT_PASSWORD]",
        "logfile": "./MobileAlerts.log",
        "logGatewayInfo": true,
        "proxyServerPort": 8080,
        "mobileAlertsCloudForward": false
      }
    }
  • WICHTIG: config.json im Ordner “maserver” NICHT erstellen. Sonst hat HomeAssistant Probleme und das Plugin erscheint nicht im Add-On Shop!
  • ADD-ON im Supervisor > Add-On Shop anzeigen und wie ein normales ADD-ON installieren
    Nachdem kopieren und konfigurieren die 3 Punkte und Neu laden klicken, dann sollten ein Abschnitt Local add-ons erscheinen und  das Plugin “Weather Station MQTT” auswähl- und installierbar sein.

Konfigurieren vom MobileAlerts Gateway

  • 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 HomeAssistant Server, da dort das Plugin läuft), 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

Home Assistant

ob was beim Plugin “Weather Station MQTT” ankommt, kann man gut unter dem Reiter “Protokoll” ansehen, bei meinen Sensoren zum Beispiel:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Hello!
v14.16.0
6.14.11
### Local IP address for proxy: 192.168.0.14
(node:202) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
### MQTT server is connected
undefined MobileAlerts/125c3fd8d9ea/json {"temperature":[22.3],"humidity":[55],"averangehumidity":{"3h":54,"24h":54,"7d":55,"30d":55},"id":"12XXXXXXea","t":"2021-03-19T10:25:17.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/03XXXXXXXb3/json {"temperature":[22.7,22.8],"humidity":[60,60],"id":"034cXXXXXfb3","t":"2021-03-19T10:25:43.000Z","offline":false}
undefined MobileAlerts/12XXXXXXX16/json {"temperature":[22.1],"humidity":[56],"averangehumidity":{"3h":55,"24h":54,"7d":55,"30d":56},"id":"126XXXX16","t":"2021-03-19T10:26:45.000Z","offline":false}
undefined MobileAlerts/02XXXXXXX6b/json {"temperature":[21.8,21.8],"id":"02XXXXXXX6b","t":"2021-03-19T10:28:12.000Z","offline":false}
undefined MobileAlerts/12XXXXXXXf3/json {"temperature":[23.7],"humidity":[50],"averangehumidity":{"3h":49,"24h":48,"7d":49,"30d":50},"id":"12XXXXXX3","t":"2021-03-19T10:28:24.000Z","offline":false}
undefined MobileAlerts/03XXXXXXXb3/json {"temperature":[22.7,22.7],"humidity":[60,60],"id":"034cXXXXXfb3","t":"2021-03-19T10:32:45.000Z","offline":false}
undefined MobileAlerts/12XXXXXXX8f/json {"temperature":[21.3],"humidity":[58],"averangehumidity":{"3h":57,"24h":56,"7d":57,"30d":58},"id":"12XXXXX98f","t":"2021-03-19T10:34:18.000Z","offline":false}
undefined MobileAlerts/02XXXXXXX6b/json {"temperature":[21.8,21.8],"id":"02XXXXXX6b","t":"2021-03-19T10:35:15.000Z","offline":false}
undefined MobileAlerts/12XXXXXXXea/json {"temperature":[22.3],"humidity":[56],"averangehumidity":{"3h":54,"24h":54,"7d":55,"30d":55},"id":"12XXXXX9ea","t":"2021-03-19T10:35:18.000Z","offline":false}
undefined MobileAlerts/12XXXXXXX16/json {"temperature":[22.1],"humidity":[56],"averangehumidity":{"3h":55,"24h":54,"7d":55,"30d":56},"id":"12XXXXXX416","t":"2021-03-19T10:36:47.000Z","offline":false}
undefined MobileAlerts/12XXXXXXXf3/json {"temperature":[23.7],"humidity":[50],"averangehumidity":{"3h":49,"24h":48,"7d":49,"30d":50},"id":"12XXXXXX2f3","t":"2021-03-19T10:38:26.000Z","offline":false}
undefined MobileAlerts/03XXXXXXXb3/json {"temperature":[22.7,22.7],"humidity":[60,60],"id":"034cXXXXXfb3","t":"2021-03-19T10:39:47.000Z","offline":false}
undefined MobileAlerts/02XXXXXXX6b/json {"temperature":[21.8,21.8],"id":"02XXXXXX6b","t":"2021-03-19T10:42:19.000Z","offline":false}

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

Links

 

Alle Angaben ohne Gewähr!

 

8 Kommentare zu "HomeAssistant – MobileAlerts Sensoren einbinden mit Hilfe vom Plugin “Weather Station MQTT”"

  1. Super danke jetzt habe ich die Bezeichnung gefunden, ich schau mal was geht.

  2. Hallo Michael, läuft bei mirhabe noch gewisse Sensoren die ich testen möchte, weiss aber keine Lösung für z.B. einen Fühler mit Kabel. also so etwas wie du oben für die Station mit in und out gemacht hast. Eine Idee dazu?

    • Hallo,

      das mit IN/OUT kommt nicht von mir, sondern wird vom Programm MMMMobileAlerts an den MQTT Server gesendet. Wenn es sich beim Fühler um ein MobileAlerts Gerät handelt, dann müsstest Du hier nachschauen ob er in der Kompatibilitätsliste vorkommt. Es werden nämlich nicht alle Geräte unterstützt.

      Wenn es sich um kein MobileAlerts Gerät handelt, dann müsste man ein Programm schreiben, das den Sensor ausliest, und Daten an einen MQTT Server schickt. Danach könnte man den Sensor wie hier beschrieben einbinden. Aber dazu braucht es höchstwahrscheinlich einiges an Arbeit.

      Michael

  3. Ahh und eins noch, ich habe festgestellt, das die Anzeige „zuletzt aktualisiert“ sich nur dann ändert, wenn auch andere Daten, Temperaturen usw. übermittelt werden! Also ist jetzt aktuell 19.9° und es ändert sich die nächste Stunde nicht, dann wird auch 1 Stunde lang an der Anzeige nichts aktualisiert. Im Hintergrund läuft allerdings die Abfrage bzw. Aktualisierung.

    Das nochmal zur Info für alle…

    VG

  4. Hallo Michael,

    es hat funktioniert!

    Vielen Dank für deine Unterstützung!

    Die sensors.yaml kann online auch anderen zu Verfügung gestellt werden! Es gibt einige die danach suchen und es in unterschiedlichen Foren zusammen suchen müssen.

    Falls es mit diesem MQTT nicht funktioniert (wie bei mir) kann ich auch den MQTT Mosquietto Broker empfehlen. Der ist von der Funktionsweise bisschen einfacher.

    Ansonsten, alles andere ausreichend hier beschrieben.

    Vielen Dank Dir!

    VG Kerim

  5. Die Wetterstation übermittelt 2 Temperaturen und 2 Feuchtigkeitssensoren.
    Bei den anderen hab ich es so eingetragen und ich bekomme die Daten übermittelt. Aber die Station müssten man ja splitten können oder?

    Ein anderes Problem ist das es nicht updated. Sporadisch mal 25 min mal 10. Ne Idee?

    #Garagae
    – platform: mqtt
    name: mmm_garage_temperature
    state_topic: “MobileAlerts/0213c3c841f4/json”
    unit_of_measurement: ‘°C’
    value_template: “{{value_json.temperature[0]}}”
    #Selim
    – platform: mqtt
    name: mmm_selim_temperature
    state_topic: “MobileAlerts/030b7c491bdf/json”
    unit_of_measurement: ‘°C’
    value_template: “{{value_json.temperature[0]}}”
    – platform: mqtt
    name: mmm_selim_humidity
    state_topic: “MobileAlerts/030b7c491bdf/json”
    unit_of_measurement: ‘%’
    value_template: “{{value_json.humidity[0]}}”
    #Sema
    – platform: mqtt
    name: mmm_sema_temperature
    state_topic: “MobileAlerts/0308061a7674/json”
    unit_of_measurement: ‘°C’
    value_template: “{{value_json.temperature[0]}}”
    – platform: mqtt
    name: sema_humidity
    state_topic: “MobileAlerts/0308061a7674/json”
    unit_of_measurement: ‘%’
    value_template: “{{value_json.humidity[0]}}”

    #Station
    – platform: mqtt
    name: mmm_station_temperature
    state_topic: “MobileAlerts/072528bfe4bf/json”
    unit_of_measurement: ‘°C’
    value_template: “{{value_json.temperature[0]}}”
    – platform: mqtt
    name: mmm_station_temperature
    state_topic: “MobileAlerts/072528bfe4bf/json”
    unit_of_measurement: ‘%’
    value_template: “{{value_json.humidity[0]}}”

    • Hallo,

      wenn das die Wetterstation ist:
      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}

      versuch mal dafür {{value_json.in.temperature[0]}} und {{value_json.out.temperature[0]}}

      >Ein anderes Problem ist das es nicht updated. Sporadisch mal 25 min mal 10. Ne Idee?
      Das ist leider so, das kommt bei mir auch vor. Ws kann sein, dass wenn sich nichts ändert, dass der Sensor nichts ans Gateway schickt, zweck Energie sparen. Das andere Problem scheint zu sein, glaub ich, dass nur eine bestimmte Anzahl an Antworten der Sensoren vom MobileAlerts Gateway genommen wird. So kommt es dann vor, dass einige Sensoren sich häufig ändern (lt. Zeitstempel), andere Minuten lang nicht. Vielleicht ist es eine Mischung aus beiden.

      Michael

Einen Kommentar hinterlassen

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


*


+ 18 = 22