hi,
suche eine Möglichkeit einen Dummy mit datum zu setzen,
Readings:
mo-datum 7.05.2018
di-datum 8.05.2018
.
.
so-datum 13.05.2018
also im Prinzip So auf Mo nacht wird der Dummy:mo-datum auf aktuelle datum gesetzt,
alle anderen tage, Tag=Tag+1;
alle Befehle die ich unter perl gefunden habe, gehen nicht...
danke
gruss
Dummy:
Internals:
CFGFN
NAME Datum
NR 8
STATE 2018-05-11
TYPE dummy
READINGS:
2018-05-11 00:01:00 state 2018-05-11
2018-05-11 00:01:00 tag0_Jahr 2018
2018-05-11 00:01:00 tag0_Monat 05
2018-05-11 00:01:00 tag0_Monatsname Mai
2018-05-11 00:01:00 tag0_Monatstag 11
2018-05-11 00:01:00 tag0_Wochentag Freitag
2018-05-11 00:01:00 tag1_Jahr 2018
2018-05-11 00:01:00 tag1_Monat 05
2018-05-11 00:01:00 tag1_Monatsname Mai
2018-05-11 00:01:00 tag1_Monatstag 12
2018-05-11 00:01:00 tag1_Wochentag Samstag
2018-05-11 00:01:00 tag2_Jahr 2018
2018-05-11 00:01:00 tag2_Monat 05
2018-05-11 00:01:00 tag2_Monatsname Mai
2018-05-11 00:01:00 tag2_Monatstag 13
2018-05-11 00:01:00 tag2_Wochentag Sonntag
2018-05-11 00:01:00 tag3_Jahr 2018
2018-05-11 00:01:00 tag3_Monat 05
2018-05-11 00:01:00 tag3_Monatsname Mai
2018-05-11 00:01:00 tag3_Monatstag 14
2018-05-11 00:01:00 tag3_Wochentag Montag
2018-05-11 00:01:00 tag4_Jahr 2018
2018-05-11 00:01:00 tag4_Monat 05
2018-05-11 00:01:00 tag4_Monatsname Mai
2018-05-11 00:01:00 tag4_Monatstag 15
2018-05-11 00:01:00 tag4_Wochentag Dienstag
2018-05-11 00:01:00 tag5_Jahr 2018
2018-05-11 00:01:00 tag5_Monat 05
2018-05-11 00:01:00 tag5_Monatsname Mai
2018-05-11 00:01:00 tag5_Monatstag 16
2018-05-11 00:01:00 tag5_Wochentag Mittwoch
Attributes:
group Datum
room Z_System->SystemDummys
Das At dazu:
Internals:
CFGFN
COMMAND {Datum_Dummy()}
DEF *00:01:00 {Datum_Dummy()}
NAME AT.Datum.update
NR 149
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 00:01:00
TIMESPEC 00:01:00
TRIGGERTIME 1526076060
TRIGGERTIME_FMT 2018-05-12 00:01:00
TYPE at
READINGS:
2018-05-11 00:01:00 state Next: 00:01:00
Attributes:
room Z_System->SystemDummys
Und der Code in der MyUtils:
#############################################
# -------- Datums Dummy -------- #
#############################################
sub Datum_Dummy()
{
my @Wochentage = ("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
my @Monatsnamen = ("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
my ($Sekunden0, $Minuten0, $Stunden0, $Monatstag0, $Monat0,
$Jahr0, $Wochentag0, $Jahrestag0, $Sommerzeit0) = localtime(time);
my $CTIME_String = localtime(time);
$Monat0 += 1;
$Jahrestag0 += 1;
$Jahr0 += 1900;
my @tag0 = ("Wochentag","Tag_zahl","Monat","Monat_zahl","Jahr_zahl");
$tag0[0] = $Wochentage[$Wochentag0];
if($Monatstag0 < 10) {$tag0[1] = "0".$Monatstag0;} else {$tag0[1] = $Monatstag0;}
$tag0[2] = $Monatsnamen[$Monat0-1];
if($Monat0 < 10) {$tag0[3] = "0".$Monat0;} else {$tag0[3] = "0".$Monat0;}
$tag0[4] = $Jahr0;
fhem("set Datum $tag0[4]-$tag0[3]-$tag0[1]");
fhem("setreading Datum tag0_Wochentag $tag0[0]; setreading Datum tag0_Monatstag $tag0[1]; setreading Datum tag0_Monatsname $tag0[2]; setreading Datum tag0_Monat $tag0[3]; setreading Datum tag0_Jahr $tag0[4]",);
my ($Sekunden1, $Minuten1, $Stunden1, $Monatstag1, $Monat1,
$Jahr1, $Wochentag1, $Jahrestag1, $Sommerzeit1) = localtime(time+86400);
$Monat1 += 1;
$Jahrestag1 += 1;
$Jahr1 += 1900;
my @tag1 = ("Wochentag","Tag_zahl","Monat","Monat_zahl","Jahr_zahl");
$tag1[0] = $Wochentage[$Wochentag1];
if($Monatstag1 < 10) {$tag1[1] = "0".$Monatstag1;} else {$tag1[1] = $Monatstag1;}
$tag1[2] = $Monatsnamen[$Monat1-1];
if($Monat1 < 10) {$tag1[3] = "0".$Monat1;} else {$tag1[3] = "0".$Monat1;}
$tag1[4] = $Jahr1;
fhem("setreading Datum tag1_Wochentag $tag1[0]; setreading Datum tag1_Monatstag $tag1[1]; setreading Datum tag1_Monatsname $tag1[2]; setreading Datum tag1_Monat $tag1[3]; setreading Datum tag1_Jahr $tag1[4]",);
my ($Sekunden2, $Minuten2, $Stunden2, $Monatstag2, $Monat2,
$Jahr2, $Wochentag2, $Jahrestag2, $Sommerzeit2) = localtime(time+172800);
$Monat2 += 1;
$Jahrestag2 += 1;
$Jahr2 += 1900;
my @tag2 = ("Wochentag","Tag_zahl","Monat","Monat_zahl","Jahr_zahl");
$tag2[0] = $Wochentage[$Wochentag2];
if($Monatstag2 < 10) {$tag2[1] = "0".$Monatstag2;} else {$tag2[1] = $Monatstag2;}
$tag2[2] = $Monatsnamen[$Monat2-1];
if($Monat2 < 10) {$tag2[3] = "0".$Monat2;} else {$tag2[3] = "0".$Monat2;}
$tag2[4] = $Jahr2;
fhem("setreading Datum tag2_Wochentag $tag2[0]; setreading Datum tag2_Monatstag $tag2[1]; setreading Datum tag2_Monatsname $tag2[2]; setreading Datum tag2_Monat $tag2[3]; setreading Datum tag2_Jahr $tag2[4]",);
my ($Sekunden3, $Minuten3, $Stunden3, $Monatstag3, $Monat3,
$Jahr3, $Wochentag3, $Jahrestag3, $Sommerzeit3) = localtime(time+259200);
$Monat3 += 1;
$Jahrestag3 += 1;
$Jahr3 += 1900;
my @tag3 = ("Wochentag","Tag_zahl","Monat","Monat_zahl","Jahr_zahl");
$tag3[0] = $Wochentage[$Wochentag3];
if($Monatstag3 < 10) {$tag3[1] = "0".$Monatstag3;} else {$tag3[1] = $Monatstag3;}
$tag3[2] = $Monatsnamen[$Monat3-1];
if($Monat3 < 10) {$tag3[3] = "0".$Monat3;} else {$tag3[3] = "0".$Monat3;}
$tag3[4] = $Jahr3;
fhem("setreading Datum tag3_Wochentag $tag3[0]; setreading Datum tag3_Monatstag $tag3[1]; setreading Datum tag3_Monatsname $tag3[2]; setreading Datum tag3_Monat $tag3[3]; setreading Datum tag3_Jahr $tag3[4]",);
my ($Sekunden4, $Minuten4, $Stunden4, $Monatstag4, $Monat4,
$Jahr4, $Wochentag4, $Jahrestag4, $Sommerzeit4) = localtime(time+345600);
$Monat4 += 1;
$Jahrestag4 += 1;
$Jahr4 += 1900;
my @tag4 = ("Wochentag","Tag_zahl","Monat","Monat_zahl","Jahr_zahl");
$tag4[0] = $Wochentage[$Wochentag4];
if($Monatstag4 < 10) {$tag4[1] = "0".$Monatstag4;} else {$tag4[1] = $Monatstag4;}
$tag4[2] = $Monatsnamen[$Monat4-1];
if($Monat4 < 10) {$tag4[3] = "0".$Monat4;} else {$tag4[3] = "0".$Monat4;}
$tag4[4] = $Jahr4;
fhem("setreading Datum tag4_Wochentag $tag4[0]; setreading Datum tag4_Monatstag $tag4[1]; setreading Datum tag4_Monatsname $tag4[2]; setreading Datum tag4_Monat $tag4[3]; setreading Datum tag4_Jahr $tag4[4]",);
my ($Sekunden5, $Minuten5, $Stunden5, $Monatstag5, $Monat5,
$Jahr5, $Wochentag5, $Jahrestag5, $Sommerzeit5) = localtime(time+432000);
$Monat5 += 1;
$Jahrestag5 += 1;
$Jahr5 += 1900;
my @tag5 = ("Wochentag","Tag_zahl","Monat","Monat_zahl","Jahr_zahl");
$tag5[0] = $Wochentage[$Wochentag5];
if($Monatstag5 < 10) {$tag5[1] = "0".$Monatstag5;} else {$tag5[1] = $Monatstag5;}
$tag5[2] = $Monatsnamen[$Monat5-1];
if($Monat5 < 10) {$tag5[3] = "0".$Monat5;} else {$tag5[3] = "0".$Monat5;}
$tag5[4] = $Jahr5;
fhem("setreading Datum tag5_Wochentag $tag5[0]; setreading Datum tag5_Monatstag $tag5[1]; setreading Datum tag5_Monatsname $tag5[2]; setreading Datum tag5_Monat $tag5[3]; setreading Datum tag5_Jahr $tag5[4]",);
}
Würde ich heute vermutlich anders machen, stammt noch aus meinen Anfägen mit FHEM. Hatte aber weder Zeit noch Lust es zu optimieren bisher.
hi, danke,
hat mich gleich auf eine andere Idee gebracht,
werde mir die teile raussuchen.
gruss
PS: und läuft.......
Anzeige für einen Nextion 3,5"
(siehe unten)