FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: blasterx am 03 November 2016, 09:17:57

Titel: Formatumwandlung einer Zeitangabe?
Beitrag von: blasterx am 03 November 2016, 09:17:57
Hallo,

Ich komme irgendwie nicht weiter, ich möchte ein Reading aus einem DOIF
timer_1_c1       03.11.2016 18:29:10
formatieren in  2016-11-03 18:29:10  mittels userReadings aber es fehlt mir der Ansatz.
Das Ziel ist mittels der formatierten Zeitangabe ein Reading zu erzeugen mit einem timestamp zb. 1478194150
Das geht ja mit dem Befehl
{ time_str2num ("2016-11-03 18:29:10") }

Ich würde mich über jede Hilfe freuen.

Gruß BlasterX
Titel: Antw:Formatumwandlung einer Zeitangabe?
Beitrag von: igami am 03 November 2016, 09:28:47
Filtern nach Ausdrücken mit Ausgabeformatierung (http://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen)
Damit sollte das auch direkt aus dem DOIF machbar sein.
Titel: Antw:Formatumwandlung einer Zeitangabe?
Beitrag von: blasterx am 03 November 2016, 10:27:15
Danke für die Antwort, aber ich hatte mir den Artikel auch schon durchgelesen und auch getestet. ich bekomme das Datum bis "Tag Monat" aufgesplittet aber leider nicht noch das Jahr. Wenn ich es aufgesplittet habe würde ich es mir dann das Reading  passend zusammensetzen.
Vieleicht nicht die elegante Methode solle aber gehen.

Gruß BlasterX
Titel: Antw:Formatumwandlung einer Zeitangabe?
Beitrag von: dev0 am 03 November 2016, 11:04:26
Zitat von: blasterx am 03 November 2016, 09:17:57
formatieren in  2016-11-03 18:29:10  mittels userReadings aber es fehlt mir der Ansatz.

attr <device> userReadings time_in_secs:timer_1_c1:.* {ReadingsVal($name,'timer_1_c1','') =~ m/(.+)\.(.+)\.(.+)\s(.+):(.+):(.+)/; time_str2num "$3-$2-$1 $4:$5:$6" }
Titel: Antw:Formatumwandlung einer Zeitangabe?
Beitrag von: blasterx am 03 November 2016, 12:52:06
Danke genau das war es. Ich habe sehr viel getestet aber da wäre ich nie drauf gekommen.
Ich werde mal versuchen den regex String zu verstehen. :)
Gruß BlasterX