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
Hallo Gear,
FHEM stellt verschiedene "interne" Zeitfunktionen zur Verfügung.
https://wiki.fhem.de/wiki/DevelopmentModuleAPI
Gruß Otto
Ich bin deprimiert... =(
Danke Otto!
Habe google gefragt, im Forum und im Wiki, aber warum auch immer nichts gefunden....
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
@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.
;)
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)
@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
Ich hab da noch eine Frage zu FHEM.
Kann ich normale Perl Funktionen nutzen?
z.B. split() oder sowas?
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');
Also müsste ich hier {} auch von Perl das Datum nehmen?
Muss ich die Funktionen irgendwie laden oder kann ich diese einfach nutzen?
Ist schon geladen. Welche Funktion willst du denn nehmen?
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.
Ich würde es in einem Reading schreiben
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
https://perldoc.perl.org/index.html
und
bedingt https://stackoverflow.com
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?
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());
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 :)
Danke Dir Udo, hatte. Ich gar nicht mehr im Kopf.
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
Nimm $today das passt doch super.
Möglich das $mon nicht passt
Hab's gefunden
$month
lautet die globale Variable für Monat
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)
Dazu kann ich leider nichts sagen. Kenne MQTT nicht.
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?
Jetzt wird es Zeit, dass Du Dich nochmal mit der Doku beschäftigst und versuchst zu verstehen, was Du eigentlich tust.
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
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.
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