Hallo,
leider ist Google und die Forensuche nicht fündig geworden (vielleicht habe ich auch nach den falschen Begriffen gesucht).
Es geht um einen dummy, der von einem MQTT den Temperaturwert erhält. Hierzu habe ich den dummy wie folgt definiert:
define 14_Temp_ist dummy
attr 14_Temp_ist alias Temperatur
attr 14_Temp_ist readingList temperature
attr 14_Temp_ist icon icoTemp
attr 14_Temp_ist room Wohnen
attr 14_Temp_ist group Klima
attr 14_Temp_ist sortby 14_00Klima
Den Wert für temperature erhält er so:
define 14_Temp_ist_notify notify 14_MQTT:temperature.* {\
fhem "set 14_Temp_ist temperature ".ReadingsVal("14_MQTT","temperature","-99");;\
}
attr 14_Temp_ist_notify room zConfig
attr 14_Temp_ist_notify group 14
Im Frontend steht aber nur der Wert von state. Wie kann ich im Frontend den Wert für temperature anzeigen lassen?
Warum mache ich das:
Dieser Code hier funktioniert nur mit einem reading namens "temperature" in 14_Temp_ist:
define 14_Temp_Soll THRESHOLD 14_Temp_ist 14_Hz_FBH
attr 14_Temp_Soll number_format %.1f
attr 14_Temp_Soll state_cmd1_gt off
attr 14_Temp_Soll state_cmd2_lt on
attr 14_Temp_Soll state_format _m _dv _sc
attr 14_Temp_Soll webCmd state
attr 14_Temp_Soll room zConfig
attr 14_Temp_Soll group 14
set 14_Temp_Soll hysteresis 0.5
(14_Hz_FBH ist das Ventil für die Fußbodenheizung.)
Der Vollständigkeit halber hier noch wie 14_Temp_Soll gesetzt wird:
define 14_Temp_Thermostat dummy
attr 14_Temp_Thermostat alias Thermostat
attr 14_Temp_Thermostat icon icoTemp
attr 14_Temp_Thermostat setList state:slider,18.0,.5,24.0,1
attr 14_Temp_Thermostat webCmd state
attr 14_Temp_Thermostat room Wohnen
attr 14_Temp_Thermostat group Klima
attr 14_Temp_Thermostat sortby 14_01Klima
define 14_Temp_Thermostat_notify notify 14_Temp_Thermostat:* {\
my $value = 0 + ReadingsVal("14_Temp_Thermostat","state","-99");;\
fhem "set 14_Temp_Soll desired ".$value;;\
GetHttpFile(Value("14_RoomControl_IP_Port"),"/heater?value=".$value);;\
}
attr 14_Temp_Thermostat_notify room zConfig
attr 14_Temp_Thermostat_notify group 14
Anmerkung: Per GetHttpFile wird die OLED Anzeige auf dem ESP8266 upgedatet.
Bin für alle Vorschläge zur Ausgabe der korrekten Temperatur und der Funktionsfähigkeit von THRESHOLD dankbar.
in dem du in deinem notify setreading statt set verwendest.
THRESHOLD funktioniert aber mit beliebigen readings. nicht nur mit temperature. du musst es nur im define entsprechend angeben. d.h. du brauchst werden den dummy noch das notify.
gruss
andre
Danke für die Tipps. Wusste ich so noch nicht.
Leider ist damit aber das eigentliche Problem der Webausgabe nicht behoben oder habe ich was übersehen? Wenn ich keinen dummy mehr habe und die Steuerung direkt über threshold abwickle, kann ich die aktuelle Temperatur nicht mehr ausgeben, oder?
Ich glaube, das sind zwei getrennte Themen: Wenn ich den threshold direkt abwickle, kann ich den dummy ja freier definieren und somit auch die Ausgabe, korrekt?
Ich weiß, das dieser Thread schon etwas älter ist, aber gibt es mittlerweile eine Lösung, um Readings eines Dummys im Frontend anzeigen zu lassen?
Gefunden habe ich nichts dazu :(
Schönes Wochenende.
Rainer
Zitat von: dora71 am 18 Februar 2017, 11:38:04
Ich weiß, das dieser Thread schon etwas älter ist, aber gibt es mittlerweile eine Lösung, um Readings eines Dummys im Frontend anzeigen zu lassen?
Gefunden habe ich nichts dazu :(
Ja, weil es dazu nichts zu sagen gibt. Warum sollten Readings von Dummys nicht angezeigt werden?
Sag' doch mal genauer, was das Problem ist. Das ganze noch garniert mit einem list des Dummys und man kann vielleicht helfen.
Gruß,
Thorsten
du kannst mit stateFormat beeinflussen was im STATE angezeigt wird.
OK, teilweise kann ich mir die Antwort jetzt selber geben, aber noch einmal zur Verdeutlichung/Hilfe/Verständnis für alle:
Ich habe einen Dummy mit Readings bestückt, das ging über setreading
auch einwandfrei :)
Diese Readings möchte ich mir nun im Webfrontend anzeigen lassen, am liebsten in Form einer Tabelle, zumindest aber untereinander. Und zwar anstelle des "state", welcher ja üblicherweise im Frontend bei Aufruf des Raumes angezeigt wird.
Habe es dank igami und stateFormat
folgendermaßen hinbekommen:
{"TuxRacer: ".ReadingsVal("$name","TuxRacer","0")." km
Morla: ".ReadingsVal("$name","Morla","0")." km
Schiggi: ".ReadingsVal("$name","Schiggi","0")." km
Flocke: ".ReadingsVal("$name","Flocke_Cat","0")." km
Lisa: ".ReadingsVal("$name","Dolphin_Lisa","0")." km
"}
Allerdings bekomme ich keinen Zeilenumbruch hin :(
Ich habe es mit "\n", "\r\n" probiert, aber es werden mir alle Werte hintereinander angezeigt.
Ist das überhaupt möglich, oder brauche ich gar nicht weiter herumprobieren?
Interessanterweise liefert mir ein list auf den Dummy (TBRennen):
Internals:
CFGFN
NAME TBRennen
NR 52691
STATE TuxRacer: 2699.5 km
Morla: 3103.1 km
Schiggi: 2989.0 km
Flocke: 23965.7 km
Lisa: 2483.9 km
TYPE dummy
Readings:
2017-02-18 11:31:28 Dolphin_Lisa 2483.9
2017-02-18 11:31:26 Flocke_Cat 23965.7
2017-02-18 11:31:30 Morla 3103.1
2017-02-18 11:31:32 Schiggi 2989.0
2017-02-18 11:31:24 TuxRacer 2699.5
2017-02-18 09:06:46 state TuxRacer
Attributes:
group Web
room Info
stateFormat {"TuxRacer: ".ReadingsVal("$name","TuxRacer","0")." km
Morla: ".ReadingsVal("$name","Morla","0")." km
Schiggi: ".ReadingsVal("$name","Schiggi","0")." km
Flocke: ".ReadingsVal("$name","Flocke_Cat","0")." km
Lisa: ".ReadingsVal("$name","Dolphin_Lisa","0")." km
"}
Da sind sogar neue Zeilen ohne "\n" drin :o
Gruß
Rainer
einen Zeilenumbruch bekommst du mit <br>
ansonsten schau dir readingsGroup an.