Hi!
Ich habe einen DOIF der mit in die Device Overviev durch einen "state" attribut eine durchschnittstemperatur von 3 Thermometern zaubert. Das funktioniert gut.
Miene Frage: Ist es irgendwie möglich bei einen z.B. einem Syntaxerro im Attribut "state" einfach XXX im stateausgibt?
Ich frage weil ich die Durschnittstemperatur im FTUI anzeigen lasse. Heute ist die Wetterstation ausgefallen und der Wert war ??? dadurch hatte ich im state einen mega langen Syntaxerror welcher meine Anzeige im FTUI völlich "zerschossen" hat... Ich bräuchte einfach z.b. XXX als Ausgabe wenn das was mächtig nicht stimmt in der sprint Berechnung im state...
Geht sowas? Und wenn ja, wie?
Danke!
Internals:
DEF ##
FUUID 603c9baf-f33f-e7ed-47cf-2e4fd7e902138c5f
FVERSION 98_DOIF.pm:0.253860/2021-12-28
MODEL FHEM
NAME DOIFTempDurschnitt
NOTIFYDEV TempAussenEingang,TempAussenCarport,WetterStation,global
NR 138
NTFY_ORDER 50-DOIFTempDurschnitt
STATE 3.53
TYPE DOIF
VERSION 25386 2021-12-28 22:19:25
READINGS:
2021-03-01 08:45:51 cmd 0
2021-03-01 08:47:37 mode enabled
2022-01-25 19:58:27 state 3.53
Regex:
STATE:
TempAussenCarport:
STATE:
temperature ^TempAussenCarport$:^temperature:
TempAussenEingang:
STATE:
temperature ^TempAussenEingang$:^temperature:
WetterStation:
STATE:
ACTUAL_TEMPERATURE ^WetterStation$:^ACTUAL_TEMPERATURE:
accu:
collect:
condition:
do:
0:
helper:
DEVFILTER ^global$|^WetterStation$|^TempAussenCarport$|^TempAussenEingang$
NOTIFYDEV global|WetterStation|TempAussenCarport|TempAussenEingang
event battery: ok,temperature: 3.5
globalinit 1
last_timer 0
sleeptimer -1
triggerDev TempAussenCarport
DOIF_eventa:
3.53
DOIF_eventas:
state: 3.53
triggerEvents:
battery: ok
temperature: 3.5
triggerEventsState:
battery: ok
temperature: 3.5
perlblock:
uiState:
uiTable:
Attributes:
DbLogExclude .*
event-min-interval 300
room Astro & Wetter,DOIF,LaCrosse
state {(sprintf("%.2f",([TempAussenCarport:temperature]+[TempAussenEingang:temperature]+[WetterStation:ACTUAL_TEMPERATURE])/3))}
Die sollten im FTUI N/A für solche Fälle einbauen. Oder du steigst auf ring um, da ist es schon drin :D
Spaß bei Seite, im state hast du ja schon Perlcode, da musst du einfach eine if-Abfrage einbauen, die statt der Berechnung einfach N/A zurückgibt.
Zitat von: Damian am 25 Januar 2022, 20:39:34
Die sollten im FTUI N/A für solche Fälle einbauen. Oder du steigst auf ring um, da ist es schon drin :D
Spaß bei Seite, im state hast du ja schon Perlcode, da musst du einfach eine if-Abfrage einbauen, die statt der Berechnung einfach N/A zurückgibt.
Was ist denn Ring? :o
Habe von Perl wirklich exakt 0 Ahnung... Wie müsste der Code aussehen?
Zitat von: misux am 26 Januar 2022, 09:52:17
Was ist denn Ring? :o
Habe von Perl wirklich exakt 0 Ahnung... Wie müsste der Code aussehen?
Das ist eine Funktion von vielen, als Alternative zu FTUI:
https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Farbskalierte_Anzeige_eines_Zahlenwertes_mit_Hilfe_der_universellen_SVG-Funktion_ring