[vz-users] Gesamtverbrauch Gaszähler mit Nachkommastellen

rgb at nord-com.net rgb at nord-com.net
So Mär 29 19:47:37 CEST 2020


Hallo Frank,

 

Danke, das ist hilfreich! Für jemanden (wie mich), der nicht in der Programmierung der Middleware drinsteckt, ist halt manchmal eine SQL-Abfrage einfacher, um z.B. automatisch Tabellen zur Auswertung meiner Daten zu generieren.

 

Ich habe ja ein bisschen den PR #792 (make usage of aggregation data more efficient for mysql) mitverfolgt, versucht nachzuvollziehen (und inzwischen auch bei mir so eingebaut).

 

Wenn man wie ich kein PHP kann, ist das schon spannend, wirklich mitreden kann ich da halt nicht…

 

Gruss,

Alex

 

From: volkszaehler-users [mailto:volkszaehler-users-bounces at demo.volkszaehler.org] On Behalf Of Frank Richter
Sent: Sunday, March 29, 2020 7:28 PM
To: volkszaehler.org - users
Subject: Re: [vz-users] Gesamtverbrauch Gaszähler mit Nachkommastellen

 

Das Frontend macht für den Gesamtzählerstand folgenden Request:

http://IP/middleware.php/data/UUID.json?from=0 <http://IP/middleware.php/data/UUID.json?from=0&group=day&tuples=1> &group=day&tuples=1

und nimmt sich aus der JSON-Antwort den consumption-Wert und rechnet initialconsumption dazu.

 

Genauso würde ich auch vorgehen, wenn ich den aktuellen Stand rauskriegen wollte.

 

Grüße

Frank

 

 

 

 

Am So., 29. März 2020 um 18:28 Uhr schrieb <rgb at nord-com.net>:

Hallo Frank,

 

man kann natürlich für die Abfrage auch die Daten aus der aggregate Tabelle nehmen…  prinzipiell hast Du natürlich schon Recht… ich verwende diese Abfrage, wenn ich’s mal wirklich ganz genau wissen möchte, um z.B. die Anzeige am Zähler mit den aufsummierten Daten meiner DB zu vergleichen… 

 

…dachte in diesem konkreten Fall für Abrechnungszwecke könnte es auch hilfreich sein.

 

Grüsse,

Alex

 

From: volkszaehler-users [mailto:volkszaehler-users-bounces at demo.volkszaehler.org] On Behalf Of Frank Richter
Sent: Sunday, March 29, 2020 6:15 PM
To: volkszaehler.org - users
Subject: Re: [vz-users] Gesamtverbrauch Gaszähler mit Nachkommastellen

 

Sorry, stimmt natürlich nicht. Trotzdem würde ich das die Middleware erledigen lassen, die nutzt dafür aggregierte Daten und kann das deutlich schneller.

 

Grüße

Frank

 

Frank Richter <frank.richter83 at gmail.com> schrieb am So., 29. März 2020, 18:11:

Die SQL-Abfrage hilft nur bei einem Zählerstand-Kanal. Bei Impulsen müssen sämtliche Impulse aufsummiert werden, um den Gesamtverbrauch zu erhalten.

 

Grüße

Frank

 

Tobias Lehr <tobias.lehr at me.com> schrieb am So., 29. März 2020, 18:06:

Hm also dann habe ich da falsch herum gedacht. Das hieße ich müsste die precision auf 8 stellen und bei maxPrecision für alle anderen werte dann die entsprechende Zahl vorgeben? Etwas kompliziert. mal testen.

 

Die Datenbankabfrage habe ich jetzt auch hinbekommen, es lag an zwei doppelten Leerzeichen. Hab mir die korrekte Syntax jetzt mal abgespeichert, nur für den Fall.

 

Gruß Tobias

Am 29.03.2020 um 17:43 schrieb rgb at nord-com.net:

 

Hmm, bei mir funkioniert es…

 

pi at avz:~:(1)> mysql -uvz -pyourpassword

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 76

Server version: 10.3.13-MariaDB-1 Raspbian testing-staging

 

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]> SELECT id FROM `volkszaehler`.`entities`

    ->  WHERE UUID = 'b12dfd80-111c-11ea-8e1a-c9616b442377' INTO @CHANNEL;

Query OK, 1 row affected (0.002 sec)

 

MariaDB [(none)]> SELECT channel_id AS Kanal,(SELECT VALUE FROM `volkszaehler`.`properties`

    ->   WHERE  `entity_id` = @CHANNEL AND `pkey` = 'title') AS Name,

    -> ROUND(sum(VALUE/100)+(SELECT VALUE FROM `volkszaehler`.`properties`

    ->   WHERE  `entity_id` = @CHANNEL AND `pkey` = 'initialconsumption'),2) AS Zählerstand

    -> FROM `volkszaehler`.`data`

    -> WHERE `channel_id` =  @CHANNEL ;

+-------+-------------+--------------+

| Kanal | Name        | Zählerstand  |

+-------+-------------+--------------+

|    10 | Zähler Gas  |      7346.64 |

+-------+-------------+--------------+

1 row in set (1.501 sec)

 

MariaDB [(none)]>

 

