Home Assistant - WLANThermo nano

HafenGrillR

New member
Vielleicht hilft das ja dem ein oder anderen hier weiter
Danke für Deine Mühe, das hat sofort geklappt. Der Code ist dann gleich in eine mqtt.yaml ausgegliedert worden, um die Übersicht zu behalten.:)
(Den Typo in der Device-Konfiguration habe ich dann noch selber geändert.;))

Ach ja, vielleicht bei der Gelegenheit noch mal kurz hier vorstellen. Ich bin Michael und über den GSV zum MINIV3 gekommen, der bisher aber nur über das Thermometer-Display genutzt wurde.
Im Februar habe ich dann mit HA angefangen, um mit einer Handvoll Shellys endlich mal wieder meine Lüftungssteuerung umzusetzen (hatte ich schon vor Jahren mal mit CONRAD-Connect gemacht) und den ganzen Hue-Zoo in eine Oberfläche einzubinden. Tuya Steckdosen und Miele-Waschmaschine sind dann schnell gefolgt.
Gestern habe ich mich dann mal an MQTT und das WLanThermo rangemacht. Als nächstes ist jetzt meine Bluetti Powerstation dran, die leider nur BT-fähig ist. In dem Zusammenhang kommt dann wohl auch mein erstes kleines ESP32-Projekt. :)
Viele Grüße
Michael
 

ulli

New member
Viel Erfolg und viel Spaß, du kannst ja gerne mal deine Umsetzung in Home Assistant weiter beschreiben.

Welche MQTT-Übertragungsrate ist denn zu empfehlen?
Gibt es irgendwelche Einschränkungen bzgl. Einbindung der Weboberfläche ins Homeassistant Dashboard?

Hintergrund: Mein Wlan-Thermo steigt bei längeren Grillaktionen gelegentlich aus, sendet nicht mehr über MQTT und ist nicht mehr über die Weboberfläche erreichbar, auf dem Display steht dann n.c.
Gibt sich dann nach etwas Zeit von alleine, ein Neustart hilft auch.

Ich frage mich dehalb, läuft irgend ein Buffer/Cache o.dgl. auf dem Wlanthermo voll weil z.B. das HomeAssistant vielleicht zuviele HTTP Anfragen sendet oder liegt es doch an einem instabilen/schwachen Wlan?
 
Zuletzt bearbeitet:

HafenGrillR

New member
Danke, wenn ich mein Dashboard in einer vorzeigbaren Form zusammengebaut habe (mit historischem Temperaturverläufen etc.) werde ich das hier mal posten. Ob ich die WLanThermo-Weboberfläche in HA einbinde weiß ich noch nicht. Das hängt wohl davon ab, ob ich auch sie Settings in HA hinbekomme.

Zu MQTT-Übertragungsraten kann ich nicht viel beitragen, aber man soll es nicht übertreiben (mit 60s habe ich erst einmal begonnen, da sich Temperaturen nicht so sprunghaft ändern).

Mein MINIV3 läuft bisher auch über mehrere Stunden ohne Abstürze (allerdings immer unter günstigen WLAN-Bedingungen). Wenn sich das jetzt mit MQTT ändert werde ich berichten. Zur Zeit ist das jedoch nicht zu erwarten, denn bisher nutze ich den Mosquitto-Broker nur als Topic Listener.

Btw weiß hier jemand, ob man in den MQTT-Einstellungen in HA einfach mit "MQTT neu konfigurieren" ein weiteres Topic hinzufügen kann oder wird dadurch die WLanThermo Konfiguration "überschrieben"?
 

ulli

New member
Auf dem Wlanthermo steht oben rechts oder links nc.
Ich kann das nächste Mal ein foto machen
 

m0uh

New member
Hallo!

Nachdem ich meinen MINIv3 schon länger in Home-Assistant integriert habe und sich das Ganze einigermaßen bewährt hat, wollte ich mein Setup auch mal hier teilen. Die .yaml Dateien für die Integration sind hier verfügbar: https://github.com/m0uH/homeassistant-wlanthermo

