Umrechnung von Zeit / Minuten in h:m
Moderator: Co-Administratoren
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
Umrechnung von Zeit / Minuten in h:m
Hallo,
ich scheitere grad an einer bestimmt ganz simplen Aufgabe und auch die Suchfunktion bringt mir irgendwie nichts.
Der Wettersensor speichert die Sonnenscheindauer in einer SV in Minuten ab, z.B. heute 409 Minuten.
Nun möchte ich das für die Visu gerne in Stunden/Minuten umrechnen, also sollten 4:49 dabei heraus kommen.
Aber wie mache ich das per Script?
Danke schonmal für die Hilfe!
Gruß Nico
ich scheitere grad an einer bestimmt ganz simplen Aufgabe und auch die Suchfunktion bringt mir irgendwie nichts.
Der Wettersensor speichert die Sonnenscheindauer in einer SV in Minuten ab, z.B. heute 409 Minuten.
Nun möchte ich das für die Visu gerne in Stunden/Minuten umrechnen, also sollten 4:49 dabei heraus kommen.
Aber wie mache ich das per Script?
Danke schonmal für die Hilfe!
Gruß Nico
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Umrechnung von Zeit / Minuten in h:m
Code: Alles auswählen
WriteLine ((i / 60).ToString (0) # ":" # i % 60);
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
Re: Umrechnung von Zeit / Minuten in h:m
Danke Black!
Habs noch mit einem ToString(0) erweitert, das hatte sonst Nullen hinter dem Komma.
Habs noch mit einem ToString(0) erweitert, das hatte sonst Nullen hinter dem Komma.
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
Re: Umrechnung von Zeit / Minuten in h:m
Das verstehe ich grad nicht.
Die Zeit der Stunden:Minuten heute ist 1h zu viel. 409 Minuten sind 6:49 und nicht 7:49
Die Zeit der Stunden:Minuten gestern stimmt aber.
Script:
Ergebnis:
Was mache ich falsch?
Oder werden die Stunden gerundet und dadurch entsteht der Fehler?
Die Zeit der Stunden:Minuten heute ist 1h zu viel. 409 Minuten sind 6:49 und nicht 7:49
Die Zeit der Stunden:Minuten gestern stimmt aber.
Script:
Code: Alles auswählen
string sonneh = dom.GetObject('svHmIPSunshineCounterToday_36264').State();
string sonneh2 = ((sonneh / 60).ToString (0) # ":" # (sonneh % 60).ToString (0));
! dom.GetObject('SVSonneHeute').State(sonneh2)
string sonneg = dom.GetObject('svHmIPSunshineCounterYesterday_36264').State();
string sonneg2 = ((sonneg / 60).ToString (0) # ":" # (sonneg % 60).ToString (0));
! dom.GetObject('SVSonneGestern').State(sonneg2)
WriteLine(sonneh);
WriteLine(sonneh2);
WriteLine(sonneg);
WriteLine(sonneg2);
Code: Alles auswählen
409.000000
7:49
252.000000
4:12
Oder werden die Stunden gerundet und dadurch entsteht der Fehler?
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Umrechnung von Zeit / Minuten in h:m
ToString rundet intern... grmmpf.
es muss aber getrunct werden.
also:
ergibt bei mir nun:
Sysvar vom typ Zahl ist immer float...
es muss aber getrunct werden.
also:
Code: Alles auswählen
integer sonneh=409.0;
string sonneh2 = ((sonneh / 60).Trunc (0).ToString (0) # ":" # (sonneh % 60).ToString (0));
Code: Alles auswählen
[sonneh ]: 409.000000
[sonneh2 ]: 6:49
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Umrechnung von Zeit / Minuten in h:m
korrekt, aber
Code: Alles auswählen
integer sonneh=409.0;
mit Type integer sollte auch Variante a funktionieren und .Typumwandlungen und trunc ....sollte auch unnötig sein, also :
Code: Alles auswählen
real i=409.0;
i = i.ToInteger();
WriteLine ((i / 60) # ":" # i % 60);
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
- Black
- Beiträge: 5483
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: Umrechnung von Zeit / Minuten in h:m
schon klar, das integer stammte aus meinem testlauf, wo ich vorher mal probiert hatte, bevor ich seinen Aufruf dann mit dem Laden de Systemvariablen kannte. drum dann auch aus der 409 eine 409.0 ^^
Das der Deklarationstyp durch die Zuweisung dynamisch verändert wird ist mir schon klar ^^
Black
Das der Deklarationstyp durch die Zuweisung dynamisch verändert wird ist mir schon klar ^^
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
-
- Beiträge: 3302
- Registriert: 07.01.2015, 23:26
- Wohnort: Scheeßel
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 11 Mal
Re: Umrechnung von Zeit / Minuten in h:m
Eine Frage habe ich noch.
Wie bekomme ich es hin, dass bei einstelligen Minutenzahlen eine Null davor gesetzt wird?
Bei heute bisher 5 Minuten wird mir grad 0:5 angezeigt.
Das jetzige Script sieht so aus:
Danke schonmal!
Wie bekomme ich es hin, dass bei einstelligen Minutenzahlen eine Null davor gesetzt wird?
Bei heute bisher 5 Minuten wird mir grad 0:5 angezeigt.
Das jetzige Script sieht so aus:
Code: Alles auswählen
real sonneh = dom.GetObject('svHmIPSunshineCounterToday_36264').State();
sonneh = sonneh.ToInteger();
integer sonneh2 = ((sonneh / 60) # ":" # (sonneh % 60));
dom.GetObject('SVSonneHeute').State(sonneh2);
real sonneg = dom.GetObject('svHmIPSunshineCounterYesterday_36264').State();
sonneg = sonneg.ToInteger();
integer sonneg2 = ((sonneg / 60) # ":" # (sonneg % 60));
dom.GetObject('SVSonneGestern').State(sonneg2);
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Umrechnung von Zeit / Minuten in h:m
auch wenn es keine Rolle spielt da die Rega automatisch wandelt, sonneh2 ist ein string.nicolas-eric hat geschrieben: ↑06.06.2019, 08:22Das jetzige Script sieht so aus:
Code: Alles auswählen
.... integer sonneh2 = ((sonneh / 60) # ":" # (sonneh % 60)); ...
Indem du prüfst ob die Werte für Minuten < 10 sind und wenn ja, eine 0 vor dem String knallst.nicolas-eric hat geschrieben: ↑06.06.2019, 08:22Wie bekomme ich es hin, dass bei einstelligen Minutenzahlen eine Null davor gesetzt wird?
Das sollte dann für Stunden und Minuten für dein Anwendungsfall so möglich sein:
Code: Alles auswählen
real sonneh = dom.GetObject(ID_SYSTEM_VARIABLES).Get("svHmIPSunshineCounterToday_36264").Value();
sonneh = sonneh.ToInteger();
integer stunden = (sonneh / 60);
if (stunden < 10) {stunden = 0#stunden;}
integer minuten = (sonneh % 60);
if (minuten < 10) {minuten = 0#minuten;}
dom.GetObject(ID_SYSTEM_VARIABLES).Get("SVSonneGestern").State(stunden#":"#minuten);
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.