Jbmedia Wetterstation in Homeassistant integrieren

Hallo zusammen,

gibt es eine Möglichkeit die Wetterstation von jbMedia in Home Assistant zu integrieren. Im Moment sendet die Wetterstation “nur” Ereignisse an ein Shelly-Gerät. (wenn Regen dann Lampe). Schön wäre es wenn, z.B. die Windrichtung, Temperatur usw. für ein Dashboard verwendet werden könnte.

vielen Dank.
VG Franz

1 „Gefällt mir“

Hallo Franz,

die Wetterstation gibt auf ihrer IP eine JSON Datei mit den aktuellen Werten aus. Die aktuell zugewiesene IP findest du in deinem Router.

zb. http://192.168.0.10/data.json

Die kannst du im HomeAssistant per REST API in deinem gewählten Zeitintervall anfordern und in Entitäten einlesen. Hierzu müsstest du in der configuration.yaml folgenden Code an deine Umgebung anpassen und einfügen.

Wenn alles klappt, sind die Werte dann im Dashboard einbindbar und für Automationen nutzbar.

Gruß
Micha

Hallo Micha,

das ist perfekt, vielen Dank.

image

VG Franz

Hallo Micha,
wie findet man so etwas raus dass die Station dieser json sendet? Gibt es da ein scantool? Frag mich immer wie Ihr solche genialen Sachen findet und finde das sehr interessant. Danke

Gruß
Tobi

Hallo Tobi,

die Fa. JBMedia hat eine Standard EMOS Wetterstation mit einem WLAN Modul erweitert und bietet das als Komplettpaket an. Neben der direkten Ansteuerung von Shelly Aktoren ist auch das Übertragen der Daten an Smarthome Systeme über json vorgesehen. Das ist also ein beworbenes Feature und nicht zufällig entdeckt :wink:
siehe: Smart Home Wetterstation - jbmedia - Smarthome für Enthusiasten

Gruß
Micha

1 „Gefällt mir“

Hallo MichaS,

gibt es eigentlich auch einen Trick um an die Daten (Temperatur und Luftfeuchtigkeit) im Display zu kommen? Dann könnte man sich ja einen H&T von Shelly sparen :slight_smile:
VG Franz

hi micha,

habe die aktuellste version von HA, und neu in diesem gebiet. kannst du mir erläutern wie die einbindung in HA erfolgt? habe die temperatur und feuchtigkeit hinzugefügt, sehe aber nicht wie es weitergeht. danke dir für diese info.

Hallo zusammen,
ich habe auch die JBmedia WS und wollte diese jetzt in meine Home Automation Configuration einbinden. Jetzt bin ich nicht so der Experte und vor ich was falsch mache, will ich lieber fragen.

Step 1) File Editor habe ich ja bereits installiert, dort gehe ich dann auf den Ordner und wähle die configuration.yaml aus. In der Adresszeile steht dann wie im bild zu sehen: /homeassistant/configuration.yaml

Jetzt schreibe ich einfach den Code vom obrigen Bild ab und füge diesen ab zeile 23 ein oder muss ich etwas beachten?
Klar, meine IP der JSON, aber sonst noch was zu Beginn oder am Ende des Codes?
(kann den Code vielleicht jemand kopieren, dann muss ich das nicht abtippen)
→ Welche Karte auf dem Dashboard fügt ihr dann ein um die Werte einzubinden?

Grüße und danke

Ein paar Fragen hätte ich noch:

Die ws1_temperature wird bei mir in °F angezeigt, jemand eine Info wie das auf °C gestellt wird?
Die anderen Temperaturen sind komischerweise auf °C obwohl nichts anderes eingestellt ist.

Wie wandle ich die Zeit von Sonnenaufgang und Sonnenuntergang in eine Tageszeit um?

Der scan Interval ist in Sekunden oder welche Angabe?
Wenn man zwei unterschiedliche Intervalle benötigt, dann einfach zwei gruppen machen, oder?

Ich hab soeben mal ein Update der Wetterstation auf die Version 2.3 gemacht und entdeckt, dass es jetzt eine MQTT Schnittstelle gibt.
Jetzt stell ich mir die Frage, ob man das in HomeAssistant über MQTT einbinden kann. Geschafft hab ich des leider nicht. Irgend wer schon mal gespielt damit?

Was hast Du nicht geschafft? Die MQTT Daten zu empfangen oder eine Integration zu finden, die diese Daten für Dich automatisch auswertet und aufbereitet?

