FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tommy82 am 14 Dezember 2014, 18:44:24

Titel: [Gelöst]Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Tommy82 am 14 Dezember 2014, 18:44:24
Hallo,
ich möchte in einem Dummy das aktuelle Datum und die aktuelle Uhrzeit ausgeben. Diese soll natürlich immer aktualisiert werden.
Wie kann ich das realisieren?

Danke
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Tommy82 am 17 Dezember 2014, 21:35:15
So, habs jetzt mal so geändert:
Internals:
   NAME       Zeit
   NR         259
   STATE      reload
   TYPE       dummy
   Readings:
     2014-12-17 21:49:00   state           reload
     2014-12-17 21:50:42   userreading     {localtime}
Attributes:

Aber der Wert aktualisiert sich nicht, sonder steht immer auf der Zeit wo ich es angelegt hab

Was mache ich noch falsch?

Danke
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: justme1968 am 17 Dezember 2014, 22:54:41
wenn in fhem irgendetwas regelmässig passieren soll brauchst du ein at.

gruss
  andre
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Tommy82 am 18 Dezember 2014, 18:14:28
Hi, und wie mache ich das das "einfach" immer das aktuelle Datum und Uhrzeit angezeigt wird?
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Patrick85 am 30 Dezember 2014, 13:02:28
Hallo Tommy82,
ich habe das mit folgenden Code gelöst.

define fp_date dummy
define at_fp_date at +*00:30:00 { fhem 'set fp_date '.strftime('%d. %B', localtime) }

define fp_time dummy
define at_fp_time at +*00:00:10 { fhem 'set fp_time '.strftime('%H:%M', localtime) }


Das einzige Problem ist noch die Sprache vom Monat. Diese ist leider Englisch obwohl ich alles auf Deutsch eingestellt habe. Vielleicht kann mir da jemand weiterhelfen?

pi@raspberrypi /etc $ sudo -u fhem echo $LANG
de_DE.UTF-8


Gruß
Patrick
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Puschel74 am 30 Dezember 2014, 13:11:51
Hallo,

sorry für OT.
@Patrick85
Wenn du die Uhrzeit schon nur minutengenau anzeigst genügt auch das at jede Minute.
Oder welchen Sinn haben die 10 Sekunden im at_fp_time?
Auch ein RasPi braucht nicht 5-mal prüfen wenn nur bei jedem 6.ten was gemacht werden muss  ;)

Grüße
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Rohan am 30 Dezember 2014, 13:14:27
Moin Patrick,

Zitat von: Patrick85 am 30 Dezember 2014, 13:02:28
Das einzige Problem ist noch die Sprache vom Monat. Diese ist leider Englisch obwohl ich alles auf Deutsch eingestellt habe.