Neben den Sensoren sind auch die relevantesten Einstellungen integriert und lassen sich über Home-Assistant ändern.

Abhängig von den Push-Einstellungen des WLANThermo sendet Home-Assistant entsprechende Benachrichtigungen.

Zudem lässt sich ein Alarm aktivieren, welcher die verbleibende Zeit bis zum Erreichen der gesetzten Zieltemperatur (Maximum) abschätzt und 10 Minuten vorher anschlägt.

Viele Grüße!

Anbei ein Screenshot einer Grill-Session:

Screenshot_20220206_143819.png
 

seebaer1976

New member
Hallo!

Nachdem ich meinen MINIv3 schon länger in Home-Assistant integriert habe und sich das Ganze einigermaßen bewährt hat, wollte ich mein Setup auch mal hier teilen. Die .yaml Dateien für die Integration sind hier verfügbar: https://github.com/m0uH/homeassistant-wlanthermo

Neben den Sensoren sind auch die relevantesten Einstellungen integriert und lassen sich über Home-Assistant ändern.

Abhängig von den Push-Einstellungen des WLANThermo sendet Home-Assistant entsprechende Benachrichtigungen.

Zudem lässt sich ein Alarm aktivieren, welcher die verbleibende Zeit bis zum Erreichen der gesetzten Zieltemperatur (Maximum) abschätzt und 10 Minuten vorher anschlägt.

Viele Grüße!

Anbei ein Screenshot einer Grill-Session

hi m0uh,

erstmal tolle arbeit hast du gemacht. hat bestimmt ein paar tage gedauert.

wollte fragen welche ha version du laufen hast?
bekomme es bei mir nicht zum laufen, (Home Assistant 2023.4.2 Supervisor 2023.04.0 Operating System 9.5 Frontend 20230406.1 - latest)
kann es vielleicht sein das in ha was geändert wurde?

hab einen MiniV1.

hab alle änderungen vorgenommen, die du beschrieben hast.

hab alle entitäten in einem eigenem dashboard. sie werden aber alle als unbekannt oder nicht verfügbar angezeigt. wenn ich unter developer-tools/template z.b. {{ state_attr('sensor.wlanthermo', 'pitmaster').pm[0]['typ'] }} abfrage, bekomme ich das richtige ergebnis zurück.

wenn ich z.b. einen schalter betätige oder beim pitmaster was einstelle, kommt die meldung: "Fehler beim Aufrufen des Diensts switch/turn_on. Error rendering data template: TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'"

wenn ich beim pitmaster was einstelle, kommt die meldung: "Fehler beim Aufrufen des Diensts select/select_option. Error rendering data template: ValueError: 'unknown' is not in list"

veilleicht hast eine idee, bin mit meinem latein am ende.

frohe ostern
seebaer1976

hier noch mein mqtt topic/paypload

WLanThermo/MiniV1/status/data

