Zeitangaben, rechnen mit: Unterschied zwischen den Versionen
Trelle (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{Baustelle}} Mit leicht lesbaren Zeitangaben, wie ''07:30'', ''23.05.2017, 09:20'' usw. kann in FHEM nicht ohne Weiteres gerechnet werden, da es sich um Zeich…“) |
Trelle (Diskussion | Beiträge) |
||
Zeile 3: | Zeile 3: | ||
== Verfahren zum Rechnen mit Zeitangaben, die als Zeichenkette vorliegen == | == Verfahren zum Rechnen mit Zeitangaben, die als Zeichenkette vorliegen == | ||
Die Berechnung erfolgt in Perl. | |||
Das Verfahren besteht aus drei Schritten: | Das Verfahren besteht aus drei Schritten: | ||
* Umwandeln der Zeichenketten in eine Zahl, z.B. Sekunden. | * Umwandeln der Zeichenketten in eine Zahl, z.B. Sekunden. | ||
* Berechen einer Zeit als Zahl. | * Berechen einer Zeit als Zahl. | ||
* Umwandeln der Zahl in eine Zeichenkette (Formatierung) | * Umwandeln der Zahl in eine Zeichenkette (Formatierung) | ||
=== Umwandeln eine Zeichenkette in eine Zahl === | |||
Hier hängt das Verfahren von der Struktur der Zeichenkette ab. | |||
Perl und FHEM stellen Funktionen zur Umwandlung bereit. | |||
* <code>time</code> liefert die aktuelle Zeit in Sekunden, siehe [http://perldoc.perl.org/functions/time.html] | |||
* <code>time_str2num("YYYY-MM-DD HH:MM:SS")</code> wandelt einen FHEM-Zeitstempel in Sekunden um, siehe [https://fhem.de/commandref_DE.html#perl] | |||
* <code>timelocal(<Sekunden>, <Minuten>, <Stunden>, <Tag des Monats>, <Monat>, <Jahr>)</code> wandelt einen Satz von Zeitelementen (Sekunden, Minuten, Stunden usw.) in Sekunden um, siehe [http://perldoc.perl.org/Time/Local.html] | |||
==== Beispiel: Zeitstempel eines Readings in Sekunden umwandeln ==== | |||
time_str2num(ReadingsTimestamp(<devicename>, <reading>,<defaultvalue>)) | |||
=== Berechnung === | |||
=== Umwandeln der Zahl in eine Zeichenkette === | |||
=== Weitere Funktionen zur Zeitumwandlung === | |||
* [[DevelopmentModuleAPI#Time_.2F_Timestamp|Time/Timestamp]] | |||
[[Kategorie:HOWTOS]] |
Version vom 23. Januar 2018, 11:54 Uhr
An dieser Seite wird momentan noch gearbeitet. |
Mit leicht lesbaren Zeitangaben, wie 07:30, 23.05.2017, 09:20 usw. kann in FHEM nicht ohne Weiteres gerechnet werden, da es sich um Zeichenketten handelt und nicht um Zahlen.
Verfahren zum Rechnen mit Zeitangaben, die als Zeichenkette vorliegen
Die Berechnung erfolgt in Perl. Das Verfahren besteht aus drei Schritten:
- Umwandeln der Zeichenketten in eine Zahl, z.B. Sekunden.
- Berechen einer Zeit als Zahl.
- Umwandeln der Zahl in eine Zeichenkette (Formatierung)
Umwandeln eine Zeichenkette in eine Zahl
Hier hängt das Verfahren von der Struktur der Zeichenkette ab.
Perl und FHEM stellen Funktionen zur Umwandlung bereit.
time
liefert die aktuelle Zeit in Sekunden, siehe [1]time_str2num("YYYY-MM-DD HH:MM:SS")
wandelt einen FHEM-Zeitstempel in Sekunden um, siehe [2]timelocal(<Sekunden>, <Minuten>, <Stunden>, <Tag des Monats>, <Monat>, <Jahr>)
wandelt einen Satz von Zeitelementen (Sekunden, Minuten, Stunden usw.) in Sekunden um, siehe [3]
Beispiel: Zeitstempel eines Readings in Sekunden umwandeln
time_str2num(ReadingsTimestamp(<devicename>, <reading>,<defaultvalue>))