Hallo,
ich benutze das Style Flex (https://forum.fhem.de/index.php/topic,101749.0.html) v.a. wegen der guten Darstellung auf den Mobile Devices. Um eine einfach Uebersicht der wichtigsten Werte zu generieren, benutze ich RG, siehe Bild. Nun möchte ich das Format des timestamp ändern. Bin aber im Forum nicht fündig geworden.
Ich möchte gerne das Format "Di, 17:03", also viel kürzer. Beim StateFormat habe ich dies mittels myUtils lösen können
sub timestampSHORT($) {
my ($device) = @_;
my @days = qw/So Mo Di Mi Do Fr Sa/;
my @month = qw/Jan Feb Mar Apr May Jun Jul Aug Sep Okt Nov Dec/;
ReadingsTimestamp($device,"state","") =~ /^20(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
my $wday = $days[(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
my $month = $month[(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
return "$wday, $4";
}
Bei stateFormat dann folgendes eingeben:
{ timestampSHORT($name) }
Doch bei den ReadingsGroup schaffe ich dies nicht.
Folgende Links habe ich gefunden, aber haben mir nicht geholfen:
https://forum.fhem.de/index.php/topic,61364.msg527724.html#msg527724
https://forum.fhem.de/index.php/topic,75493.msg673010.html#msg673010
Ist das überhaupt generell möglich?
Lg c
Hallo, hier eine Readingsgroup mit formatierten timestrings:
myutils funktion: (von einem anderen Forumsauthor :))
sub WeekdayAndTimeFromTimestamp($){
my ($TimeStamp) = $_[0];
my @days = qw/So Mo Di Mi Do Fr Sa/;
$TimeStamp =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
my $wday = $days [(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
return "$wday $4";
}
Internals:
DEF <%temperature_humidity>,<°C>,<%>,<hPa>,<@>
Garten:realtemperature,realhumidity,<>,<{WeekdayAndTimeFromTimestamp(ReadingsTimestamp($DEVICE,"state",""))}@state>
SD_WS.*:realtemperature,realhumidity,<>,<{WeekdayAndTimeFromTimestamp(ReadingsTimestamp($DEVICE,"state",""))}@state>
wetter_IngelheimNord:temperature,humidity,pressure,<{WeekdayAndTimeFromTimestamp(ReadingsTimestamp($DEVICE,"temperature",""))}@temperature>
Wetter_Pro:temperature,humidity,pressure,<{WeekdayAndTimeFromTimestamp(ReadingsTimestamp($DEVICE,"state",""))}@state>
XTHP1:temperature,humidity,pressure_rel,<{WeekdayAndTimeFromTimestamp(ReadingsTimestamp($DEVICE,"temperature",""))}@temperature>
FUUID 5cd6b4e3-f33f-2206-0c88-1457c71da4663c6b
FVERSION 33_readingsGroup.pm:0.207110/2019-12-11
NAME Temperaturen_ALL
NR 393
NTFY_ORDER 50-Temperaturen_ALL
STATE Initialized
TYPE readingsGroup
alwaysTrigger 1
changed 0
mayBeVisible 1
CONTENT:
Garten 1
SD_WS07_TH_421 1
SD_WS07_TH_462 1
SD_WS07_TH_7D3 1
SD_WS37_TH_A13 1
Wetter_Pro 1
XTHP1 1
wetter_IngelheimNord 1
CONTENT2:
DEVICES:
ARRAY(0x73026e0)
ARRAY(0x1b140e0)
ARRAY(0x73c0cd8)
ARRAY(0x70a7630)
ARRAY(0x70b7578)
ARRAY(0x6fd7a48)
ARRAY(0x721b460)
ARRAY(0x718a9f0)
ARRAY(0x69e7c20)
READINGS:
fhem:
lastDefChange 5
last_update 1578390931.52597
helper:
DEF
mapping %ALIAS
nameStyle {"style=font-size:14px"}
valueFormat {"%1.0f"}
valueStyle {
if($READING =~ m/humidity/)
{"style=\"color:#".substr(Color::pahColor(0,50,100,$VALUE,[255,255,0, 127,255,0, 0,255,0, 0,255,255, 0,127,255]),0,6)."\""}
elsif ($READING =~ m/temperature/)
{"style=\"text-align:right;color:#".substr(Color::pahColor(-10,15,30,$VALUE,2),0,6)."\""}
else
{'style="text-align:right"'}
}
positions:
Garten.realhumidity 2:2
Garten.realtemperature 2:1
SD_WS07_TH_421.realhumidity 3:2
SD_WS07_TH_421.realtemperature 3:1
SD_WS07_TH_462.realhumidity 4:2
SD_WS07_TH_462.realtemperature 4:1
SD_WS07_TH_7D3.realhumidity 5:2
SD_WS07_TH_7D3.realtemperature 5:1
SD_WS37_TH_A13.realhumidity 6:2
SD_WS37_TH_A13.realtemperature 6:1
Wetter_Pro.humidity 8:2
Wetter_Pro.pressure 8:3
Wetter_Pro.temperature 8:1
XTHP1.humidity 9:2
XTHP1.pressure_rel 9:3
XTHP1.temperature 9:1
wetter_IngelheimNord.humidity 7:2
wetter_IngelheimNord.pressure 7:3
wetter_IngelheimNord.temperature 7:1
recalc:
undef
ARRAY(0x69f6b90)
ARRAY(0x6b9f7a8)
values:
formated:
undef
ARRAY(0x69ecb38)
ARRAY(0x73fc898)
ARRAY(0x6948a40)
orig:
undef
ARRAY(0x70b2c38)
ARRAY(0x70b32c8)
ARRAY(0x730c870)
prefixsuffix:
undef
ARRAY(0x53cee00)
ARRAY(0x6e65f80)
ARRAY(0x6a30050)
Attributes:
DbLogExclude .*
alwaysTrigger 1
icon temperature_humidity
mapping %ALIAS
nameStyle {"style=font-size:14px"}
room 1,Heizung,Wetter
style {"style=font-size:16px"}
valueFormat {"%1.0f"}
valueStyle {
if($READING =~ m/humidity/)
{"style=\"color:#".substr(Color::pahColor(0,50,100,$VALUE,[255,255,0, 127,255,0, 0,255,0, 0,255,255, 0,127,255]),0,6)."\""}
elsif ($READING =~ m/temperature/)
{"style=\"text-align:right;color:#".substr(Color::pahColor(-10,15,30,$VALUE,2),0,6)."\""}
else
{'style="text-align:right"'}
}
Wow, darauf wäre ich nie im Leben gekommen. Habe die ganze Zeit am Style rumgegrübelt. Super, danke.
Zitat von: KlaGho am 07 Januar 2020, 14:12:44
sub WeekdayAndTimeFromTimestamp($){
my ($TimeStamp) = $_[0];
my @days = qw/So Mo Di Mi Do Fr Sa/;
$TimeStamp =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
my $wday = $days [(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
return "$wday $4";
}
hmm, doch noch eine kleine Kosmetikfrage. Jetzt erstellt das Sub ja das Format "Di 19:37". Was müsste ich im Sub ändern um "07.01. 19:37" zu erhalten? grosse Geschichte? Danke fürs Feedback.
return "$3.$2 $4";
Folgende Zeilen sind dann überflüssig:
my @days = qw/So Mo Di Mi Do Fr Sa/;
my $wday = $days [(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
Das klappt alles bestens! Und trotzdem habe ich ncoh eine Ergänzungsfrage. Wie kann ich das Format bei einem Internal Zeitspempel ändern?
Ich habe konkret folgende ReadingsGroup:
defmod Signalstaerke_EnOcean readingsGroup TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,+TCM_ESP3_0_RepeatingCounter,+TCM_ESP3_0_TIME
attr Signalstaerke_EnOcean room 01_Status
attr Signalstaerke_EnOcean style class="block wide choetzuNoIconThreeValue"
Der Internal "+TCM_ESP3_0_TIME" möchte ich nun wie bei den Timestamps darstellen. Ich kriege das aber irgendwie nicht hin, weder im valueFormat noch im Style...
kann mir hier jemand helfen? Danke.
Statt ReadingsTimestamp, InternalVal
Formattierung mit der gleiche Funktion
super, danke..... Das klappt von der Formatierung her tiptop. Doch leider verhaut es mir die Tabelle. Es werden nun auch die Devices OHNE Internal-Werte angezeigt... Keine Ahnung wieso. Das war vorher nicht so.
Hier das readingGroups:
TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,+TCM_ESP3_0_RepeatingCounter,<{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>
Siehe Bild.
Zitat von: choetzu am 22 Januar 2020, 07:37:01
super, danke..... Das klappt von der Formatierung her tiptop. Doch leider verhaut es mir die Tabelle. Es werden nun auch die Devices OHNE Internal-Werte angezeigt... Keine Ahnung wieso. Das war vorher nicht so.
Hier das readingGroups:
TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,+TCM_ESP3_0_RepeatingCounter,<{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>
Siehe Bild.
Ups, habs grad im Log gemerkt, da kommen nun etliche Fehlermeldungen. Irgendwas scheine ich noch falsch zu machen...
2020.01.22 07:31:29 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:13 3: Aktor_L_Terasse_NodOn6: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_L_Zypresse_NodOn10: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_NodOn1: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_NodOn2: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_NodOn3: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_NodOn4: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_NodOn5: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Aktor_NodOn9: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Bewegungssensor_NodOn: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Buero_St_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: EZ_St1_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: EZ_St2_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Kueche_D_FUD61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Kueche_St_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: SZ_St1_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: SZ_St2_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Spiri_St_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Steingarten_D_FUD61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: TV_D_FUD61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: TV_St_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Taster_D_Esszimmer: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Taster_D_Technik: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Taster_EnO: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Taster_EnO2: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Taster_Office: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: WZ_St1_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: WZ_St2_FSB61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
2020.01.22 07:35:13 3: Wohnzimmer_D_FUD61: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE: Unmatched ( in regex; marked by <-- HERE in m/^<{WeekdayAndTimeFromTimestamp(InternalVal( <-- HERE $DEVICE$/ at ./FHEM/33_readingsGroup.pm line 1076.
[Wed Jan 22 07:35:32 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "@TCM_ESP3_0_TIME" isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
[Wed Jan 22 07:35:33 2020] fhem.pl: Argument "WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP..." isn't numeric in subtraction (-) at ./FHEM/99_myUtils.pm line 129.
2020.01.22 07:35:33 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
Woher kommt jetzt diesesm/^<{WeekdayAndTimeFromTimestamp(
?
Zeig mal bitte wieder ein "list" vom Ding
Zitat von: amenomade am 22 Januar 2020, 18:36:25
Woher kommt jetzt diesesm/^<{WeekdayAndTimeFromTimestamp(
?
Zeig mal bitte wieder ein "list" vom Ding
von hier, siehe zweite Message in diesem Beitrag -->
Zitat von: KlaGho am 07 Januar 2020, 14:12:44
Hallo, hier eine Readingsgroup mit formatierten timestrings:
myutils funktion: (von einem anderen Forumsauthor :))
sub WeekdayAndTimeFromTimestamp($){
my ($TimeStamp) = $_[0];
my @days = qw/So Mo Di Mi Do Fr Sa/;
$TimeStamp =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
my $wday = $days [(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
return "$wday $4";
}
und hier noch das listing:
Internals:
DEF TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,<{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>
FUUID 5c4f09cf-f33f-8001-c328-9c0ce3c6bc7c7ffe
NAME Signalstaerke_EnOcean
NR 281
NTFY_ORDER 50-Signalstaerke_EnOcean
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
Aktor_L_Terasse_NodOn6 1
Aktor_L_Zypresse_NodOn10 1
Aktor_NodOn1 1
Aktor_NodOn2 1
Aktor_NodOn3 1
Aktor_NodOn4 1
Aktor_NodOn5 1
Aktor_NodOn9 1
Bewegungssensor_NodOn 1
Buero_St_FSB61 1
EZ_St1_FSB61 1
EZ_St2_FSB61 1
Garage_T_FSR61 1
Kueche_D_FUD61 1
Kueche_St_FSB61 1
SZ_St1_FSB61 1
SZ_St2_FSB61 1
Spiri_St_FSB61 1
Steingarten_D_FUD61 1
TV_D_FUD61 1
TV_St_FSB61 1
Taster_D_Esszimmer 1
Taster_D_Technik 1
Taster_EnO 1
Taster_EnO2 1
Taster_Office 1
WZ_St1_FSB61 1
WZ_St2_FSB61 1
Wohnzimmer_D_FUD61 1
CONTENT2:
DEVICES:
ARRAY(0x7afb560)
ARRAY(0x5bda888)
ARRAY(0x5e264d0)
ARRAY(0x6a06440)
ARRAY(0x6a393b0)
ARRAY(0x6d43580)
ARRAY(0x7a8d3a0)
ARRAY(0x660a3a8)
ARRAY(0x6df4338)
ARRAY(0x6a3dfb8)
ARRAY(0x6a3fd58)
ARRAY(0x65fbd28)
ARRAY(0x61688f0)
ARRAY(0x7ae4320)
ARRAY(0x697c650)
ARRAY(0x65f5988)
ARRAY(0x6e25380)
ARRAY(0x6ec0650)
ARRAY(0x7ade708)
ARRAY(0x7bfb3e0)
ARRAY(0x7aafc40)
ARRAY(0x6d57df8)
ARRAY(0x6e84a88)
ARRAY(0x6d58158)
ARRAY(0x660f3b8)
ARRAY(0x62a9b48)
ARRAY(0x7bd6fa0)
ARRAY(0x6a3cd98)
ARRAY(0x6a41098)
fhem:
lastDefChange 39
last_update 1579715950.55085
helper:
DEF
positions:
Aktor_L_Terasse_NodOn6.TCM_ESP3_0_RSSI 1:2
Aktor_L_Terasse_NodOn6.TCM_ESP3_0_ReceivingQuality 1:1
Aktor_L_Zypresse_NodOn10.TCM_ESP3_0_RSSI 2:2
Aktor_L_Zypresse_NodOn10.TCM_ESP3_0_ReceivingQuality 2:1
Aktor_NodOn3.TCM_ESP3_0_RSSI 5:2
Aktor_NodOn3.TCM_ESP3_0_ReceivingQuality 5:1
Aktor_NodOn9.TCM_ESP3_0_RSSI 8:2
Aktor_NodOn9.TCM_ESP3_0_ReceivingQuality 8:1
Bewegungssensor_NodOn.TCM_ESP3_0_RSSI 9:2
Bewegungssensor_NodOn.TCM_ESP3_0_ReceivingQuality 9:1
Buero_St_FSB61.TCM_ESP3_0_RSSI 10:2
Buero_St_FSB61.TCM_ESP3_0_ReceivingQuality 10:1
Garage_T_FSR61.TCM_ESP3_0_RSSI 13:2
Garage_T_FSR61.TCM_ESP3_0_ReceivingQuality 13:1
Kueche_D_FUD61.TCM_ESP3_0_RSSI 14:2
Kueche_D_FUD61.TCM_ESP3_0_ReceivingQuality 14:1
Kueche_St_FSB61.TCM_ESP3_0_RSSI 15:2
Kueche_St_FSB61.TCM_ESP3_0_ReceivingQuality 15:1
SZ_St1_FSB61.TCM_ESP3_0_RSSI 16:2
SZ_St1_FSB61.TCM_ESP3_0_ReceivingQuality 16:1
SZ_St2_FSB61.TCM_ESP3_0_RSSI 17:2
SZ_St2_FSB61.TCM_ESP3_0_ReceivingQuality 17:1
Spiri_St_FSB61.TCM_ESP3_0_RSSI 18:2
Spiri_St_FSB61.TCM_ESP3_0_ReceivingQuality 18:1
Steingarten_D_FUD61.TCM_ESP3_0_RSSI 19:2
Steingarten_D_FUD61.TCM_ESP3_0_ReceivingQuality 19:1
TV_D_FUD61.TCM_ESP3_0_RSSI 20:2
TV_D_FUD61.TCM_ESP3_0_ReceivingQuality 20:1
TV_St_FSB61.TCM_ESP3_0_RSSI 21:2
TV_St_FSB61.TCM_ESP3_0_ReceivingQuality 21:1
Taster_D_Esszimmer.TCM_ESP3_0_RSSI 22:2
Taster_D_Esszimmer.TCM_ESP3_0_ReceivingQuality 22:1
Taster_EnO.TCM_ESP3_0_RSSI 24:2
Taster_EnO.TCM_ESP3_0_ReceivingQuality 24:1
values:
formated:
undef
ARRAY(0x6168cf8)
ARRAY(0x65f5340)
orig:
undef
ARRAY(0x6609d40)
ARRAY(0x5ddbb30)
prefixsuffix:
undef
ARRAY(0x62d52c0)
ARRAY(0x6a3af20)
Attributes:
comment TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,+TCM_ESP3_0_RepeatingCounter,+TCM_ESP3_0_TIME
room 01_Status
style class="block wide tomNoIconThreeValue"
2020.01.22 07:31:29 3: Signalstaerke_EnOcean: <{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>: Month '-1' out of range 0..11 at ./FHEM/99_myUtils.pm line 129.
Das kommt wahrscheinlich von der Funktion selbst. Zeig mal das myUtils Stück
Der Rest könnte damit verbunden sien: wenn die Perl Funktion einen Fehler liefert, weiss ich nicht, wie RG reagiert
Zitat von: amenomade am 22 Januar 2020, 23:48:43
Das kommt wahrscheinlich von der Funktion selbst. Zeig mal das myUtils Stück
guten Morgen, danke für die Hilfe. Here we go:
sub WeekdayAndTimeFromTimestamp($){
my ($TimeStamp) = $_[0];
my @days = qw/So Mo Di Mi Do Fr Sa/;
$TimeStamp =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
my $wday = $days [(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
return "$3.$2, $4";;
}
Ich hatte es aber geschrieben:
ZitatFolgende Zeilen sind dann überflüssig:
my @days = qw/So Mo Di Mi Do Fr Sa/;
my $wday = $days [(localtime(timelocal(0,0,0,$3,$2-1,$1-1900)))[6]];
sorry, mea gulpa.. habs schonmal geändert gehabt und da es dann trotzdem nicht funktionierte, habe ich den Originalzustand hergestellt. Ich habe es aber wieder wie folgt geändert. So ist es nun:
sub WeekdayAndTimeFromTimestamp($){
my ($TimeStamp) = $_[0];
$TimeStamp =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
return "$3.$2, $4";;
}
Es funktioniert leider wie gesagt nicht:
[Thu Jan 23 21:22:27 2020] fhem.pl: Use of uninitialized value $3 in concatenation (.) or string at ./FHEM/99_myUtils.pm line 128.
[Thu Jan 23 21:22:27 2020] fhem.pl: Use of uninitialized value $4 in concatenation (.) or string at ./FHEM/99_myUtils.pm line 128.
Zeile 128:
return "$3.$2, $4";;
und die Darstellung ist auch noch nicht korrekt, sprich die Devices ohne Internals-Values werden auch dargestellt.. Siehe Bild
Dann haben wahrscheinlich einige Geräte dieses Internal Timestamp nicht. Das kannst Du sehen, indem Du ein Log3 Befehl in der Funktion in myUtils einbaust, z.B.
Log3 "Signalstaerke_EnOcean",1, "Timestamp=$TimeStamp";
Zitat von: amenomade am 24 Januar 2020, 00:42:39
Dann haben wahrscheinlich einige Geräte dieses Internal Timestamp nicht. Das kannst Du sehen, indem Du ein Log3 Befehl in der Funktion in myUtils einbaust, z.B.
Log3 "Signalstaerke_EnOcean",1, "Timestamp=$TimeStamp";
dem ist genau so. Die Internal Timestamps werden erst bei der Betätigung des EnOcean Devices gesetzt. Und wenn ich ein "shutdown restart" mache, sind alle Internal Timestamps wieder leer, bis ich sie bediene. Komisch ist nur, dass es bislang mit folgendem Code kein Problem war, denn es wurden nur die Zeilen aufgeführt, welche tatsächlich einen Wert hatten.
TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,+TCM_ESP3_0_RepeatingCounter,+TCM_ESP3_0_TIME
Siehe Bild.
Kann man das auch irgendwie erreichen? mit
TYPE=EnOcean:+TCM_ESP3_0_ReceivingQuality,+TCM_ESP3_0_RSSI,+TCM_ESP3_0_RepeatingCounter,<{WeekdayAndTimeFromTimestamp(InternalVal($DEVICE,"TCM_ESP3_0_TIME",""))}@TCM_ESP3_0_TIME>
Evtl. könnte man das InternalTimestamp ja nur formatieren (mit einem Style Attr), wenn es verfügbar ist. Aber da wüsste ich nicht wie.... mit
{ +TCM_ESP3_0_TIME => ...... } ??
sub WeekdayAndTimeFromTimestamp($){
my ($TimeStamp) = $_[0];
return undef if (!$TimeStamp);
$TimeStamp =~ /^(\d+)-(\d+)-(\d+)\s(\d+:\d+):(\d+)$/;
return "$3.$2, $4";;
}
Wow, jetzt klappt alles hervorragend! Ganz herzlichen Dank! Brutal dankbar.