FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mheiker am 04 Januar 2019, 20:41:49

Titel: Zeit aus Zahl erzeugen
Beitrag von: mheiker am 04 Januar 2019, 20:41:49
Hallo zusammen,

aus einer Zahl (integer) eines Dummy-Readings will ich ein ein anderes Reading des gleichen Dummys diese Zahl in ein Zeitformat (HH:mm:ss) umrechnen und schreiben...aber bekomme das nicht hin!

Kann mir da jemand kurz eine Richtung geben, in die ich schauen kann?

Besten Dank!
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: bartman121 am 04 Januar 2019, 20:49:02
Da fehlt input, ist die Zahl ein unix-timestamp (kann bei integer eigentlich nicht sein)?

Oder handelt es sich um eine Anzahl von Sekunden, Millisekunden oder sonstwas?



Gesendet von meinem ONEPLUS A5010 mit Tapatalk

Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: mheiker am 04 Januar 2019, 20:56:08
Es ist einfach eine Minuten-Angabe als integer (wird über's FTUI gesetzt).
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: KernSani am 04 Januar 2019, 21:05:12
mit anderen Worten, du möchtest Minuten in Stunden umrechnen?
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: bartman121 am 04 Januar 2019, 21:08:49
Hast du jetzt schon was probiert, oder soll dir jemand den Code schreiben?

Die wichtige Sache ist:
Der modulo Operator ist: %

Gesendet von meinem ONEPLUS A5010 mit Tapatalk
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: mheiker am 04 Januar 2019, 21:13:20
Ein kurzer Tipp wäre super! :)

Mein Ziel ist es, das Reading mit der Minuten-Angabe in ein Reading im Format HH:mm:ss umzurechnen...das wird für ein at-Modul benötigt.
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: bartman121 am 04 Januar 2019, 21:24:18
Ein bisschen mitarbeiten solltest du schon...

Die Minuten (human readable)  erhält man mit Wert % 60
Die Stunden dann halt wenn man (wert-Minuten(human readable)) durch 60 teilt
Die Sekunden sind 0



Gesendet von meinem ONEPLUS A5010 mit Tapatalk
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: mheiker am 05 Januar 2019, 12:58:02
Hallo zusammen,

die Stunden, Minuten und Sekunden bekomme ich in Readings gesetzt, allerdings daraus kein Reading im Zeitformat zusammengesetzt...
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: rischbiter123 am 05 Januar 2019, 13:08:21
Mach doch mal ein List von dem was du hast. Dann kann man das eventuell mit der Perl-Funktion
Variable neu = Variable1.":".Variable2.":".Variable3 zusammensetzen.

LG

Andreas
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: mheiker am 05 Januar 2019, 13:37:45
In einen Dummy wird durch FTUI die Variable "Laufzeit" (Minuten-Wert) gesetzt:

defmod du_Wasserventil dummy
attr du_Wasserventil room 06 Keller,DUMMY
attr du_Wasserventil stateFormat Laufzeit_Zeitformat
attr du_Wasserventil userReadings Laufzeit_Zeitformat { "00:".ReadingsNum("du_Wasserventil","Laufzeit",00).":00" }

setstate du_Wasserventil 00:15:00
setstate du_Wasserventil 2019-01-05 13:31:48 Laufzeit 15
setstate du_Wasserventil 2019-01-05 13:31:48 Laufzeit_Zeitformat 00:15:00

Das userReading Laufzeit_Zeitformat liefert (in meinen Augen) das richtige Zeitformat, oder?!


Im notifyWasserGarten will ich dann mit at ein Ventil nach der generierten Laufzeit schalten:

defmod notifyWasserGarten notify Sonoff4Ch_Ch4:Schalter:.ON \
\
defmod a_WasserGarten at +ReadingsVal("du_Wasserventil","Laufzeit_Zeitformat",00) set Sonoff4Ch_Ch4 OFF
attr notifyWasserGarten room 06 Keller,notifys

Kopier ich das Kommando "defmod a_WasserGarten at +ReadingsVal("du_Wasserventil","Laufzeit_Zeitformat",00) set Sonoff4Ch_Ch4 OFF" in die Kommando-Zeile, kommt diese Fehlermeldung:

Wrong timespec ReadingsVal("du_Wasserventil","Laufzeit_Zeitformat",00): either HH:MM:SS or {perlcode}


Scheinbar liefert das Reading Laufzeit_Zeitformat kein richtiges Zeitformat!?
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: Hans Franz am 05 Januar 2019, 14:50:00
Moin,
Nur scheinbar ;).
ReadingsVal kannst du in deinem notify erst auf perl-Ebene nutzen.

Gruß
Hans
Titel: Antw:Zeit aus Zahl erzeugen
Beitrag von: bartman121 am 05 Januar 2019, 15:10:38
... ist es denn so schwer sein Anliegen mal sinnvoll zu beschreiben?

Aus "Zeit aus Zahl erzeugen" wird plötzlich "at mit Timespec als Variable..." ...

https://forum.fhem.de/index.php?topic=26775.0 <--- ähnliches Problem mit Lösung

Beispiel:


Internals:
   NAME       test_test
   NR         38396
   STATE      00:05:00
   TYPE       dummy
   READINGS:
     2019-01-05 15:08:01   state           00:05:00
Attributes:
   DbLogExclude .*

define at_test at +{ReadingsVal("test_test","state","")}

Sorry, falls ich genervt reagiere, aber anhand der Fehlermeldung konnte man die Lösung auch schon sehen:

Wrong timespec ReadingsVal("du_Wasserventil","Laufzeit_Zeitformat",00): either HH:MM:SS or {perlcode}