Ich habe Mosquitto broker als Integration in HA installiert und einen user-mqtt angelegt. Das hat alles prima geklappt. Dann habe ich in der Wetterstation mqtt aktiviert und mit dem Mqtt-server in Homeassistant verbunden. Ich empfange aber keine Daten.

Kann mir jemand ein Tutorial geben? Es gibt genug Tutorials, wie man Mosquitto broker auf HA einrichtet, aber wie man die Daten dann von einem Client abruft, dazu habe ich nichts gefunden.

Ich habe Mosquitto broker bisher nicht genutzt und habe deshalb keine Routine.

Über REST ist keine gute idee, weil die Wetterstation keine feste IP vergibt. Das bedeutet, dass bei jedem Neustart der Station vom Router über DHCP eine andere IP zugewiesen wird, was die Datenübermittlung unterbricht.

Gruß Mich

Inzwischen habe ich mich mal durchgewühlt und eine Lösung gefunden:
Ich poste mal hier ein kleines Tutorial. Vielleicht gibt es ja den einen oder anderen, der das auch zum ersten Mal macht.

Anleitung:
Voraussetzung:
Deine Wetterstation ist nach der Bedienungsanleitung im Deinem lokalen Netzwerk eingeloggt.

  1. Installation von Mosquitto Broker wie beispielsweise in diesem Video gezeigt:
    https://youtu.be/Pqs-mvOSe3E

  2. MQTT in der Wetterstation aktivieren wie im folgenden Screenshot gezeigt:

  3. Testen, ob die Verbindung besteht:
    a) Gehe auf Homeassistant->Einstellungen->Geräte&Dienste->MQTT->Konfigurieren
    b) Trage unter “Topic zum Abonnieren” einen Hash ein (#)
    c) Klicke auf “ANFANGEN ZUZUHÖREN”

Die Wetterstation übermittelt unter dem Topic “weather_station” einen json-String
der Daten.

Wenn nichts erscheint, dann starte wieder bei 1.

  1. Sensoren konfigurieren in der configuration.yaml:
mqtt:
  sensor:
    - state_topic: "weather_station"
      name: "Weather Station MAC"
      value_template: "{{ value_json.mac }}"
    - state_topic: "weather_station"
      name: "Weather Station IP"
      value_template: "{{ value_json.ip }}"
    - state_topic: "weather_station"
      name: "Weather Station Firmware Version"
      value_template: "{{ value_json.firmversion }}"
    - state_topic: "weather_station"
      name: "Weather Station DCF Time"
      value_template: "{{ value_json.dcftime }}"
    - state_topic: "weather_station"
      name: "Weather Station DCF Date"
      value_template: "{{ value_json.dcfdate }}"
    - state_topic: "weather_station"
      name: "Weather Station Wind Speed"
      unit_of_measurement: "km/h"
      value_template: "{{ value_json.windspeed }}"
    - state_topic: "weather_station"
      name: "Weather Station Wind Speed 10 Min"
      unit_of_measurement: "km/h"
      value_template: "{{ value_json.windspeed10 }}"
    - state_topic: "weather_station"
      name: "Weather Station Wind Speed 60 Min"
      unit_of_measurement: "km/h"
      value_template: "{{ value_json.windspeed60 }}"
    - state_topic: "weather_station"
      name: "Weather Station Wind Speed 24h"
      unit_of_measurement: "km/h"
      value_template: "{{ value_json.windspeed24 }}"
    - state_topic: "weather_station"
      name: "Weather Station Wind Chill"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.windchill }}"
    - state_topic: "weather_station"
      name: "Weather Station Wind Direction"
      unit_of_measurement: "°"
      value_template: "{{ value_json.winddir }}"
    - state_topic: "weather_station"
      name: "Weather Station Rain"
      unit_of_measurement: "mm"
      value_template: "{{ value_json.rain }}"
    - state_topic: "weather_station"
      name: "Weather Station Rain Last Hour"
      unit_of_measurement: "mm"
      value_template: "{{ value_json.rainh }}"
    - state_topic: "weather_station"
      name: "Weather Station Rain Last 10 Min"
      unit_of_measurement: "mm"
      value_template: "{{ value_json.rain10 }}"
    - state_topic: "weather_station"
      name: "Weather Station Rain Today"
      unit_of_measurement: "mm"
      value_template: "{{ value_json.raind }}"
    - state_topic: "weather_station"
      name: "Weather Station Rain This Week"
      unit_of_measurement: "mm"
      value_template: "{{ value_json.rainw }}"
    - state_topic: "weather_station"
      name: "Weather Station Pressure"
      unit_of_measurement: "hPa"
      value_template: "{{ value_json.pressure }}"
      icon: "mdi:gauge"
    - state_topic: "weather_station"
      name: "Weather Station OWM Icon"
      value_template: "{{ value_json.owmicon }}"
    - state_topic: "weather_station"
      name: "Weather Station Sunset"
      value_template: "{{ value_json.sunset }}"
    - state_topic: "weather_station"
      name: "Weather Station Sunrise"
      value_template: "{{ value_json.sunrise }}"
    - state_topic: "weather_station"
      name: "Weather Station Temperature 1"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.temperature1 }}"
    - state_topic: "weather_station"
      name: "Weather Station Temperature 2"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.temperature2 }}"
    - state_topic: "weather_station"
      name: "Weather Station Temperature 3"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.temperature3 }}"
    - state_topic: "weather_station"
      name: "Weather Station Humidity 1"
      unit_of_measurement: "%"
      value_template: "{{ value_json.humidity1 }}"
    - state_topic: "weather_station"
      name: "Weather Station Humidity 2"
      unit_of_measurement: "%"
      value_template: "{{ value_json.humidity2 }}"
    - state_topic: "weather_station"
      name: "Weather Station Humidity 3"
      unit_of_measurement: "%"
      value_template: "{{ value_json.humidity3 }}"
    - state_topic: "weather_station"
      name: "Weather Station Low Battery 1"
      value_template: "{{ value_json.lowbat1 }}"
    - state_topic: "weather_station"
      name: "Weather Station Low Battery 2"
      value_template: "{{ value_json.lowbat2 }}"
    - state_topic: "weather_station"
      name: "Weather Station Low Battery 3"
      value_template: "{{ value_json.lowbat3 }}"
    - state_topic: "weather_station"
      name: "Weather Station Low Battery 4"
      value_template: "{{ value_json.lowbat4 }}"
    - state_topic: "weather_station"
      name: "Weather Station Dew Point 1"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.dewpoint1 }}"
    - state_topic: "weather_station"
      name: "Weather Station Dew Point 2"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.dewpoint2 }}"
    - state_topic: "weather_station"
      name: "Weather Station Dew Point 3"
      unit_of_measurement: "°C"
      value_template: "{{ value_json.dewpoint3 }}"

