Hallo,
ich habe bei mir MQTT eingerichtet und mir dann ein Display besorgt auf dem einige Werte angezeigt werden sollen.
Zum einen sollen Wetterdaten (Temperatur) angezeigt werden und andren die Temperatur des Wohnzimmers (hier habe ich mir ein Thermometer mit einem WMOS D1 mini und einem D11 shield gebaut) und dann gibt es noch ein Thermometer vom Typ HMS100T
Hier der Code
define MQTT_Teich MQTT_BRIDGE Temperatur
attr MQTT_Teich IODev Mosquitto
attr MQTT_Teich publish-topic-base /teich/
attr MQTT_Teich publishReading_temperature /teich/temper
attr MQTT_Teich publishReading_type /teich/type
attr MQTT_Teich room MQTT
attr MQTT_Teich stateFormat transmission-state
define MQTT_Wohn MQTT_BRIDGE WohnTemperatur
attr MQTT_Wohn IODev Mosquitto
attr MQTT_Wohn publish-topic-base /wohn/
attr MQTT_Wohn publishReading_humidity /wohn/humidity
attr MQTT_Wohn publishReading_messured-temp /wohn/messured-temp
attr MQTT_Wohn publishReading_transmission-state /wohn/transmission-state
attr MQTT_Wohn room MQTT
attr MQTT_Wohn stateFormat transmission-state
define MQTT_Wetter MQTT_BRIDGE OUT.Wetter
attr MQTT_Wetter IODev Mosquitto
attr MQTT_Wetter publish-topic-base /wetter/
attr MQTT_Wetter publishReading_state /wetter/state
attr MQTT_Wetter publishReading_temp_c /wetter/temp_c
attr MQTT_Wetter publishReading_temperature /wetter/temperature
attr MQTT_Wetter publishReading_validity /wetter/validity
attr MQTT_Wetter publishReading_visibility /wetter/visibility
attr MQTT_Wetter room MQTT
attr MQTT_Wetter stateFormat transmission-state
Mein Problem ist, dass die Wetter- und Wohnzimmer Werte gepublished und auch empfangen und angezeigt werden, die des HMS Gerätes aber nicht.
Jemand eine Idee woran es liegen könnte??
Hier der List des Thermometers:
Internals:
CFGFN /opt/fhem/mycfg/garten.cfg
CODE 62a7
DEF 62a7
IODev SCC
NAME Temperatur
NR 274
STATE T: 13.1 Bat: ok
TYPE HMS
Readings:
2017-04-02 04:07:08 battery ok
2017-04-02 04:07:08 state T: 13.1 Bat: ok
2017-04-02 04:07:08 temperature 13.1
2017-04-02 04:07:08 temperature2 Error evaluating Temperatur userReading temperature2: Undefined subroutine &main::getTemp called at (eval 2475) line 1.
2017-04-02 04:07:08 type HMS100T
Attributes:
IODev SCC
alias Teich-Temperatur
comment 0.6
event-on-change-reading state
model hms100-t
room Favourites,Garten
userReadings temperature2 { getTemp() }
Config sieht für mich gut aus. Steht was im Logfile?
Grüße
Stephan
Häng Dich mal mit mosquitto_sub (oder einem anderen Tool) an Deinen MQTT-Server und subscribe per Wildcard alle Topics.
Manchmal fehlt ein / vorweg oder einer zuviel oder da steckt irgendwo ein Steuerzeichen drin was im Display dann nicht geht.
ich habe es mit mqttfx versucht. Mit # subscribe ich mich auf alle Topics..es kommt alles außer die Temperatur :(
Wenn ich einen Wert mit mqttfy publishe wird er auch korrekt auf dem Display dargestellt. Ich hatte zuerst auch gedacht es könnte Probleme mit dem Dezimalpunkt geben, also zB 13.5 aber auch dieser Wert wird korrekt dargestellt wenn ich ich händisch publishe.
Wie gesagt, die Werte werden einfach nicht gepublished.
Vielleicht sollte ich eine Dummy Variable anlegen, die den Temperaturwert annimmt und die neue Variable dann publishen.....wäre vielleicht ein Workaround aber es muss doch auch über den 'normalen' Weg gehen.
Werde auch mal versuchen den Loglevel zu erhöhen; vielleicht finde ich was
Lösung:
Die Temperatur hatte das Attribut 'event-on-change-reading'
Nach dem Löschen des Attributes wird der Wert nun auch gepublished :)
Hm,
schau mal ob du die Werte retained publishen kannst. Vgl. hierzu die MQTT Einführung Teil 2. Dann könntest du das event-on-change reading wieder rein tun.
Eisler kann das sicher schnell beantworten.
Ansonsten:
Du könntest bitte den Titel noch editieren und ein [gelöst] vor den Titel schreiben. Dann haben es User später leichter mit der Suche.
Dazu deinen 1. Thread editieren. Dann hast du Zugriff auf das Thema.
Hi zusammen,
ich würde das Thema gerne nochmal aufgreifen.
Sobald ich das im verknüpften Gerät 'event-on-change-reading' gesetzt habe, werden gar keine readings mehr gepublished. Dabei ist es egal ob das reading im attribut 'event-on-change-reading' genannt ist oder nicht.
Auch ein "retain 1" hat das nicht geändert.
Leider ist das Löschen des 'event-on-change-reading' ist für mich leider keine Option.
Danke für eure Hilfe!
Grüße jannes