From: volkszaehler-users [mailto:volkszaehler-users-bounces at demo.volkszaehler.org] On Behalf Of Tobias Lehr
Sent: Sunday, March 29, 2020 5:34 PM
To: volkszaehler.org - users
Subject: Re: [vz-users] Gesamtverbrauch Gaszähler mit Nachkommastellen

 

Vielen Dank für die Anregungen, ABER…

 

precision in der options.js habe ich gefunden, aber noch nicht so genau verstanden. Standardmäßig ist precision ja auf 2 eingestellt. Ich habe jetzt aber verschiedene Nachkommastellen. Temperaturen sind alle mit 1 NAchkommastelle, es sei denn diese wäre 0, dann haben sie keine nachkommastellen.

 

Alle Werte mit 3 Stellen, haben gar keine Nachkommastellen. Werte kleiner 1 haben 1, 2 oder  3 Nachkommastellen. 

 

Die Werte unter Gesamt sind immer ohne, die haben aber auch 5 oder 6 Stellen.

 

ich habe jetzt precision auf 8 hochgenommen, weil mein Gaszähler 5 Stellen vor dem Komma hat. Das funktioniert, dann hat der Gaszähler gesamt 3 Nachkommastellen, allerdings sehr unschön daran, Werte mit nur einer Stelle vor dem Komma haben dann plötzlich 7 NAchkommastellen.

 

Also habe ich versucht eine Ausnahme einzufügen wie bei der für °C, das funktioniert aber nicht, ich vermute es liegt an der hochgestellten 3 in m3.

 

maxPrecision:[

        {                                               // override precision for certain units

                '°C': 1

        },{

                'm³': 8

        }

        ],

 

so habe ich versucht es zu erweitern. die hochgestellt 3 habe ich mir einfach reinkopiert. Aber auch die Angabe m3 oder m^3 funktionieren nicht.

 

 

Zu der SQL Abfrage, ich würde zwar gerne den Wert fest im Frontend angezeigt bekommen aber so eine Abfrage kann ja hilfreich oder zumindest lehrreich sein. Ich muss dazu sagen ich bin absoluter Laie was SQL angeht.

 

Wo muss ich die absetzen? In mysql direkt? phpmyAdmin habe ich nicht installiert. Habe ich probiert, aber bekomme einen Fehler wenn ich folgendes eingebe, also per copy&paste.

 

SELECT id FROM `volkszaehler`.`entities` 
 WHERE UUID = 'b12dfd80-111c-11ea-8e1a-c9616b442377' INTO @CHANNEL;

 

Der Fehler lautet: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UUID = '01e03ee0-3241-11e9-991f-856a034c5015' INTO @CHANNEL' at line 2

 

ich habe selbstverständlich die UUID auf die meines Gaszählers geändert.

 

Gruß Tobias

 

 

Am 29.03.2020 um 16:23 schrieb  <mailto:rgb at nord-com.net> rgb at nord-com.net:

 

Hallo,

Folgende SQL-Abfrage könnte als Vorlage für die Berechnung des genauen Verbrauches dienen... müsstest Du für Deine Gegebenheiten entsprechend anpassen...

SELECT id FROM `volkszaehler`.`entities` 
 WHERE UUID = 'b12dfd80-111c-11ea-8e1a-c9616b442377' INTO @CHANNEL;

SELECT channel_id AS Kanal,(SELECT VALUE FROM `volkszaehler`.`properties` 
  WHERE  `entity_id` = @CHANNEL AND `pkey` = 'title') AS Name,
          ROUND(sum(VALUE/100)+(SELECT VALUE FROM `volkszaehler`.`properties` 
  WHERE  `entity_id` = @CHANNEL AND `pkey` = 'initialconsumption'),2) AS Zählerstand
FROM `volkszaehler`.`data` 
WHERE `channel_id` =  @CHANNEL ;

Gruss,
Alex

-----Original Message-----
From: volkszaehler-users [mailto:volkszaehler-users-
 <mailto:bounces at demo.volkszaehler.org> bounces at demo.volkszaehler.org] On Behalf Of Tobias Lehr
Sent: Sunday, March 29, 2020 3:25 PM
To: volkszaehler-users
Subject: [vz-users] Gesamtverbrauch Gaszähler mit Nachkommastellen

Hallo,

ich logge meinen Gasverbrauch per S0 in den Volkszaehler. Die Werte für
min., max., aktuell und Verbrauch werden mit Nachkommastellen
angezeigt. Der Gesamtverbrauch wird aber nur mit ganzer Zahl angezeigt.
Mein Gaszähler hat aber 3 Nachkommastellen und mein Gasversorger
möchte den Zählerstand mit Nachkommastellen angegeben haben. Und da
ich gerade den Zählerstand für die Abrechnung angeben musste, wollte ich
wissen ob man den Gesamtverbrauch, der ja der Zählerstand ist, auch mit
Nachkommastellen anzeigen lassen kann. Ich habe da was in Erinnerung das
es eventuell durch Änderung der options.js Datei gehen könnte. Aber ich
habe leider überhaupt keine Idee wie. Liege ich da richtig? Und könnte mir
da jemand Unterstützung geben.

Gruß Tobias

 

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20200329/c5bd3d69/attachment-0001.html>


More information about the volkszaehler-users mailing list