den zähler nutze ich nur für den 15 Minuten Mittelwert. Die Zähler von L&J geben den Wert in W aus. Das Datenformat ist f32. Ich hatte vorher u32 das ging garnicht. Die direkten Werte, also Leistung Haus1, Haus2, etc. zeigen auch alle korrekt an. Nun bei den berechneten Werten kommt nichts. Z.B. die Gesamtleistung bleibt immer leer. Genauso wie meine Graphen, da passiert leider auch nichts. Das muss noch irgendwo ein Bug ein, aber bei diesem Forum bin ich sicher das wir ihn finden ;-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
EIBPC auf den neusten Stand bringen
Einklappen
X
-
Zitat von fuchs Beitrag anzeigenDas Datenformat ist f32. Ich hatte vorher u32 das ging garnicht.
Du kennst diesen Thread oder auch diesen Thread hier?
Gruß,
Bernd
Kommentar
-
ich hatte zuerst die werte als u32. die direkten anzeigen haben dann aber nicht plausieble werte angezeigt. ich habe dann auf f32 umgestellt, ab da zeigen zumindest die werte die nicht berecht werden korrekt an. nur die berechneten weigen sich.
Eine Frage dazu, wenn ich eine Zuweisung
in der Art mache:
Variable=Gruppenadresse
wird die in jedem Durchlauf ausgeführt und nur einmalig? Oder muss ich es so machen
if change(Gruppenadresse) the Variable=Gruppenadresse endif
?
Kommentar
-
So, ich habs geschafft, die Anzeige in den Buttons funktioniert nun richtig. Allerdings werden die Diagramme nur mit Nullen gefüllt.
Die Zähler senden je Minute ihre Werte. Diese summiere ich und zähle mit der Variablen "Minuten" hoch.
Jede Viertelstunde sollen die Werte dann ins Diagramm geschrieben werden. Hierzu dividiere ich durch den Zähler um den Mittelwert zu erhalten. Dazu wird der Wert noch in f16 konvertiert.
convert(ZahlerMWB/Minuten,0f16)
Darf mann das so schreiben oder dürfen in convert keine Berechnungen stehen also so
convert(ZahlerMWB,0f16)/Minuten
dann die Minuten natürlich als f16?
[highlight=epc]
WebZeit=convert(convert(hour(),0f32)+convert(minut e(),0f32)/60f32,0f16)
//Mittelwertbildung für Zählerdiagramme
//Zählerwerte sekündlich aufsummieren und Minuten hochzähler
Minuten=0f32
ZahlerMWA=0f32
ZahlerMWB=0f32
ZahlerMWC=0f32
ZahlerMWD=0f32
ZahlerMWBHKW=0f32
ZahlerMWBHKWE=0f32
ZahlerMWGe=0f32
ZahlerMWZu=0f32
if stime(00) then {
Minuten=Minuten+1f32;
ZahlerMWA=ZahlerMWA+"Leistung Strom-11/1/1";
ZahlerMWB=ZahlerMWB+"Leistung Strom-11/0/1";
ZahlerMWC=ZahlerMWC+"Leistung Strom-11/2/1";
ZahlerMWD=ZahlerMWD+"Leistung Strom-11/5/1";
ZahlerMWBHKW=ZahlerMWBHKW+"Leistung Strom-11/3/1";
ZahlerMWBHKWE=ZahlerMWBHKWE+BHKWEigen;
ZahlerMWGe=ZahlerMWGe+GesamtLeistung;
ZahlerMWZu=ZahlerMWZu+Zukauf;
} endif
//Mittelwerte alle 15 Minuten ins Diagramm schreiben und Variablen wieder auf 0 setzen
if (mtime(00,00) or mtime(15,00) or mtime(30,00) or mtime(45,00)) then {
mpchart(ZahlerGA,WebZeit,convert(ZahlerMWA/Minuten,0f16),0,ZahlerID);
mpchart(ZahlerGB,WebZeit,convert(ZahlerMWB/Minuten,0f16),0,ZahlerID);
mpchart(ZahlerGC,WebZeit,convert(ZahlerMWC/Minuten,0f16),0,ZahlerID);
mpchart(ZahlerGD,WebZeit,convert(ZahlerMWD/Minuten,0f16),0,ZahlerID);
mpchart(ZahlerGBHKW,WebZeit,convert(ZahlerMWBHKW/Minuten,0f16),0,ZahlerID);
mpchart(ZahlerGBHKW,WebZeit,convert(ZahlerMWBHKWE/Minuten,0f16),1,ZahlerID);
mpchart(ZahlerGGe,WebZeit,convert(ZahlerMWGe/Minuten,0f16),0,ZahlerID);
mpchart(ZahlerGGe,WebZeit,convert(ZahlerMWZu/Minuten,0f16),1,ZahlerID);
Minuten=0f32;
ZahlerMWA=0f32;
ZahlerMWB=0f32;
ZahlerMWC=0f32;
ZahlerMWD=0f32;
ZahlerMWBHKW=0f32;
ZahlerMWBHKWE=0f32;
ZahlerMWGe=0f32;
ZahlerMWZu=0f32;
} endif
[/highlight]
Kommentar
-
Also es lag tatsächlich an diesem Befehl:
convert(ZahlerMWB/Minuten,0f16)
so darf man also im EIBPC nicht schreiben. Meine Leistungsberechnung stimmen nun alle, die grafische Anzeige funktioniert auch.
Wie man aber im Bild 3 sieht, sind die Balken im Diagramm etwas breit, sodass sie sich überlappen. Kommt da nochmal eine Besserung? Und was mir noch im Bild 4 aufgefallen ist, der aktuelle Graph ist hinter der Legende. Wenn es mal ein Diagramm gibt, welches die Daten immer von rechts nach links schiebt, also nicht wieder von links anfängt könnte man doch die Legende in die linke Ecke verschieben?
Kommentar
-
Zitat von fuchs Beitrag anzeigenconvert(ZahlerMWB/Minuten,0f16)
so darf man also im EIBPC nicht schreiben.Tessi
Kommentar
-
Zitat von Tessi Beitrag anzeigenHm, ist das jetzt ein Bug oder ein Feature?Zitat von fuchs Beitrag anzeigenAlso es lag tatsächlich an diesem Befehl:
convert(ZahlerMWB/Minuten,0f16)
Natürlich muss gehen:
[highlight=epc]
a=1.2f32
b=2454f32
c=convert(a/b,0u16)
[/highlight]
Alles andere (wenn also c==0f32) wäre ein Bug. Oder was meinst Du?offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Also ich hatte zuerst folgenden Befehl im PC
convert(ZahlerMWB/Minuten,0f16)
hiermit kam nur Nullen ins Diagramm. Ich habe mir den Quelltext angeschaut, damit ich sehe ob das mit der Webzeit funktionierte.
Ich habe dann nur den Befehl gegen
convert(ZahlerMWB,0f16)/Minuten
getauscht. Minuten habe ich natürlich vorab in f16 gewandelt. Seit dem funktioniert die Anzeige. Meine Vermutung daher, die Berechnung innerhalb von convert funktioniert nicht?!
Kommentar
-
Zitat von fuchs Beitrag anzeigenMeine Vermutung daher, die Berechnung innerhalb von convert funktioniert nicht?!offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
-
Kein Problem,
https://knx-user-forum.de/234720-post11.html
hier steht ja mein Quelltext, noch in der nicht funktionierenden Variante. Ich kann euch auch gern den Code zusenden. Wie Ihr wollt.
Kommentar
-
Zitat von fuchs Beitrag anzeigenhier steht ja mein Quelltext, noch in der nicht funktionierenden Variante. Ich kann euch auch gern den Code zusenden. Wie Ihr wollt.offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar
Kommentar