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!

 

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

  1. Hallo zusammen

    Neuerdings bekomme ich immer checksum errors. Die Werte können nicht mehr ausgelesen werden:

    ### MQTT server is connected
    ### Checksum error: d26148820116031005040200000000420a0000400a001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000

    Bis vorgestern 23:30 ging es, seither nicht mehr.

    Jemand eine Idee was das sein kann?

    Grüsse
    Marco

    • Hallo,
      wenn der Sensor mit Batterie läuft, würde ich da mal schauen, ob man sie nicht austauschen muss. Ansonsten das Gateway mal stromlos machen. Denke aber dass das schon gemacht wurde, oder?
      Michael

  2. Hallo Michael,

    vielen Dank für die tolle Arbeit!

    Bei mir kommt es jedoch bei der Installation des lokalen Add-Ons (weather_station_mqtt) zu folgendem Fehler:

    Add-on konnte nicht installiert werden
    The command ‚/bin/ash -o pipefail -c apk add –no-cache nodejs-npm‘ returned a non-zero code: 1

    Hast du vllt. eine Idee wo ich hier das Problem liegt bzw. wo man zur Problemlösung ansetzen kann?

    LG

    • Hallo,
      leider kenn ich den Fehler nicht.
      Heißt der Command wirklich /bin/ash?
      Ich weiß nur, dass wenn im Unterverzeichnis „maserver“ das File config.json gegeben hat, dass es Probleme bei der Installation gab, die config.json gehört ins root von weatcher_station_mqtt. Leider weiß ich nicht mehr die Fehlermeldung.
      Michael

  3. Vielen Dank für Anleitung. Bei mir läuft es aktuell noch gemäss der alten.

    Aber diese tolle Arbeit hat mir den Kauf einer neuen Wetterstation erspart!

    Eine Frage, ich habe folgende Wetterstation:
    https://www.digitec.ch/de/s1/product/tfa-weatherhub-wetterstation-6991146?supplier=406802

    Ich bin bei Regen und Wind unsicher, ob meine Formel passt.
    Habe sie gemäss dieser Seite erstellt:
    https://github.com/sarnau/MMMMobileAlerts/blob/master/MobileAlertsDevices.markdown

    Regen Anzahl Flips, bzw. count() durch 3.33 (in Grafana). Meiner Meinung nach passt das mehr oder weniger. Habt ihr da andere Werte genommen?
    Bei Wind steht auf der Seite der Wert wäre in m/s, sprich mit Faktor 3.6 müsste es ja km/h ergeben. Jedoch stimmt das dann hinten und vorne nicht. Habe nochmals einen Faktor von 2.5 drauf gepackt, dann entspricht es in etwa den Werten vom Wetterbericht, aber es fühlt sich etwas gewürfelt an. Hat auch hier jemand Erfahrungswerte?

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

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

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

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

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


*


61 − 52 =