Keine Nachkommastelle

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

homefisch
Beiträge: 75
Registriert: 12.09.2012, 11:19

Re: Keine Nachkommastelle

Beitrag von homefisch » 05.02.2013, 09:45

Hallo Karsten,
das var x hab ich rein Gebutenbergt. Was soviel bedeutet: Keine Ahnung, habs kopiert aber nicht kapiert.
Bin mein Scripting auch noch nicht 100% fit. Probiere halt solange rum bis es funktioniert, und es funktioniert.

kallo
Beiträge: 66
Registriert: 05.02.2011, 18:02

Re: AW: Keine Nachkommastelle

Beitrag von kallo » 05.02.2013, 09:50

Na da bin ich ja froh, das es anderen auch so geht:-)
Kannst Du mir noch Dein Script zur Verfügung stellen, womit Du die lfd. reinrasselnden Impulse Deines Gaszählers verarbeitest.
Gruss Karsten

Gesendet von meinem GT-I9001 mit Tapatalk 2

homefisch
Beiträge: 75
Registriert: 12.09.2012, 11:19

Re: Keine Nachkommastelle

Beitrag von homefisch » 05.02.2013, 10:05

Bitte schön

Code: Alles auswählen

var obj1 = dom.GetObject('Gaszaehlerstand');
var obj2 = dom.GetObject('Gasverbrauch_aktuell');
var obj3 = dom.GetObject('Gasverbrauch_heute');
var obj4 = dom.GetObject('Gasverbrauch_Monat');
var obj5 = dom.GetObject('Gasverbrauch_Jahr');
var obj6 = dom.GetObject('Gasverbrauch_Spitze heute');
var obj7 = dom.GetObject('Gasverbrauch_Spitze total');
var obj8 = dom.GetObject('Energiemenge_Gas');
var obj9 = dom.GetObject('Gaskosten');


string sTime = system.Date("%Y-%m-%d %H:%M:%S");  !Hier wird Datum abgefragt und Variable zugeordnet

var x = obj1.State(obj1.State()+(0.1));
var x = obj3.State(obj3.State()+(0.1));
var x = obj4.State(obj4.State()+(0.1));
var x = obj5.State(obj5.State()+(0.1));
var x = obj8.State(obj5.State()*(11.05));
var x = obj9.State(obj8.State()*(0.0581));



var ts1 = obj1.Timestamp(); 
var ts2 = obj2.Timestamp(); 
var tz = obj2.State(100.0*60.0/(ts1.ToInteger()-ts2.ToInteger()));  


if (obj2.Value() > obj6.Variable())
{
obj6.Variable(obj2.Value());
}

if (obj2.Value() > obj7.Variable())
{
obj7.Variable(obj2.Value());
}

kallo
Beiträge: 66
Registriert: 05.02.2011, 18:02

Re: AW: Keine Nachkommastelle

Beitrag von kallo » 05.02.2013, 10:24

Super, danke Dir. Im Gegensatz zu Dir bekomme ich alle 10 Liter ein Impuls per rs485. Hoffentlich überfordete ich damit nicht die CCU.

Gesendet von meinem GT-I9001 mit Tapatalk 2

homefisch
Beiträge: 75
Registriert: 12.09.2012, 11:19

Re: Keine Nachkommastelle

Beitrag von homefisch » 05.02.2013, 10:27

Ich hoffe nicht,
hab noch eine Wasseruhr mit S0 die ich verbauen will, und die liefert bei jedem Liter einen Impuls.

kallo
Beiträge: 66
Registriert: 05.02.2011, 18:02

Re: AW: Keine Nachkommastelle

Beitrag von kallo » 05.02.2013, 10:42

Wie verarbeitest Du das S0 Signal am Wasserzähler? Ich habe mir einen Wasserzähler mit Reedkontakt herausgesucht, der pro Liter den Kontakt schliesst und damit über meine RS485 Komponente - analog wie mein Gaszähler - auswertbar macht. Aber S0 ?????

Gesendet von meinem GT-I9001 mit Tapatalk 2

EnergyStar
Beiträge: 1276
Registriert: 27.07.2010, 11:38
Danksagung erhalten: 1 Mal

Re: AW: Keine Nachkommastelle

Beitrag von EnergyStar » 05.02.2013, 11:21

Hallo homefisch,

du solltest jede Variable nur einmal definieren. Normale "gute" Programmiersprachen hauen dir bei sowas auf die Finger. Die CCU geht vielleicht irgendwann mal unmotiviert in ne Störung.
Also nur einmal "var x=" schreiben und ab dann nur noch "x=".

Gruß EnergyStar

Gesendet von meinem LIFETAB_P9514 mit Tapatalk 2
--------------------------------------------
CCU1 mit 1.514, CUxD 0.59b, Historian V0.7.6hf1
161 Kanäle in 35 Geräten
in schrittweiser Migration auf die
CCU2 mit 2.15.5, CUxD 0.68, Historian V0.7.6hf1
254 Kanäle in 88 Geräten
gesamte Funktionalität über die
CL-Box mit homeputer CLX Ver. 4.0 Rel. 150625
Ansichten: 17, Objekte: 882, Zeilen: 19863, Variablen: 1966

kallo
Beiträge: 66
Registriert: 05.02.2011, 18:02

Re: AW: Keine Nachkommastelle

Beitrag von kallo » 05.02.2013, 11:45

Hallo EnergyStar.
Dann bist Du bestimmt der Profi für folgende Frage:
Warum muss man beim Rückschreiben in ein Objekt eine vorher nie benutzte Variable verwenden; kurz warum 'var x = objekt.....'
Gruss Karsten

Gesendet von meinem GT-I9001 mit Tapatalk 2

EnergyStar
Beiträge: 1276
Registriert: 27.07.2010, 11:38
Danksagung erhalten: 1 Mal

Re: AW: Keine Nachkommastelle

Beitrag von EnergyStar » 07.02.2013, 13:18

Du musst gar nicht.
Du rufst da eine Funktion auf, und die liefert ein Ergebnis (hier TRUE für ok und FALSE für hat nicht geklappt).
Wenn Du dies in eine Variable speicherst, kannst Du es auswerten.
Du kannst auch eine bereits vorhandene Variable verwenden. Der vorherige Wert ist dann aber weg.

Gruß
EnergyStar

Gesendet von meinem LIFETAB_P9514 mit Tapatalk 2
--------------------------------------------
CCU1 mit 1.514, CUxD 0.59b, Historian V0.7.6hf1
161 Kanäle in 35 Geräten
in schrittweiser Migration auf die
CCU2 mit 2.15.5, CUxD 0.68, Historian V0.7.6hf1
254 Kanäle in 88 Geräten
gesamte Funktionalität über die
CL-Box mit homeputer CLX Ver. 4.0 Rel. 150625
Ansichten: 17, Objekte: 882, Zeilen: 19863, Variablen: 1966

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Keine Nachkommastelle

Beitrag von JPS » 23.02.2013, 22:03

Auf Grundlage eurer guten Ideen habe ich mir eine Stromzähler-Auswertung gebaut und dort beschrieben...

http://homematic-forum.de/forum/viewtop ... 31&t=12232

Vielen Dank an dieser Stelle für die "Vorarbeit".
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“