[Gelöst]Aktuelles Datum und Zeit in einem Dummy ausgeben

Begonnen von Tommy82, 14 Dezember 2014, 18:44:24

Vorheriges Thema - Nächstes Thema

Tommy82

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
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

#1
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
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

justme1968

wenn in fhem irgendetwas regelmässig passieren soll brauchst du ein at.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tommy82

Hi, und wie mache ich das das "einfach" immer das aktuelle Datum und Uhrzeit angezeigt wird?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Patrick85

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

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Rohan

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.

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Rohan

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
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Patrick85

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

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Rohan

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
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Patrick85

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

Rohan

#12
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) 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
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Tommy82

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
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Cybers

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?
FHEM 6.2 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel