Mini SV-Datalogger v2.11 (stable)
Moderator: Co-Administratoren
- blackhole
- Beiträge: 3732
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 185 Mal
- Danksagung erhalten: 587 Mal
Re: Mini SV-Datalogger v2.11 (stable)
Ersteinmal vielen Dank für dieses Script....folgendes Problem habe ich: Einfach zu viele Nullen hinterm Komma!
Hat jemand eine Idee wie man auf max. eine Null hinter dem Komma kommt?
Hat jemand eine Idee wie man auf max. eine Null hinter dem Komma kommt?
Re: Mini SV-Datalogger v2.11 (stable)
Ja, das habe ich gemacht und trotzdem kommen 6 Nachkommastellen heraus. Ich denke das im script etwas geändert werden muß.almrausch hat geschrieben:Einfach die Variable als Zeichenkette definieren.
-
- Beiträge: 255
- Registriert: 10.12.2016, 21:20
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Mini SV-Datalogger v2.11 (stable)
Die Variable, wo der Wert für den Duty-Cycle hineingeschrieben wird, muss eine vom Typ Zeichenkette sein. Also bei dir die Variable CCU_DutyCycle. Das Logger Script kann nichts dafür.
Hängt ggf. auch davon ab, welche der Methoden verwendet wird, um den Duty-Cycle in eine Variable zu schreiben. Ich verwende ein TCL-Script (dutyccu.tcl) und übergebe an dieses den Namen der Variable für den Wert.
Hängt ggf. auch davon ab, welche der Methoden verwendet wird, um den Duty-Cycle in eine Variable zu schreiben. Ich verwende ein TCL-Script (dutyccu.tcl) und übergebe an dieses den Namen der Variable für den Wert.
Gruß Ralf
-
- Beiträge: 10757
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 674 Mal
Re: Mini SV-Datalogger v2.11 (stable)
Einspruch.almrausch hat geschrieben: Die Variable, wo der Wert für den Duty-Cycle hineingeschrieben wird, muss eine vom Typ Zeichenkette sein. Also bei dir die Variable CCU_DutyCycle.
Natürlich ist es möglich, aber man speichert keine Zahlendaten in Zeichenketten.
Zumindest, wenn man diese eventuell noch weiter verarbeiten will.
Dafür können ist vielleicht falsch ausgedrückt.almrausch hat geschrieben:Das Logger Script kann nichts dafür.
Allerdings sehe ich eher hier die "geeignetere" Anpassung, da es sich sowieso um einen String handelt, der nicht weiter verarbeitet wird.
Allerdings ist es auch nicht nötig, sondern nur eine Formsache.
@Spube
Der DutyCycle ist eine Zahl - da ja % der Sendezeit - und wird von deinem Auslesescript als Zahl in eine Zahlenvariable geschrieben.
Zahlen sind in der CCU grundsätzlich 6stellig.
Das dir in der Klickibunti unter Status und Bedienung nur 2 Nachkommastellen bei jeder Zahlenvariablen angezeigt wird ist künstlich herbeigeführt.
Wenn du eine Zahlenvariable z.B. der Startseite hinzufügst, siehst du dann auch die 6 Stellen - auch ein Auslesen des Wertes per Script zeigt immer erstmal 6 Stellen....
Hier mit dem Script liest du nun diese Zahl mit 6 Nachkommastellen aus (Wert der Variable CCU-DutyCycle Typ Zahl)
und speicherst diese in eine Systemvariable vom Typ Zeichenkette mittels des Scriptes durch einfache "Aneinanderreihung".
Ich würde an dieser Stelle die Zahl in einen String wandeln und die Nachkommastellen wie von dir gewünscht auf 1 einstellen mittels .ToString(1).
Soweit ich das recht sehe, also vorletzte Zeile ersetzen durch:
Code: Alles auswählen
svdata = svdata # cut1# " " # svvalue.ToString(1) # logtime;
Aber wie ich oben schon schrieb. Allerdings ist es auch nicht nötig, sondern nur eine Formsache.
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.
-
- Beiträge: 255
- Registriert: 10.12.2016, 21:20
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 1 Mal
Re: Mini SV-Datalogger v2.11 (stable)
Ich sehe das pragmatisch. Der Wert für den DC hat signifikante Stellen nur vor dem Komma. Es ist also immer eine Ganzzahl. Da es aber keine Systemvariablen vom Typ Integer gibt, lasse ich den Wert in einer Variable vom Typ Zeichenkette speichern.alchy hat geschrieben:Einspruch.almrausch hat geschrieben: Die Variable, wo der Wert für den Duty-Cycle hineingeschrieben wird, muss eine vom Typ Zeichenkette sein. Also bei dir die Variable CCU_DutyCycle.
Natürlich ist es möglich, aber man speichert keine Zahlendaten in Zeichenketten.
Zumindest, wenn man diese eventuell noch weiter verarbeiten will.
Und die Weiterverarbeitung ist auch unproblematisch (wie z.B. mit Logger Script). Selbst wenn man damit rechnen wollte (was beim DC m.E. keinen Sinn macht), wäre das durch die Typkonversion kein wirkliches Problem.
Gruß Ralf
Re: Mini SV-Datalogger v2.11 (stable)
Sorry, das ich mich jetzt erst melde.
@alchy:
Du bist wiedermal mein Retter... nach einsetzten der Zeile habe ich nur eine Stelle hinterm Komma.
Ziel erreicht, nun ist es schon mal übersichtlicher.
@almrausch:
Sicher, es gibt meistens mehrere Wege um ans Ziel zu kommen. Alchys Weg war für mich der einfachere.
Hiermit bedanke ich mich recht herzlich für die schnelle Lösung. Einen schönen Sonntag noch.
Gruß Spube
@alchy:
Du bist wiedermal mein Retter... nach einsetzten der Zeile habe ich nur eine Stelle hinterm Komma.
Ziel erreicht, nun ist es schon mal übersichtlicher.
@almrausch:
Sicher, es gibt meistens mehrere Wege um ans Ziel zu kommen. Alchys Weg war für mich der einfachere.
Hiermit bedanke ich mich recht herzlich für die schnelle Lösung. Einen schönen Sonntag noch.
Gruß Spube
Re: Mini SV-Datalogger v2.11 (stable)
Hallo zusammen,
würde das Scipt gerne nutzen. Bin aber eher ungeeignet für Scripte und muss mich da durchwurschteln. Daher für die Geübten unter Euch eine Frage:
Ich habe mehrere Systemvariablen.....
z.B. Anwesenheit.Hans, Anwesenheit.Franz, Anwesenheit.Fritz etc.
Jetzt möchte ich diese alle in der zweiten Variable sammeln.
... sprich... wenn jemand anwesend ist, soll eben das Script durchlaufen werden und alle Daten sammeln.
Wie kann ich Ersteres bewerkstelligen?
würde das Scipt gerne nutzen. Bin aber eher ungeeignet für Scripte und muss mich da durchwurschteln. Daher für die Geübten unter Euch eine Frage:
Ich habe mehrere Systemvariablen.....
z.B. Anwesenheit.Hans, Anwesenheit.Franz, Anwesenheit.Fritz etc.
Jetzt möchte ich diese alle in der zweiten Variable sammeln.
... sprich... wenn jemand anwesend ist, soll eben das Script durchlaufen werden und alle Daten sammeln.
Wie kann ich Ersteres bewerkstelligen?
- blackhole
- Beiträge: 3732
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 185 Mal
- Danksagung erhalten: 587 Mal
Re: Mini SV-Datalogger v2.11 (stable)
Lege für jede dieser Systemvariablen (Datenquellen) jeweils eine Systemvariable an, in welche die Werte gesammelt werden (Datenlogger).DocJosh hat geschrieben:Ich habe mehrere Systemvariablen.....
Zu jedem "Systemvariablen-Pärchen" legst Du dann ein entsprechendes Programm mit "Mini SV-Datalogger"-Skript an. Fertig.
Für das Sammeln mehrerer Datenquellen-SVn in eine einzelne Datenlogger-SV muss das Skript umgebaut werden.