Werte von einem beliebigen Device senden

Begonnen von tomix, 24 April 2022, 01:20:35

Vorheriges Thema - Nächstes Thema

tomix

Hallo zusammen

Ich möchte auf einem Display, welches an einem ESP hängt diverse Werte anzeigen. Also zum Beispiel die Temperatur (kommen von einem anderen MQTT-Device).

Der ESP mit dem Display soll sich die Werte aktiv holen (sendet via MQTT eine bitte um die Werte), FHEM soll via notify dann die Werte via MQTT an den ESP senden.

Zum testen habe ich mal folgendes:

defmod MQTT2_arduinoClient MQTT2_DEVICE arduinoClient
attr MQTT2_arduinoClient readingList arduinoClient:outTopic:.* outTopic
attr MQTT2_arduinoClient room MQTT2_DEVICE
attr MQTT2_arduinoClient setList off:noArg    inTopic 0\
  on:noArg     inTopic 1\
  toggle:noArg inTopic 2\
  test:noArg   inTopic/Test WERT\
  setText:textField inTopic/Text $EVTPART1
attr MQTT2_arduinoClient setStateList toggle on off Test


Anstelle WERT soll aber die aktuelle Temperatur (also der «Inhalt» von ReadingsVal($name,"SI7021_Temperature",0)) publiziert werden.

attr MQTT2_DVES_44B60B devStateIcon {\
  my $state = lc ReadingsVal($name, "POWER1", "off");;\
  "<div>" . FW_makeImage(lc ReadingsVal($name, "state", "off"))\
    . sprintf(\
    "&nbsp;;&nbsp;;[Temp.: %.1f°C / Feucht.: %.0f%% / Taup.: %.1f°C]",\
    ReadingsVal($name,"SI7021_Temperature",0),\
    ReadingsVal($name,"SI7021_Humidity",0),\
    ReadingsVal($name,"SI7021_DewPoint",0)\
    ) . "</div>"\
  }


Nach dem hier:
https://forum.fhem.de/index.php?topic=102055.0
sei der Wert in [<device>:<reading>]

Ein «  test:noArg   inTopic/Test [MQTT2_DVES_44B60B:SI7021_Temperature]\» ergibt:
Message arrived [inTopic/Test] [MQTT2_DVES_44B60B:SI7021_Temperature]

Ein
«set publish MQTT2_arduinoClient inTopic/Test [MQTT2_DVES_44B60B:SI7021_Temperature]»
in der Befehlszeile zu einem hängendem Webfrontend von FHEM.

Wie bringe ich den Wert rüber?

Gruss
tomix

tomix

So geht es:
set MQTT2_arduinoClient setText [MQTT2_DVES_44B60B:SI7021_Temperature]


Gruss
tomix