{"device":{"device":"mini","serial":"2462abc38f84","cpu":"esp32","flash_size":16777216,"item":"m1j06o5210B","hw_version":"v1","sw_version":"v1.2.2","api_version":"1","language":"de"},"system":{"time":"1681112523","unit":"C","ap":"WLANTHERMO-AP","host":"MiniV1","language":"de","version":"v1.2.2","getupdate":"false","autoupd":true,"prerelease":true,"crashreport":true,"hwversion":"V1"},"hardware":["V1"],"api":{"version":"1"},"sensors":[{"type":0,"name":"1000K/Maverick","fixed":false},{"type":1,"name":"Fantast-Neu","fixed":false},{"type":2,"name":"Fantast","fixed":false},{"type":3,"name":"100K/iGrill2","fixed":false},{"type":4,"name":"ET-73","fixed":false},{"type":5,"name":"Perfektion","fixed":false},{"type":6,"name":"50K","fixed":false},{"type":7,"name":"Inkbird","fixed":false},{"type":8,"name":"100K6A1B","fixed":false},{"type":9,"name":"Weber_6743","fixed":false},{"type":10,"name":"Santos","fixed":false},{"type":11,"name":"5K3A1B","fixed":false},{"type":12,"name":"PT100","fixed":false},{"type":13,"name":"PT1000","fixed":false},{"type":14,"name":"ThermoWorks","fixed":false},{"type":15,"name":"Typ K","fixed":true},{"type":16,"name":"Bluetooth","fixed":true},{"type":17,"name":"Maverick","fixed":true},{"type":18,"name":"Connect","fixed":true}],"features":{"bluetooth":true,"pitmaster":true},"pid":[{"name":"SSR SousVide","id":0,"aktor":0,"Kp":104.00,"Ki":0.20,"Kd":0.00,"DCmmin":0.00,"DCmmax":100.00,"opl":0,"SPmin":0.00,"SPmax":0.00,"link":0,"tune":0,"jp":100},{"name":"TITAN 50x50","id":1,"aktor":1,"Kp":7.00,"Ki":0.01,"Kd":128.00,"DCmmin":25.00,"DCmmax":100.00,"opl":1,"SPmin":25.00,"SPmax":75.00,"link":0,"tune":0,"jp":80},{"name":"Servo MG995","id":2,"aktor":2,"Kp":104.00,"Ki":0.20,"Kd":0.00,"DCmmin":0.00,"DCmmax":100.00,"opl":0,"SPmin":25.00,"SPmax":75.00,"link":0,"tune":0,"jp":100},{"name":"Meiner","id":3,"aktor":1,"Kp":3.00,"Ki":0.05,"Kd":45.00,"DCmmin":25.00,"DCmmax":80.00,"opl":1,"SPmin":0.00,"SPmax":100.00,"link":0,"tune":0,"jp":100}],"aktor":["SSR","FAN","SERVO"],"display":{"updname":"NX3224T028-180","orientation":180},"iot":{"PMQhost":"192.168.50.2","PMQport":1883,"PMQuser":"d187","PMQpass":"rommel","PMQqos":0,"PMQon":true,"PMQint":10,"CLon":true,"CLtoken":"ba8ce6fb80d6cca8f3211c","CLint":30,"CLurl":"cloud.wlanthermo.de/index.html","CCLon":false,"CCLint":30,"CCLurl":""}}
{"system":{"time":"1681114753","unit":"C","rssi":-75,"online":2},"channel":[{"number":1,"name":"Garraum Gr","typ":0,"temp":999.00,"min":110.00,"max":130.00,"alarm":3,"color":"#FFFF00","fixed":false,"connected":false},{"number":2,"name":"Brisket","typ":0,"temp":999.00,"min":88.00,"max":88.00,"alarm":3,"color":"#22B14C","fixed":false,"connected":false},{"number":3,"name":"Kanal 3","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#EF562D","fixed":false,"connected":false},{"number":4,"name":"Kanal 4","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#FFFFFF","fixed":false,"connected":false},{"number":5,"name":"Kanal 5","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#A349A4","fixed":false,"connected":false},{"number":6,"name":"Kanal 6","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#804000","fixed":false,"connected":false},{"number":7,"name":"Kanal 7","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#5587A2","fixed":false,"connected":false},{"number":8,"name":"Kanal 8","typ":0,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#5C7148","fixed":false,"connected":false},{"number":9,"name":"Garraum Kl","typ":17,"temp":999.00,"min":100.00,"max":120.00,"alarm":0,"color":"#FFC002","fixed":true,"connected":false},{"number":10,"name":"Kanal 10","typ":17,"temp":999.00,"min":10.00,"max":35.00,"alarm":0,"color":"#0FE6F1","fixed":true,"connected":false}],"pitmaster":{"type":["off","manual","auto"],"pm":[{"id":0,"channel":1,"pid":2,"value":0,"set":110.00,"typ":"auto","typ_last":"auto","set_color":"#ff0000","value_color":"#000000"}]}}
 

m0uh

New member
Hallo seebaer!

Ich nutze wie du die aktuellste HomeAssistant Version.

In deiner "data payload" stehen alle Sensoren als disconnected drin, in diesem Fall werden die Sensoren in HomeAssistant als unavailable markiert. Kannst du es mit einem verbundenen Temperaturfühler probieren?

Du solltest dann ein entsprechenden Sensor "sensor.wlanthermo_channel_x_all" mit der passenden Temperatur.

Viele Grüße
m0uH
 

seebaer1976

New member
hi,

danke für deine antwort.

der payload war mein fehler, hatte den wlanthermo voher runtergefahren.
und hatte auch vergessen zu schreiben das die temps angezeigt werden und der rest wie oben geschrieben.

  • temp min/max zeigt 0.0 und nicht die im wlanthermo hinterlegten und kann sie auch nicht ändern
  • alle color zeigen unbekannt
  • kanal name steht nur kanal name und nicht die im wlanthermo hinterlegten kann sie auch nicht ändern
  • alram/push schalter kommt beim einschalten: "Fehler beim Aufrufen des Diensts switch/turn_on. Error rendering data template: TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'" und beim ausschalten "Fehler beim Aufrufen des Diensts switch/turn_off. Error rendering data template: TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'"
  • und bei einstellen vom pitmaster kommt: "Fehler beim Aufrufen des Diensts select/select_option. Error rendering data template: ValueError: 'unknown' is not in list"
  • bei pitmnaster value kommt: "Fehler beim Aufrufen des Diensts number/set_value. Error rendering data template: ValueError: 'unknown' is not in list"
  • pit sollwert zeigt auch 0 an und nicht die im wlanthermo hinterlegten und kann sie auch nicht ändern

wofür sind die schalter gedacht, da passiert auch nichts:
WLANThermo set channel 1 name
WLANThermo set pitmaster
WLANThermo update channel 1 name from MQTT
WLANThermo Became Available

ich habe die temps auch erst bekommen wie ich bei mqtt:
value_template: "{{ value_json.system.soc }}" in
value_template: "{{ value_json.system.rssi }}"
mal geändert hab. da in ha log stand das es das nicht gibt


mfg
seebaer1976
 
Zuletzt bearbeitet:

m0uh

New member
Hi seebaer!

wofür sind die schalter gedacht, da passiert auch nichts:
WLANThermo set channel 1 name
WLANThermo set pitmaster
WLANThermo update channel 1 name from MQTT
WLANThermo Became Available

Diese Automatisierungen sind dafür zuständig die Änderungen im WLANThermo in Home-Assistant bzw in die andere Richtung zu übernehmen, so dass z.B. wenn der Channel Name im HA geändert wird, das auch auf dem WLANThermo übernommen wird.

Bezüglich der Fehler habe ich dir eine Nachricht geschickt.

Viele Grüße!
 

dermichahc

New member
@m0uh

Sieht echt toll aus!

Also folgendes ist mir aufgefallen. Die sensoren werden jetzt mit sensor.template_ angelegt. Die number sind z.B. number.1_none_minimum und die select werden garnicht angelegt. :(

Ich nutze die 2023.4.4, aber solche elementaren Änderungen sollten ja nicht in bugfix releases vorgenommen werden.

Hat jemand eine Idee?
 
Zuletzt bearbeitet:

m0uh

New member
Hi @dermichahc !

Die Min/Max Nummern sind hier definiert: https://github.com/m0uH/homeassista...ster/wlanthermo/wlanthermo_template.yaml#L589 und benötigen keine Automatisierungen zum synchronisieren zwischen MQTT und Home-Assistant.

Das Problem scheint, dass die Sensoren etwas unerwartete "entity_id"s bekommen. Diese kann man leider nicht mehr direkt vorgeben und wird aus dem "Namen" gebildet, welcher sicher derzeit unter anderem aus den Namen im WLANThermo zusammen setzt.

@seebaer1976 hatte denke ich das gleiche Problem, sobald wir sein Problem gelöst haben, können wir hier denke ich ein Update posten.

Viele Grüße!
 

Moritz82

New member
Moin, da die neue Grillsaison ja bereits begonnen hat (hat sie jemals geendet? :D ) wollte ich dieses Jahr auch meinen Mini in HA einbinden. Habe es eigentlich auch gemacht wie erklärt, nur ohne erfolg. Evtl kann @m0uh mir einmal helfen?
mqtt1.jpg
Ich hoffe das klappt mit dem Bild... Bei mir wird nach bisschen probieren ein Gerät mit einer Entität angezeigt, aber erst nachdem ich "device" hinzugefügt habe. Vorher war es 0.
YAML:
mqtt:
  sensor:
    - name: "WLANThermo"
      # change topic to your modelname!
      state_topic: &wt_topic "WLanThermo/WlanThermo/status/data"
      value_template: "{{ value_json.system.soc }}"
      # change topic to your modelname!
      json_attributes_topic: "WLanThermo/WlanThermo/status/data"
      json_attributes_template: "{{ value_json | tojson }}"
      device_class: battery
      unit_of_measurement: "%"
      expire_after: 60
      # neu hinzugefügt
      device:  &wt_device
        name: "WlanThermo"
        configuration_url: &wt_url "http://192.168.178.113/"
        hw_version: "V3"
        manufacturer: "WlanThermo"
        model: "Mini V3"
        identifiers: ["WlanThermo V3 Mini"]
     
    - name: "WLANThermo Settings"
      # change topic to your modelname!
      state_topic: "WLanThermo/WlanThermo/status/settings"
      value_template: "{{ value_json.system.host }}"
      json_attributes_topic: "WLanThermo/WlanThermo/status/settings"
      json_attributes_template: "{{ value_json | tojson }}"
      device: *wt_device

    # Wifi signal strength kopiert von dermichahc
    - name: "Signal strength"
      unique_id: "wlanthermo_signal_strength"
      state_topic: *wt_topic
      value_template: "{{ value_json.system.rssi }}"
      unit_of_measurement: "dBm"
      device_class: signal_strength
      json_attributes_topic: *wt_topic
      json_attributes_template: "{{ value_json | tojson }}"
      expire_after: 60
      device: *wt_device
      enabled_by_default: true
in meiner configuration.yaml steht:
Code:
homeassistant:
  # Include packages
  packages:
    wlanthermo: !include_dir_merge_named wlanthermo
    wlanthermo_push_notify: !include_dir_merge_named wlanthermo_push_notify
    wlanthermo_timer: !include_dir_merge_named wlanthermo_timer
was ja richtig sein sollte. Ich komme gerade nicht drauf wo mein Fehler ist. MQTT kann ich ja lesen, einstieg stimmt, Pfad auch...
Hoffe jemand hat einen heißen Tip.

Grüße

P.S. hab inzwischen alles noch mal neu gemacht und dabei auch meinen Thermo umbenannt. Wenn ich unter MQTT auf ein Topic höre kommt:
Code:
Nachricht 1 empfangen auf WLanThermo/MINIV3/status/data um 0:59:
{
    "system": {
        "time": "1684623585",
        "unit": "C",
        "rssi": -60,
        "online": 2
    },
    "channel": [
        {
            "number": 1,
            "name": "Kanal 1",
            "typ": 0,
            "temp": 14.2,
            "min": 0,
            "max": 95,
            "alarm": 1,
            "color": "#0C4C88",
            "fixed": false,
            "connected": false
        },
        {
            "number": 2,
            ..............
Trotzdem findet er kein Gerät, keine Entität und wenn ich teile des codes in Dashboard einfüge kommt:
Code:
Entity not avaible: sensor.wlanthermo_channel_1_all
Bin ratlos. :D
 
Zuletzt bearbeitet:
Oben Unten