FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Gear am 20 März 2018, 17:02:05

Titel: [Gelöst] Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 17:02:05
Hallo Zusammen,

ich versuche gerade etwas wo ich das Aktuelle Datum brauche.
Ich möchte gerne wenn der Tag sich ändert und das Notify ausgeführt wird, das etwas passiert.
Zudem würde ich gerne das Datum auch in die Readings des Devices schreiben für wiedererkennung ob der Tag sich geeändert hat.

Ich mache das aktuell über ein Notify, da es aktuell 5 Devices betreffen wird und ich das nicht in jedes Device selbst eintragen möchte. :)

Viele Grüße und Danke
Gear
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Otto123 am 20 März 2018, 17:08:29
Hallo Gear,

FHEM stellt verschiedene "interne" Zeitfunktionen zur Verfügung.
https://wiki.fhem.de/wiki/DevelopmentModuleAPI

Gruß Otto
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 17:11:16
Ich bin deprimiert... =(

Danke Otto!
Habe google gefragt, im Forum und im Wiki, aber warum auch immer nichts gefunden....
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: KernSani am 20 März 2018, 17:13:20
Hi,

vielleicht musst du etwas konkreter werden... aufgrund der knappen Informationen ein paar knappeHinweise, wo du was finden könntest:
* Hier: https://fhem.de/commandref.html#perl sind ein paar Funktionen beschrieben die Datums/Zeithandling in FHEM betreffen
* Readings werden doch ohnehin mit Timestamps geschrieben, abfragen kannst du den mit ReadingsTimestamp, ReadingsAge und auch OldReadingsTimestamp

Wenn das nicht hilft, vielleicht ein list des notifies und eine genauere Erläuterung, was du erreichen willst.

Grüße,

Oli

Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Otto123 am 20 März 2018, 17:18:35
@Gear
Musst nicht deprimiert sein, nach dem Wiki Artikel habe ich mal konkret gefragt - der steht seit dem in meinen Favoriten.
In der Suche findet man den schwer.
;)
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: KernSani am 20 März 2018, 17:31:09
Zitat von: Otto123 am 20 März 2018, 17:18:35
In der Suche findet man den schwer.
;)
Komisch, ich muss nur "dev" in der Adressleiste des Browsers eingeben und schon kommt der link im dropdown  ;D 8)
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 17:37:03
@Otto
Ja das habe ich auch gemerkt, habs nun als Favo in FF abgelegt, danke! =D

@KernSani
Ich hab einen DRS155D über S0 am ESP8266 und möchte diesen z.B. wenn ein Stromausfall war oder die Sicherung mal rausspringt nicht meine Daten durcheinander bringen, wenn der Total dann wieder auf 0 steht.
Zudem würde ich gerne Wochen-, Monats- und Jahresverbrauch anzeigen lassen, wie auch den Verbrauch des Zeitraums davor.

Ich hatte zwar das ein oder andere Thema hier gefunden, wo das behandelt wurde, nur habe ich keinen gefunden, bei dem der ESP8266 nicht um 0Uhr einen Reset gebraucht hat.
Leider auch nichts betreffend eines Stromausfall.

Ach und "dev", das muss man erst wissen! =D =P

Viele Grüße
Gear
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 18:04:50
Ich hab da noch eine Frage zu FHEM.
Kann ich normale Perl  Funktionen nutzen?
z.B. split() oder sowas?
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 18:26:34
Wenn Du in einem Notify in die Perlebene wechselst dann ja

{ Hier dann Perl }

Musst aber dann bei FHEM Befehlen die entsprechende Funktion aufrufen statt des FHEM Befehles.

set Device on

Geht dann nicht, sondern

fhem('set Device on');
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 18:29:42
Also müsste ich hier {} auch von Perl das Datum nehmen?
Muss ich die Funktionen irgendwie laden oder kann ich diese einfach nutzen?
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 18:44:20
Ist schon geladen. Welche Funktion willst du denn nehmen?
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 18:47:53
Ich bin am überlegen ob ich je ein Reading für Tag, Monat und Jahr mache oder ob ich das im Format Y-m-d abspeichere und dann zerschneide um einen Wechsel mitzubekommen.
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 18:57:37
Ich würde es in einem Reading schreiben
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 19:01:30
Okey, ja ist glaub das Sinnvollste.
Kannst du mir ne Seite sagen mit nem guten Tutorial für Perl?
Ich kann zwar die ein oder andere Sparache ganz gut, aber Perl, damit hab ich erst seit FHEM etwas zu tun =D
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 19:06:02
https://perldoc.perl.org/index.html

