[Gelöst] Reading auslesen, bearbeiten und in mehrere neue readings schreiben

Begonnen von wilkens, 21 Mai 2017, 11:43:15

Vorheriges Thema - Nächstes Thema

wilkens

Hallo,

ich habe ein reading, welches mir eine Uhrzeit ausgibt. Z.B.: 05:26:44
Ich benötige nun drei readings für Stunde, Minute und Sekunde mit den Werten des ersten readings.
Ich weiß, wie ich mit einem notify Werte von einem Reading auslese, damit rechne und zu einem anderen reading kopiere. Ich schaffe es aber nicht, den vorgegebenen Wert xx:yy:zz in xx, yy und zz aufzuteilen.

Hat hier jemand einen Tip für mich?

Also
Ist-Stand:
reading Uhrzeit -> 05:26:44

Soll-Stand
reading Stunde -> 05
reading Minute -> 26
reading Sekunde -> 44

Vielen Dank schon Mal und ein schönes Wochenende.

DeeSPe

attr <name> userReadings Stunde:<Zeitreading>.* {(split(":",ReadingsVal($NAME,"<Zeitreading>","00:00:00")))[0]},Minute:<Zeitreading>.* {(split(":",ReadingsVal($NAME,"<Zeitreading>","00:00:00")))[1]},Sekunde:<Zeitreading>.* {(split(":",ReadingsVal($NAME,"<Zeitreading>","00:00:00")))[2]}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wilkens


DeeSPe

MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

KernSani

@wilkens: Bitte noch Subject des ersten Posts ändern und [Gelöst] vorne dran schreiben
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

wilkens

Falls es nochmal jemand braucht,
ich habe das auch noch als notify hinbekommen, auch wenn ich die vorige Lösung schöner finde.

Im dummy_1 gibt es das reading sr (sunrise) mit der Zeitangabe.

define dummy_1.not notify dummy_1:sr.* {
my $time=ReadingsVal("dummy_1","sr", "0");
my $hour = substr($time, 0,2);
my $minute = substr($time, 3,2);
my $second = substr($time, 6,2);
fhem ("setreading dummy_1 hour $hour");
fhem ("setreading dummy_1 minute $minute");
fhem ("setreading dummy_1 second $second")
}