[gelöst] Wie die Tage jetzt ohne Komma ?

Begonnen von TomLee, 24 August 2019, 15:31:52

Vorheriges Thema - Nächstes Thema

Otto123

#135
Moin,

das Problem ist wieder
my $t = fhem('get '.$NAME.' events timeFormat:"%F" format:custom="$T1" limit:from=0,count=1',1);
Der get Befehl liefert beim Calendar Start irgendwas ungültiges und damit kommt der Fehler.
Ich habe mal $t = '2022-01-12 00:00:00';hinter die Zeile gesetzt und der fehler ist weg.

Man müsste also irgendwie verzögern oder einen Ersatzwert machen  :-[ ???

Edit: Wobei ich gerade wieder nicht verstehe. Beim Start liefert der get Befehl eigentlich den richtigen Wert:
Zitatget AbfallKalender events timeFormat:"%F 00:00:00" format:custom="$T1" limit:from=43200,count=1 : 2022-01-12 00:00:00
Edit: Ich bin ein Trollo, ich hatte zwei ähnliche Definitionen, die zweite gelöscht und die Meldung ist weg. Ich weiß allerdings jetzt auch nicht mehr woher sie wirklich kam. Ich behaupte mal, der Code liefert keine Fehler:
attr AbfallKalender userReadings nextWasteDays:triggered {\
  my $t = fhem('get '.$name.' events timeFormat:"%F 00:00:00" format:custom="$T1" limit:from=43200,count=1',1);;\
  my $day = (time_str2num($t) - time_str2num(strftime('%F 00:00:00',localtime(time))))/86400;;\
  $day? ($day>1 ? $day:"morgen"):"heute"},\
Tonne:triggered {fhem('get '.$name.' events format:custom="$S" limit:from=43200,count=1',1)}


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

TomLee

#136
Zitat$t = '2022-01-12 00:00:00';

Das kann ich schon wieder bei mir so nicht nachvollziehen, wenn ich das bei mir mache:
if (!defined $t) {$t='2022-01-12 00:00:00'};


Kommt die Meldung mit Zeile 21 weiterhin.

Ich hab jetzt einfach mal zwei Debug-Ausgaben eingebaut, die erste zeigt das in $t sehr wohl der richtige Wert drin steht aber die von localtime wird nicht ins Log geschrieben.
Mach ich was falsch oder ist es bei dir auch so ?

sub au_nwd {
my $NAME = shift // return;
my $t = fhem('get '.$NAME.' events timeFormat:"%F" format:custom="$T1" limit:from=0,count=1',1);
if (!defined $t) {$t=0};
Debug 'hier:'.$t;
my $day=(time_str2num($t) - time_str2num(strftime '%F',localtime))/86400;
Debug 'hierlocaltime'.localtime
# my $day=(time_str2num(fhem('get '.$NAME.' events timeFormat:"%F" format:custom="$T1" limit:from=0,count=1',1)) - time_str2num(strftime '%F',localtime))/86400;
return $day;
}


2022.01.09 12:22:14 0: Server started with 451 defined entities (fhem.pl:25359/2021-12-20 perl:5.028001 os:linux user:fhem pid:32241)
2022.01.09 12:22:46 1: DEBUG>hier:2022-01-12
2022.01.09 12:22:46 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2022.01.09 12:22:46 3: eval: {au_nwd($NAME)}
2022.01.09 12:22:53 1: PERL WARNING: Use of uninitialized value $t in substitution (s///) at ./FHEM/99_Calendar_Utils.pm line 105.
2022.01.09 12:22:53 3: eval: {pc_cb2r($NAME,'1','1')}
2022.01.09 12:22:53 1: PERL WARNING: Use of uninitialized value $t in split at ./FHEM/99_Calendar_Utils.pm line 106.
2022.01.09 12:22:53 3: eval: {pc_cb2r($NAME,'1','1')}


edit:

Fehler schon erkannt, fehlendes Semikolon, ich teste nochmal.

TomLee

Beide Werte sind eigentlich vorhanden  ;D

2022.01.09 12:44:13 0: Server started with 451 defined entities (fhem.pl:25359/2021-12-20 perl:5.028001 os:linux user:fhem pid:32656)
2022.01.09 12:44:42 1: DEBUG>hier2022-01-12
2022.01.09 12:44:42 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2022.01.09 12:44:42 3: eval: {au_nwd($NAME)}
2022.01.09 12:44:42 1: DEBUG>hierlocaltimeSun Jan  9 12:44:42 2022

TomLee

ZitatIch behaupte mal, der Code liefert keine Fehler:

Einmal noch, dann hab ich auch erstmal keine Lust mehr.

Startest du FHEM auch neu oder machst nur einen reload ?

Hab das jetzt ohne Sub probiert, direkt im userReadings, genauso wie du es gemacht hast, bei mir bleibt die Meldung  :'(

Zitatdefmod cal_Abfallkalender Calendar ical file ./Abfall.ics 86400
attr cal_Abfallkalender comment sync:triggered {my $t='05:00:00';;;;if (ReadingsVal($name,'nextUpdate','') !~ $t) {fhem("defmod a_$name at $t set $name update");;;;'defined'} else {'done'}}\
\
nextWaste:triggered {au_nw($NAME)},\
nextWastedate:triggered {au_nwda($NAME)},\
nextWastedays:triggered {au_nwd($NAME)},\
nextWaste_ftui:triggered {au_nwf($NAME)},\
ftui-hide:triggered {au_fh($NAME)},\
sync:triggered {au_sync($NAME,ReadingsVal($name,'nextUpdate',''))}
attr cal_Abfallkalender defaultFormat "$T1 $T2 $S"
attr cal_Abfallkalender devStateIcon 1.Re.*:muelltonne@grey 1.Bi.*:muelltonne@brown 1.Sch.*:muelltonne@red 1.He.*:muelltonne@green
attr cal_Abfallkalender hideOlderThan 1
attr cal_Abfallkalender room Kalender
attr cal_Abfallkalender stateFormat 1:nextWaste\
nextWaste am nextWastedate
attr cal_Abfallkalender userReadings nextWaste:triggered {au_nw($NAME)},\
nextWastedate:triggered {au_nwda($NAME)},\
nextWaste_ftui:triggered {ReadingsVal($name,'nextWaste','').'_'.ReadingsVal($name,'nextWastedays','')},\
ftui-hide:triggered {au_fh($NAME)},\
sync:triggered {au_sync($NAME,ReadingsVal($name,'nextUpdate',''))},\
test:triggered {my $ctd = fhem('get '.$NAME.' events format:custom="$T1" timeFormat:"%d.%m.%Y" filter:field(summary)=~"Bioabfall"',1);;\
return $ctd;;},\
nextWasteDaysOtto:triggered {my $t = fhem('get '.$name.' events timeFormat:"%F 00:00:00" format:custom="$T1" limit:from=0,count=1',1);;\
   Debug 'hier'.$t;;\
   my $day=(time_str2num($t) - time_str2num(strftime ('%F',localtime(time))))/86400;;\
   Debug 'hierlocaltime'.localtime(time);;\
   return $day;;\
   }


setstate cal_Abfallkalender 1:Restabfall/Wertstoffe\
Restabfall/Wertstoffe am 12.01.2022
setstate cal_Abfallkalender 2022-01-09 15:15:11 ftui-hide 1
setstate cal_Abfallkalender 2022-01-09 15:15:11 lastUpdate 2022-01-09 15:15:05
setstate cal_Abfallkalender 2022-01-09 15:15:11 nextUpdate 2022-01-10 15:15:05
setstate cal_Abfallkalender 2022-01-09 15:15:11 nextWakeup 2022-01-10 15:15:05
setstate cal_Abfallkalender 2022-01-09 15:15:11 nextWaste Restabfall/Wertstoffe
setstate cal_Abfallkalender 2022-01-09 15:15:11 nextWasteDaysOtto 3
setstate cal_Abfallkalender 2022-01-09 15:15:11 nextWaste_ftui Restabfall/Wertstoffe_3
setstate cal_Abfallkalender 2022-01-09 15:15:11 nextWastedate 12.01.2022
setstate cal_Abfallkalender 2022-01-09 14:31:51 nextWastedays 3
setstate cal_Abfallkalender 2022-01-09 15:15:11 state triggered
setstate cal_Abfallkalender 2022-01-09 15:15:11 sync defined
setstate cal_Abfallkalender 2022-01-09 15:15:11 test 19.01.2022\
02.02.2022\
16.02.2022\
02.03.2022\
16.03.2022\
30.03.2022\
13.04.2022\
27.04.2022\
11.05.2022\
25.05.2022\
09.06.2022\
22.06.2022\
06.07.2022\
20.07.2022\
03.08.2022\
17.08.2022\
31.08.2022\
14.09.2022\
28.09.2022\
12.10.2022\
26.10.2022\
09.11.2022\
23.11.2022\
07.12.2022\
21.12.2022

2022.01.09 15:15:11 1: DEBUG>hier2022-01-12 00:00:00
2022.01.09 15:15:11 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2022.01.09 15:15:11 3: eval: {my $t = fhem('get '.$name.' events timeFormat:"%F 00:00:00" format:custom="$T1" limit:from=0,count=1',1);
Debug 'hier'.$t;
my $day=(time_str2num($t) - time_str2num(strftime ('%F',localtime(time))))/86400;
Debug 'hierlocaltime'.localtime(time);
return $day;
}

Otto123

Zitat von: TomLee am 09 Januar 2022, 15:19:04
Startest du FHEM auch neu oder machst nur einen reload ?
Ich starte FHEM neu.

Ich weiß vor allem nicht was an meinem Code im anderen Calendar wirklich anders war ...
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