Alles scheinst du noch nicht umgestellt zu haben => Link (http://langref.org/perl+ruby+python+java+php/dates/printing/date-in-different-locales).

Gruß
Thomas
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Rohan am 30 Dezember 2014, 13:18:26
Zitat von: Puschel74 am 30 Dezember 2014, 13:11:51
Oder welchen Sinn haben die 10 Sekunden im at_fp_time?

Zeitgenauigkeit von 10 Sekunden von (worst-case) 59 Sekunden in der Anzeige/Auswertung?

Gruß
Thomas
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Patrick85 am 30 Dezember 2014, 13:32:05
Hallo Puschel74,
wie Thomas schon geschrieben hat wollte ich den "worst case" von max. 59 Sekunden Abweichung verhindern.

@Thomas
Danke für den Link, aber ich glaube ich sehe den Wald vor lauter Bäumen nicht. Beim Ausführen des Scripts im Usercontext von FHEM wird das Montag in Deutsch angezeigt. Verstehe leider nicht was ich noch ändern soll. Hast du noch einen Hinweis für mich?

Script
#!/usr/bin/perl
use warnings;
use strict;

use locale;
use POSIX qw(strftime);
use Time::Local;

my $str_time = strftime('%d. %B', localtime);

print "Date: $str_time\n";


Ausgabe
root@raspberrypi:/home/pi# sudo -u fhem perl datum.pl
Date: 30. Dezember


Danke
Patrick
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: betateilchen am 30 Dezember 2014, 13:38:11
Wenn man im dummy ein "set <dummy> bla" ausführt kann man direkt danach mit ReadingsTimestamp('dummy','state','') die Uhrzeit auslesen...

Der eigentlich Sinn einer solchen Aktion erschließt sich mir aber nicht. fhem kennt doch die aktuelle Uhrzeit ohnehin - ganz ohne Dummy.
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Rohan am 30 Dezember 2014, 13:43:25
Hi,

Zitat von: Patrick85 am 30 Dezember 2014, 13:32:05Hast du noch einen Hinweis für mich?

Da es mich auch interessiert, würde ich heute Abend nach einer Lösung suchen (hier habe ich gerade kein Fhem vor mir).

Evtl. meldet sich bis dahin noch jemand anderer.

Versuch: Das von dir gezeigte Skript in die 99_myUtils als sub packen und im Fhem-at diese sub aufrufen um den Rückgabewert

return $str_time;

dem Dummy zuweisen.

Gruß
Thomas
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Patrick85 am 30 Dezember 2014, 14:35:34
Hallo Thomas,
wäre nett wenn du es heute Abend bei dir nachstellen kannst. Das Monat bleibt leider auch mit der sub in der 99_myUtils in englisch. Habe es gerade getestet.

@betateilchen
Der Sinn ist das aktuelle Datum und Uhrzeit im Floorplan anzuzeigen. Habe in einem vorigen Post ein Screenshot angehägt.

Gruß
Patrick
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Rohan am 30 Dezember 2014, 18:09:11
Hallo Patrick,

der Aufruf der Routine per at


# Deutscher Monat
sub localmonth {
  my $str_time = strftime('%d. %B', localtime);
  fhem "set fp_date $str_time";
}


füllt mir den Fhem-Dummy fp_date wunderbar und ohne Verrenkungen mit:

Zitatstate 30. Dezember 2014-12-30 18:07:06

Ich kann dir bei deinem Problem also nicht weiter helfen.

Edith meint, ich solle noch diesen Link (3. Beitrag) (http://www.hilfdirselbst.ch/foren/%5BSSI%5D_Deutsche_Datumsangabe_P14804.html) als Hinweis posten, wie man einen Workaround schaffen kann. Also die aktuelle Monatszahl bestimmen und den Text dann aus einem Array auslesen. Array beginnt bei 0 und der Januar hat imho auch die 0.

Gruß
Thomas
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Tommy82 am 30 Dezember 2014, 19:43:56
Zitat von: Patrick85 am 30 Dezember 2014, 13:02:28
Hallo Tommy82,
ich habe das mit folgenden Code gelöst.

define fp_date dummy
define at_fp_date at +*00:30:00 { fhem 'set fp_date '.strftime('%d. %B', localtime) }

define fp_time dummy
define at_fp_time at +*00:00:10 { fhem 'set fp_time '.strftime('%H:%M', localtime) }


Das einzige Problem ist noch die Sprache vom Monat. Diese ist leider Englisch obwohl ich alles auf Deutsch eingestellt habe. Vielleicht kann mir da jemand weiterhelfen?

pi@raspberrypi /etc $ sudo -u fhem echo $LANG
de_DE.UTF-8


Gruß
Patrick

Hi Patrick, danke für deine Hilfe, ich hab noch "Uhr" und das Jahr mit eingefügt und das ganze dann in eine readingsgroup gepackt und nun ist es so wie ich es mir vorgestellt habe.

Internals:
   CFGFN
   DEF        fp_date:state,state@fp_time
   NAME       rd_Datum
   NR         2337
   NTFY_ORDER 50-rd_Datum
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     fp_date    1
   Content2:
     fp_time    1
   DEVICES:
     ARRAY(0x5b6c7d0)
   DEVICES2:
     ARRAY(0x5b6c7d0)
     ARRAY(0x5c47820)
   Fhem:
     lastDefChange 54
     last_update 1419964636.31102
   Helper:
     DEF
Attributes:
   noheading  1
   nonames    1
   nostate    1
   notime     1

Danke für die Hilfe
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Cybers am 09 Januar 2015, 13:41:30
ich habe auch das Problem, daß mit dem hier gezeigten Weg der Monat nur in englisch ausgegeben wird.
Dann habe ich in die 99_my_utils folgendes eingetragen:
# Deutscher Monat
sub localmonth {
  my $str_time = strftime('%d. %B', localtime);
  fhem "set fp_date $str_time";
}


wie binde ich ich das jetzt in folgendes define ein?
define at_fp_date at +*00:30:00 { fhem 'set fp_date '.strftime('%d. %B', localtime) }

oder wie sieht die richtige Lösung aus?
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: betateilchen am 09 Januar 2015, 13:44:56
define at_fp_date at *00:30:00 { localmonth() }

übrigens OHNE Pluszeichen, denn der Monat ändert sich nicht alle 30 Minuten ;)
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: moonsorrox am 09 Januar 2015, 14:31:58
du kannst natürlich auch soetwas (http://forum.fhem.de/index.php/topic,26182.msg242492.html#msg242492) machen, finde ich ganz schick  ;)
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Cybers am 09 Januar 2015, 14:54:13
leider wird der Monat auch mit den Änderungen in englisch angezeigt.
An der JS-Lösung aus dem anderen Beitrag stört mich, daß ich Datum und Uhrzeit nicht getrennt auf meinem Floorplan positionieren und verändern kann.
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Patrick85 am 09 Januar 2015, 14:55:34
Hallo,
da mein Datum immer noch in Englisch angezeigt wird, habe ich mich entschieden den Workaround von Rohan (Danke) zu verwenden.

sub
get_datum()
{

my @month = ("Jänner","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
my $month_nr = strftime('%m', localtime);
my $day_nr = strftime('%d', localtime);

fhem("set fp_date $day_nr. $month[$month_nr-1]");

}


Jeden Tag um 00:01 Uhr aktualiesieren
define at_fp_date at *00:01:00 { get_datum() }

Gruß
Patrick
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Cybers am 09 Januar 2015, 15:12:04
Danke, grundsätzlich geht es jetzt. Allerdings wird jetzt als Monat Februar und nicht Januar angezeigt!
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Patrick85 am 09 Januar 2015, 15:14:20
Habe es gerade ausgebessert. Fehlte noch "-1", da Perl Jänner = 1 ist, beim Array aber Jänner = 0

Gruß
Patrick
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Cybers am 09 Januar 2015, 15:24:06
Danke! Jetzt ist alles super!
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: torte am 31 März 2015, 20:05:27
Hallo,

Dankeschön, hab das Datum & Uhrzeit jetzt auch in meinem Floorplan umgesetzt.
Habe das aber in "deutsch" mit einem eventmap gemacht funktioniert auch.

attr Time_FP eventMap Monday:Montag Tuesday:Dienstag Wednesday:Mittwoch Thursday:Donnerstag Friday:Freitag Saturday:Samstag Sunday:Sonntag January:Januar February:Februar March:März May:Mai June:Juni July:Juli October:Oktober December:Dezember

Grüße
Torsten
Titel: Antw:Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: wuffi2001 am 08 Juni 2015, 13:35:19
Zitat von: Rohan am 30 Dezember 2014, 13:18:26
Zeitgenauigkeit von 10 Sekunden von (worst-case) 59 Sekunden in der Anzeige/Auswertung?

Ich habe dies jetzt nach langem überlegen und ausprobieren mit einem DOIF gelöst, da FHEM ja bereits die Zeit kennt. Das Dummy wird entsprechend zur vollen Minute geändert und die Anzeige ist sekundengenau. ;)

Dies könnte dann zum Beispiel so aussehen.

define d_fp_time DOIF ([+:01]) ({fhem 'set fp_time '.strftime('%H:%M', localtime)})
attr d_fp_time do always
Titel: Antw:[Gelöst]Aktuelles Datum und Zeit in einem Dummy ausgeben
Beitrag von: Christian72D am 21 Mai 2017, 08:29:18
Wie könnte ich mir denn ohne Umwege einfach die aktuelle Zeit auf die Minute (Sekunde wäre Quatsch) genau ansagen lassen?

Ich habe ein "at" welches mir per "set SB_Wohnzimmer talk" über die Squeezebox das aktuelle Wetter "erzählt".
Da würde ich jetzt gerne auch noch Stunde und Minute mit dabei haben, nach möglichkeit ohne irgendwas wandern zu müssen.