Mini SV-Datalogger v2.11 (stable)

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von blackhole » 15.03.2018, 15:32

Die > Anleitung < wurde aktualisiert und angeglichen.

Spube
Beiträge: 37
Registriert: 23.05.2016, 20:20
Wohnort: Stuhr (Niedersachsen)

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von Spube » 16.04.2018, 22:24

Ersteinmal vielen Dank für dieses Script....folgendes Problem habe ich: Einfach zu viele Nullen hinterm Komma! :shock:
Hat jemand eine Idee wie man auf max. eine Null hinter dem Komma kommt?
DC.JPG

almrausch
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)

Beitrag von almrausch » 17.04.2018, 00:15

Einfach die Variable als Zeichenkette definieren.
Gruß Ralf

Spube
Beiträge: 37
Registriert: 23.05.2016, 20:20
Wohnort: Stuhr (Niedersachsen)

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von Spube » 18.04.2018, 15:54

almrausch hat geschrieben:Einfach die Variable als Zeichenkette definieren.
Ja, das habe ich gemacht und trotzdem kommen 6 Nachkommastellen heraus. Ich denke das im script etwas geändert werden muß. :cry:

almrausch
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)

Beitrag von almrausch » 18.04.2018, 18:28

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.
Gruß Ralf

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von alchy » 19.04.2018, 13:05

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.
Einspruch.
Natürlich ist es möglich, aber man speichert keine Zahlendaten in Zeichenketten.
Zumindest, wenn man diese eventuell noch weiter verarbeiten will.

almrausch hat geschrieben:Das Logger Script kann nichts dafür.
Dafür können ist vielleicht falsch ausgedrückt.
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;
oder auch mittels .ToInteger()
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.

almrausch
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)

Beitrag von almrausch » 19.04.2018, 13:35

alchy hat geschrieben:
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.
Einspruch.
Natürlich ist es möglich, aber man speichert keine Zahlendaten in Zeichenketten.
Zumindest, wenn man diese eventuell noch weiter verarbeiten will.
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.

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

Spube
Beiträge: 37
Registriert: 23.05.2016, 20:20
Wohnort: Stuhr (Niedersachsen)

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von Spube » 22.04.2018, 12:02

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. :D

@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

DocJosh
Beiträge: 20
Registriert: 06.07.2014, 11:35

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von DocJosh » 01.06.2018, 10:52

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?

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: Mini SV-Datalogger v2.11 (stable)

Beitrag von blackhole » 01.06.2018, 12:00

DocJosh hat geschrieben:Ich habe mehrere Systemvariablen.....
Lege für jede dieser Systemvariablen (Datenquellen) jeweils eine Systemvariable an, in welche die Werte gesammelt werden (Datenlogger).
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.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“