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!
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
Es ist einfach eine Minuten-Angabe als integer (wird über's FTUI gesetzt).
mit anderen Worten, du möchtest Minuten in Stunden umrechnen?
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
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.
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
Hallo zusammen,
die Stunden, Minuten und Sekunden bekomme ich in Readings gesetzt, allerdings daraus kein Reading im Zeitformat zusammengesetzt...
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
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!?
Moin,
Nur scheinbar ;).
ReadingsVal kannst du in deinem notify erst auf perl-Ebene nutzen.
Gruß
Hans
... 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}