Nun müssten sich diese Entitäten in Deiner Homeassistant Installation
finden lassen.

1 „Gefällt mir“

Hallo.
vielen Dank für deine ausführliche Ausführung.
Hat mir sehr geholfen. Zufälligerweise habe ich heute, genau nach dieser Lösung gesucht. :wink:

Gruß Michael

Das war die Idee dahinter!
Freut mich sehr!
Gruß. Auch Michael.

@MichiT
Bist der Beste. Super Lösung. Meine hätte nur dann funktioniert, würde die Wetterstation erlauben eine feste IP zu vergeben. So musste ich das immer justieren. Mit deiner Anleitung nicht mehr. THX

Nach ein paar Tagen Betrieb über MQTT stelle ich fest, dass die Datenübermittlung mehr als mangelhaft ist. Beispielsweise werden die Luftdruckwerte inzwischen höchstens einmal am Tag aktualisiert, was den Produktversprechungen eher nicht entspricht.

Es kann natürlich sein, dass ich irgendetwas falsch konfiguriert habe.
Was sind so Eure Erfahrungen, falls jemand ebenfalls diese Wetterstation betreibt?

Gruß von Mich

Also dies kann ich nicht bestätigen. Ich habe es ja nach nach deiner Anleitung eingerichtet. Luftdruck hat sich vor 2 Stunden aktualisiert. Auch die Temperaturen aktualisieren sich regelmäßig. Beim öffen des Dashboards sieht man, wie die Temperaturen sich aktualisieren. Das Einzige: das OWM Icon. Was mache ich damit? Im Moment steht es auf 02d. Habe auch noch nie ein Icon gesehen.

Gruß, Michael

Bei mir ist es ähnlich.
Ich glaub aber, dass es nichts mit mqtt zutun hat.
Ich finde das Teil einfach nur etwas fehlkonstruiert. Sobald ich eine Alternative finde, schmeiß ich das Teil raus. War vom ersten moment unglücklich mit dem Teil.


Hier mal meine Werte und die Aktuallisierungszeiten.

1 „Gefällt mir“

Geht mir genauso, ehrlich gesagt.
Sehr unausgereift, das Ganze, um es mal nett zu sagen.

Gruß
Mich