at am letzten Tag des Monats

Begonnen von Edi77, 14 November 2020, 00:05:50

Vorheriges Thema - Nächstes Thema

Edi77

Hallo,

Habe da leider nichts konkretes dazu gefunden wie ich wiederholt jeden letzten Tag und Minute eines Monats ein at ausführen kann.
Und jeden ersten Tag eines Monats in der ersten Minute auch wiederholt.

Um genau zu sein will ich damit den Stromverbrauch eines Monats erfassen.
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Edi77

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

amenomade

at *00:00 {if ($mday == 1) {...}}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Edi77

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

betateilchen

An dieser Stelle sei wieder einmal darauf hingewiesen, dass ein at nicht nur hh:mm:ss als Zeitpunkt akzeptiert, sondern auch Werte in der Form YYYY-MM-DDTHH:MM:SS oder auch als Unix timestamps (Sekunden seit 1970).

Der erste und der letzte Tag eines Monats lassen sich sehr einfach berechnen,  dann muss man das at nämlich nicht jede Nacht starten und prüfen, ob der gewünschte Tag erreicht ist.


use Time::Piece;
# Beispiel, um den letzten Tag im November 2020 zu ermitteln
sub month_test {
my $my = '112020';
my $t  = Time::Piece->strptime($my, "%m%Y");
return $t->month_last_day;
}

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!