und

bedingt https://stackoverflow.com
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 19:11:54
Okey, super, vielen Dank.

Wenn ich also folgendes Nutzen wollen würde: (localtime)
https://perldoc.perl.org/Time/localtime.html

dann müsste ich folgendes nicht nutzen?
use Time::localtime;

Oder gibt es wie z.B. bei PHP die Möglichkeit so etwas wie date("Y-m-d") zu nutzen?
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 19:26:55
use musst  nicht machen.

Im Notify stehen Dir übrigens die Variablen $mon $year und $mday zur Verfügung

Ansonsten wenn Du eine Sub machst in einer myUtils einfach

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(gettimeofday());
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: betateilchen am 20 März 2018, 19:29:23
Zitat von: CoolTux am 20 März 2018, 19:26:55
Im Notify stehen Dir übrigens die Variablen $mon $year und $mday zur Verfügung

und sogar $today mit dem aktuellen Ergebnis 2018-03-20 :)
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 19:35:12
Danke Dir Udo, hatte. Ich gar nicht mehr im Kopf.
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 19:42:37
Also er meckert bei mit wegen $mon:
Global symbol "$mon" requires explicit package name (did you forget to declare "my $mon"?) at (eval 21866) line 50.

Ach, schon gefunden, es muss $month heißen. =D
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 19:46:43
Nimm $today das passt doch super.
Möglich das $mon nicht passt
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 20:02:44
Hab's gefunden
$month
lautet die globale Variable für Monat
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 20:09:31
So, ich mach das jetzt mit $today.

Ich habe da aber ein anderes Problem, bzw. ein paar Problemchen.
MQTT zeigt Count, Total und Time im SSH nur einmal, aber das Notify verarbeitet das 6x
Und es macht einen unterschied zwischen dem Datum welches ich zuvor in die Readings geschreiben habe und dem aktuellen $today. (das Datum welches ich in die Readings schreibe, das ist auch mit $today gemacht)
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: CoolTux am 20 März 2018, 20:19:41
Dazu kann ich leider nichts sagen. Kenne MQTT nicht.
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 20:30:27
Ok, ich habe glaub den Fehler.

Wie kann ich ein Notify ausführen lassen, nachdem sich 3 Werte nachgeladen wurden?

Edit:
Ich vermute mal mit: event-on-update-reading
Geht das dann auch mit mit Notify?
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: betateilchen am 20 März 2018, 20:46:27
Jetzt wird es Zeit, dass Du Dich nochmal mit der Doku beschäftigst und versuchst zu verstehen, was Du eigentlich tust.
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 20:53:00
Ok.
Ja mein eigentliches Problem ist gelöst.
Ich danke an dieser Stelle allen Beteiligten!

Wünsche euch einen schönen Abend!

Grüße
Gear
Titel: Antw:Aktuelles Datum in Notify nutzen?
Beitrag von: KernSani am 20 März 2018, 21:01:05
Zitat von: Gear am 20 März 2018, 20:53:00
Ja mein eigentliches Problem ist gelöst.
Dan poste doch noch einen Codeschnippsel, wie du es gelöst hast (in Code Tags - das ist im Editor das # über den Smilies) und schreibe dann [Gelöst] vor das Subject des ersten Post.
Danke und auch einen Schönen Abend.
Titel: Antw:[Gelöst] Aktuelles Datum in Notify nutzen?
Beitrag von: Gear am 20 März 2018, 23:08:33
So, wie gewünscht, anbei meine Lösung:
my @Datum = split(/-/, ReadingsVal($NAME,'Datum',0));
my @DatumAktuell = split(/-/, $today);

if(@Datum[0] ne @DatumAktuell[0])
{
  //Wenn Jahr ungleich, mache hier etwas!
}

if(@Datum[1] ne @DatumAktuell[1])
{
  //Wenn Monat ungleich, mache hier etwas!
}

if(@Datum[2] ne @DatumAktuell[2])
{
  //Wenn Tag ungleich, mache hier etwas!
}


Grüße und schönen Abend
Gear