FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Typ1er am 05 Mai 2019, 21:20:59

Titel: in einem userreadings Zeit hinzu addieren
Beitrag von: Typ1er am 05 Mai 2019, 21:20:59
Ich habe ein Kleines Problem ich habe ein Reading mit Datum und Zeit und würde gern ein paar Minuten hinzu addieren

das sieht so aus:
attr BeliebigeZeit 3.05.2019 - 21:04

Wie bekomme ich da, als Beispiel 15 Minuten hinzu addiert? Mit dem Wiki komme ich nicht wirklich klar zum addieren, mir fehlt das Wissen für den Perl Code, gibt es irgendwo mal ein paar Beispiele die das für einen Anfänger gut erklären?

was ich bis jetzt selbst probiert habe in einem userReadings , mit split Datum und Zeit trennen , oder umsortieren, was ich verstanden habe, das ich alles in Sekunden umwandeln muss, um die Zeit zu addieren. Den Rest habe nicht durchschaut.

hat hier jemand mal ein gutes Beispiel zur Hand?

Danke, Typ1er
Titel: Antw:in einem userreadings Zeit hinzu addieren
Beitrag von: Beta-User am 06 Mai 2019, 09:43:00
Moin,

was du da hast, ist kein Reading, sondern ein Attribut. Ich habe das zwar noch nicht getestet, würde aber annehmen, dass userreadings damit gar nicht geht, weil es nicht getriggert wird (cref befragen oder ausprobieren...).

Was meinst du damit, wenn du "mit dem Wiki" nicht klarkommst?
Hier steht es eigentlich recht gut: https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit.

Um in das Thema einzusteigen, ist es häufig am besten, den Code einfach in die Kommandozeile zu packen und sich dann das Ergebnis anzusehen.

Ansonsten würde man ein list vom betroffenen Gerät helfen, zusammen mit dem Code, den du schon (erfolglos) getestet hast...
Titel: Antw:in einem userreadings Zeit hinzu addieren
Beitrag von: rabehd am 06 Mai 2019, 10:03:07
Zitatwas du da hast, ist kein Reading, sondern ein Attribut.
Zusätzlich dazu: Welchen UseCase planst du? Wofür ist das "Reading" gedacht?
Titel: Antw:in einem userreadings Zeit hinzu addieren
Beitrag von: Typ1er am 06 Mai 2019, 14:06:04
Das Reading stammt vom AutoShuttersControl ich möchte die Sekunden mit ausrechnen wenn es in echt fährt
Titel: Antw:in einem userreadings Zeit hinzu addieren
Beitrag von: Typ1er am 09 Mai 2019, 11:00:03
Ich habe es jetzt in 2 Schritten hinbekommen, einmal mit Split umsortiert und dann meine Sekunden addiert. (ASC_Test1a und ASC_Test1b)

Mein zweiter Versuch schlägt fehl, an welcher Stelle kann ich time_str2num das gegebene Format übergeben? Das erschließt sich mir nicht. Hat hier jemand mal einen Tip für mich?


nternals:
   FUUID      5cca099c-f33f-06ea-f662-37b17905e24872a8
   NAME       RollladenTest
   NR         250
   STATE      ???
   TYPE       dummy
   OLDREADINGS:
   READINGS:
     2019-05-09 10:51:31   ASC_Test1a      2019-05-2 06:02:00
     2019-05-09 10:51:31   ASC_Test1b      02.05.2019 06:12:00
     2019-05-09 10:51:31   ASC_Test2       01.01.1970 01:10:00
     2019-05-09 10:51:31   ASC_Time_DriveUp 2.05.2019 - 06:02
Attributes:
   room       Test
   userReadings ASC_Test1a  {(split /[.]/, (split " ",(ReadingsVal($name,"ASC_Time_DriveUp","")))[0])[2]."-".(split /[.]/, (ReadingsVal($name,"ASC_Time_DriveUp","")))[1]."-".(split /[.]/, (ReadingsVal($name,"ASC_Time_DriveUp","")))[0]." ".(split " - ", (ReadingsVal($name,"ASC_Time_DriveUp","").":00"))[1]},
ASC_Test1b {POSIX::strftime("%d.%m.%Y %H:%M:%S",localtime(time_str2num(ReadingsVal($name,"ASC_Test1a",'%Y.%m.%d...%H:%M'))+600))},
ASC_Test2 {POSIX::strftime("%d.%m.%Y %H:%M:%S",localtime(time_str2num(ReadingsVal($name,"ASC_Time_DriveUp",'%d.%m.%Y...%H:%M'))+600))}