Wie kann ich über die Kommandozeile Werte auslesen?

Begonnen von mhelgers, 10 Juli 2018, 10:56:22

Vorheriges Thema - Nächstes Thema

mhelgers

Hallo zusammen,

ich möchte gerne eine Aktion ausführen wenn ein Temperaturwert überschritten wird

define test123 DOIF ([09:00-18:00] and  [MQTT_Wohn: messured-temp] > 24) (set KU_Kuechenlampe on)


da ich n nicht weiss ob ['MQTT_Wohn: messured-temp]'  richtig ist stelle ich mir die Frage wie man solche Werte auslesen kann.

Daher die Frage: Wie kann ich über die Kommandozeile den Temperaturwert des MQTT Devices auslesen?
als Ergebnis soll kommen messured-temp: 24.1


hier der List Output zum MQTT Device
Internals:
   IODev      Mosquitto
   NAME       MQTT_Wohn
   NR         786
   STATE      Temperatur: 25.1 Grad Feuchte: 55.0
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       humidity:
         DBLogging:
           TIME       1531212366.97918
           VALUE      55.00
       messured-temp:
         DBLogging:
           TIME       1531212366.70261
           VALUE      25.10
       transmission-state:
         DBLogging:
           TIME       1531212366.848
           VALUE      incoming publish received
   READINGS:
     2017-05-04 09:04:29   Humy            41.80
     2018-07-10 10:46:06   humidity        55.00
     2018-07-10 10:46:06   messured-temp   25.10
     2018-07-10 10:46:06   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     /Thermometer/DHT22/Luftfeuchte
     /Thermometer/DHT22/Temperatur
   subscribeExpr:
     ^\/Thermometer\/DHT22\/Luftfeuchte$
     ^\/Thermometer\/DHT22\/Temperatur$
   subscribeReadings:
     /Thermometer/DHT22/Luftfeuchte:
       cmd       
       name       humidity
     /Thermometer/DHT22/Temperatur:
       cmd       
       name       messured-temp
Attributes:
   DbLogInclude 1
   IODev      Mosquitto
   alias      Wohnzimmer T
   icon       temperature_humidity
   mqttName   Temperatur
   mqttRoom   Wohnzimmer
   room       Favourites,MQTT
   stateFormat {sprintf("Temperatur: %.1f Grad Feuchte: %.1f ", ReadingsVal($name,"messured-temp",0), ReadingsVal($name,"humidity",0))}
   subscribeReading_humidity /Thermometer/DHT22/Luftfeuchte
   subscribeReading_messured-temp /Thermometer/DHT22/Temperatur

Ellert

#1
{"measured-temp:".ReadingsVal("MQTT_Wohn","measured-temp","error")} siehe https://fhem.de/commandref_DE.html#perl

Und falls Du DOIFtools verwendest, sollte Probably associated with als PopUp angezeigt werden können siehe https://wiki.fhem.de/wiki/DOIFtools#Beispiel_Lookup-Fenster

helmut

Ich wuerde es auch als "measured-temp" schreiben, aber hast Du gesehen, dass er im Listing tatsaechlich ein READING
"2018-07-10 10:46:06   messured-temp   25.10" stehen hat?

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Ellert

So genau habe ich es mir nicht angesehen, scheint ein Fall für die Vereinheitlichungsinitiative zu sein.

CoolTux

Zitat von: Ellert am 10 Juli 2018, 11:23:34
So genau habe ich es mir nicht angesehen, scheint ein Fall für die Vereinheitlichungsinitiative zu sein.


Das hat damit gar nichts zu tun.
messured ist ein schreibfehler. measured ist richtig.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Ellert


mhelgers

Danke für eure schnellen Antworten.
Es muss übrigens tatsächlich 'messured-temp' heißen - das ist kein Schreibfehler!

Wenn ich in die Kommandozeile
{ReadingsVal("MQTT_Wohn","messured-temp","error")}
erhalte ich den Aktuellen Wert


müsste die Bedingung dann so aussehen?

define test123 DOIF ([09:00-18:00] and  {ReadingsVal("MQTT_Wohn","messured-temp","error")}  > 24) (set KU_Kuechenlampe on)

Otto123

define test123 DOIF ([09:00-18:00] and  [MQTT_Wohn:messured-temp]  > 24) (set KU_Kuechenlampe on)Im DOIF / Set magic Style sollte auch gehen.
:D

Nur [MQTT_Wohn: messured-temp] war ein leeres zu viel. Aber Deine eigentliche Frage ist mit {ReadingsVal("MQTT_Wohn","messured-temp","error")} beantwortet.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

helmut

Zitat von: mhelgers am 10 Juli 2018, 12:56:59
Es muss übrigens tatsächlich 'messured-temp' heißen - das ist kein Schreibfehler!
Rein interessehalber, bitte klaer mich ueber die Bedeutung des Wortes auf. Auch die Befragung des Gockels brachte mir keine neuen Erkenntisse ;-)

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

CoolTux

Zitat von: helmut am 10 Juli 2018, 13:39:19
Rein interessehalber, bitte klaer mich ueber die Bedeutung des Wortes auf. Auch die Befragung des Gockels brachte mir keine neuen Erkenntisse ;-)

Gruss Helmut

Naja wie auch, das Wort gibt es im englischen Sprachgebrauch auch gar nicht  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net