[vz-users] Abfrage Zählerstand aus Wasserzähler

Heine.Thomas at online.de Heine.Thomas at online.de
Do Apr 8 10:29:00 CEST 2021


Hallo Andreas,

ok, dass passt.
Dann kann ich es mir selbst zusammensetzen...

Kann ich den Gesamtverbrauch irgendwie besser abfragen, dass ich nicht 
alle Werte geliefert bekomme?
Also *nicht* mit
from=1&to=now

Gruß
Thomas

Am 08.04.2021 um 10:18 schrieb Andreas Goetz:
> Das passiert tatsächlich nicht in der Middleware sondern nur im UI:
>
> this.totalconsumption = (this.definition.scale || 1) * 
> this.initialconsumption + json.data.consumption;
>
> Du musst die Addition also selber machen. Den Wert dafür erhältst Du über:
>
> https://demo.volkszaehler.org/middleware.php/entity/1a233660-2e6c-11eb-920c-47caa07ee809.json 
> <https://demo.volkszaehler.org/middleware.php/entity/1a233660-2e6c-11eb-920c-47caa07ee809.json>
>
> Viele Grüße, Andreas
>
>
>> On 8. Apr 2021, at 10:03, Heine.Thomas at online.de 
>> <mailto:Heine.Thomas at online.de> wrote:
>>
>> Hallo Andreas,
>>
>> das ist vom ersten Wert bis jetzt, oder?
>> Das gibt ne lange Liste (siehe Anhang)
>>
>> Da steht dann bei consumption 1490 drin.
>> Ist ja auch der Verbraúch seit der Aufzeichnung.
>>
>> Wird da aber nirgends der Initailverbrauch drauf gerechnet oder 
>> angezeigt, oder?
>> So dass ich es nicht selbst machen muss und an mehreren Stellen dran 
>> denken muss?
>>
>> Oder kann ich den Eintrag des Initialverbrauchs auch irgendwie abfragen?
>>
>> Danke
>>
>> Gruß
>> Thomas
>>
>>
>> Am 08.04.2021 um 09:55 schrieb Andreas Goetz:
>>> Entschuldige, Deine Timestamps scheinen zu passen in ms. Bei Post 
>>> kannst Du die aber weglassen- die Middleware wird sie selbst erzeugen.
>>>
>>> Bzgl. Abfrage probier mal bitte ?from=1&to=now
>>>
>>> Viele Grüße,
>>> Andreas
>>>
>>>
>>>> On 8. Apr 2021, at 09:42, Heine.Thomas at online.de 
>>>> <mailto:Heine.Thomas at online.de> wrote:
>>>>
>>>> Hallo Andreas,
>>>>
>>>> ich steh grade auf dem Schlauch. An welcher Stelle seht ihr denn 
>>>> falsche Zeitstempel?
>>>> Welcher Konverter? Das ESP?
>>>>
>>>> Das ESP sendet die Daten an Node-Red. Dort setze ich mir den 
>>>> Post-Befehl selbst zusammen.
>>>> Ich nehme den Counter-stand und setze die UUID und einen aktuellen 
>>>> Zeitstempel mit dran.
>>>> <bhjgbnpbhbfpehmc.png>
>>>>
>>>> ich poste es wie folgt:
>>>> http://192.168.178.51/middleware.php/data/xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx.json?ts=1617867468039&value=147
>>>>
>>>> Die post-response:
>>>> {"_msgid":"99863cea.a330b","uuid":"xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx","timestamp":1617867468039,"url":"http://192.168.178.51/middleware.php/data/xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx.json?ts=1617867468039&value=147","statusCode":200,"headers":{"date":"Thu, 
>>>> 08 Apr 2021 07:37:48 
>>>> GMT","server":"ReactPHP/1","cache-control":"no-cache, 
>>>> private","content-type":"application/json","access-control-allow-origin":"*","content-length":"26","connection":"close","x-node-red-request-node":"39370292"},"responseUrl":"http://192.168.178.51/middleware.php/data/xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx.json?ts=1617867468039&value=147","payload":{"version":"0.3","rows":1},"redirectList":[]}
>>>>
>>>> Ist hier irgend ein Fehler versteckt?
>>>>
>>>> Gruß
>>>> Thomas
>>>>
>>>> Am 08.04.2021 um 09:01 schrieb Andreas Goetz:
>>>>> Die VZ Zählerstände sind in Millisekunden- der Konverter vmtl. 
>>>>> Sekunden?
>>>>>
>>>>> Viele Grüße, Andreas
>>>>>
>>>>>
>>>>>> On 8. Apr 2021, at 09:00, Heine.Thomas at online.de 
>>>>>> <mailto:Heine.Thomas at online.de> wrote:
>>>>>>
>>>>>> Hallo Thomas,
>>>>>>
>>>>>> Wenn ich es so abfrage:
>>>>>> http://192.168.178.51/data/xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx.json
>>>>>> kommt folgendes:
>>>>>>
>>>>>> {"version":"0.3","data":{"tuples":[[1617777764306,0,1]],"uuid":"xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx","from":1617777464308,"to":1617777764306,"min":[1617777764306,0],"max":[1617777764306,0],"average":0,"consumption":0,"rows":2}}
>>>>>> consumption bleibt 0 (ist das nicht der Aktualverbrauch?)
>>>>>>
>>>>>> Ich hab ja keinen Impuls-Kanal, sondern einen Zählerstand-Kanal.
>>>>>> In Frontend wird der Gesamtverbrauch ja auch richtig angezeigt 
>>>>>> (aufgerundet 136m³):
>>>>>>
>>>>>> <ajjlibndepcjlagi.png>
>>>>>>
>>>>>> Den Gesamtverbrauch (müsste ja der Zählerstand sein) würde ich 
>>>>>> gerne anzeigen.
>>>>>> Oder habe ich hier irgendwas nicht richtig kapiert, oder 
>>>>>> Grundlegende Denkfehler?
>>>>>>
>>>>>> Der Counter-Stand des ESP kann doch auch als Zählerstand mit dem 
>>>>>> entsprechenden Offset und Initialverbrauch als "Zähler" dienen, oder?
>>>>>>
>>>>>> <lppmegjjoipaghpl.png>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Was stimmt bei den Zeitstempeln nicht? Wenn ich sie im 
>>>>>> Unix-Time-Converter eingebe, passen sie.
>>>>>>
>>>>>> Gruß Thomas
>>>>>>
>>>>>>
>>>>>> Am 08.04.2021 um 08:40 schrieb Thomas Höpfner:
>>>>>>> RE: [vz-users] Abfrage Zählerstand aus Wasserzähler
>>>>>>> Hallo Thomas,
>>>>>>>
>>>>>>> die Zeitstempel stimmen nicht. Wie PHP hier reagiert verstehe 
>>>>>>> ich auch nicht.
>>>>>>> options=raw kanst du weglassen. Hier bekommst du nur eine Liste 
>>>>>>> mit allen Impulsen. Interesand ist aber nur die Anzahl, die 
>>>>>>> steht dann auch als consumtion in der Antwort.
>>>>>>> Ich sehe im Moment keine Möglichkeit den aktuellen Zählerstand 
>>>>>>> eines Iipulszählers aus vz auszulesen.
>>>>>>>
>>>>>>> Thomas
>>>>>>>
>>>>>>>     -----Ursprüngliche Nachricht-----
>>>>>>>     *Von:* Heine.Thomas at online.de <Heine.Thomas at online.de>
>>>>>>>     *Gesendet:* Donnerstag 8 April 2021 08:24
>>>>>>>     *An:* volkszaehler-users at demo.volkszaehler.org
>>>>>>>     *Betreff:* Re: [vz-users] Abfrage Zählerstand aus Wasserzähler
>>>>>>>
>>>>>>>     Hallo Andreas,
>>>>>>>
>>>>>>>     es liegen seid 2.4. Daten vor (inzwischen 1450 Liter)
>>>>>>>     Initialverbrauch 134264 Liter
>>>>>>>     Der Zählerstand sollten also inzwischen rechnerisch 135714
>>>>>>>     Liter sein.
>>>>>>>
>>>>>>>     Hier die Debug-Abfrage:
>>>>>>>
>>>>>>>     http://192.168.178.51/data/xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx.json?from=-1&options=raw&debug=1
>>>>>>>     <http://192.168.178.51/data/xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx.json?from=-1&options=raw&debug=1>
>>>>>>>
>>>>>>>     und das Ergebnis:
>>>>>>>
>>>>>>>     {
>>>>>>>     	"version": "0.3",
>>>>>>>     	"data": {
>>>>>>>     		"tuples": [
>>>>>>>     			[
>>>>>>>     				1617862067814,1617864302904
>>>>>>>     				145,
>>>>>>>     				1
>>>>>>>     			]
>>>>>>>     		],
>>>>>>>     		"uuid": "xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx",
>>>>>>>     		"from": 1617861767833,
>>>>>>>     		"to": 1617862067814,
>>>>>>>     		"average": 0,
>>>>>>>     		"consumption": 0,
>>>>>>>     		"rows": 2
>>>>>>>     	},
>>>>>>>     	"debug": {
>>>>>>>     		"database": "pdo_mysql",
>>>>>>>     		"time": 0.19783,
>>>>>>>     		"uptime": 1177360290,
>>>>>>>     		"load": [
>>>>>>>     			3.78,
>>>>>>>     			4.25,
>>>>>>>     			4.21
>>>>>>>     		],
>>>>>>>     		"commit-hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
>>>>>>>     		"php-version": "7.3.19-1~deb10u1",
>>>>>>>     		"messages": [],
>>>>>>>     		"sql": {
>>>>>>>     			"totalTime": 0.02234506607055664,
>>>>>>>     			"worstTime": 0.0026459693908691406,
>>>>>>>     			"queries": [
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  MAX(timestamp) \nFROM \n  data \nWHERE \n  channel_id = 44 \n  AND timestamp < 1617873106000",
>>>>>>>     					"execTime": 0.0026459693908691406
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  MAX(timestamp) \nFROM \n  data \nWHERE \n  channel_id = 44 \n  AND timestamp < 1617862067814",
>>>>>>>     					"execTime": 0.0012600421905517578
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 6 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.0021820068359375
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 5 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.0018649101257324219
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 4 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.002110004425048828
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 3 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.0017001628875732422
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 2 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.001873016357421875
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 1 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.0018138885498046875
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  UNIX_TIMESTAMP(\n    FROM_UNIXTIME(\n      MIN(timestamp) \/ 1000, \n      \"%Y-%m-%d %H:%i:00\"\n    )\n  ) * 1000 \nFROM \n  aggregate \nWHERE \n  channel_id = 44 \n  AND type = '1' \n  AND timestamp >= UNIX_TIMESTAMP(\n    DATE_ADD(\n      FROM_UNIXTIME(\n        1617861767833 \/ 1000, \"%Y-%m-%d %H:%i:00\"\n      ), \n      INTERVAL 1 minute\n    )\n  ) * 1000",
>>>>>>>     					"execTime": 0.001316070556640625
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  UNIX_TIMESTAMP(\n    DATE_ADD(\n      FROM_UNIXTIME(\n        MAX(timestamp) \/ 1000, \n        \"%Y-%m-%d %H:%i:00\"\n      ), \n      INTERVAL 1 minute\n    )\n  ) * 1000 \nFROM \n  aggregate \nWHERE \n  channel_id = 44 \n  AND type = '1' \n  AND timestamp < 1617862067814",
>>>>>>>     					"execTime": 0.0012249946594238281
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  aggregate.type \nFROM \n  aggregate \n  INNER JOIN entities ON aggregate.channel_id =entities.id  <http://entities.id/>  \nWHERE \n  uuid = 'xxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxx' \n  and aggregate.type = 0 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nLIMIT \n  1",
>>>>>>>     					"execTime": 0.0016429424285888672
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  COUNT(1) \nFROM \n  data \nWHERE \n  channel_id = 44 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814",
>>>>>>>     					"execTime": 0.001310110092163086
>>>>>>>     				},
>>>>>>>     				{
>>>>>>>     					"sql": "SELECT \n  timestamp, \n  value, \n  1 AS count \nFROM \n  data \nWHERE \n  channel_id = 44 \n  AND timestamp >= 1617861767833 \n  AND timestamp <= 1617862067814 \nORDER BY \n  timestamp ASC",
>>>>>>>     					"execTime": 0.0014009475708007812
>>>>>>>     				}
>>>>>>>     			]
>>>>>>>     		}
>>>>>>>     	}
>>>>>>>     }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>     Hilft das weiter?
>>>>>>>
>>>>>>>     Gruß
>>>>>>>     Thomas
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>     Am 08.04.2021 um 08:10 schrieb Andreas Goetz:
>>>>>>>
>>>>>>>         Häng mal bitte ein &debug=1 dran, dann sollten wir sehen
>>>>>>>         welches SQL ausgeführt wird. Vielleicht gibt das einen
>>>>>>>         Hinweis.
>>>>>>>
>>>>>>>         Viele Grüße, Andreas
>>>>>>>
>>>>>>>         PS.: seit wann erfasst Du die Daten?
>>>>>>>
>>>>>>>             Am 08.04.2021 um 07:59 schrieb
>>>>>>>             Heine.thomas at online.de <mailto:Heine.thomas at online.de>:
>>>>>>>
>>>>>>>             Hallo,
>>>>>>>
>>>>>>>             ich habe inzwischen meinen Wasserzähler mit einem
>>>>>>>             Reed-Kontakt ausgestattet und lese ihn per Tasmota
>>>>>>>             ESP8266 über einen Counter (10l-Schritte) aus.
>>>>>>>             der Counterwert wird also alle 10l um 1 erhöht.
>>>>>>>             Im VZ-Logger habe ich einen Kanal mit "Wasser
>>>>>>>             Zählerstände" angelegt.
>>>>>>>             Das klappt soweit auch alles. Ich sehe einen
>>>>>>>             Verbrauch, und auch den Gesamt-Zählerstand nach dem
>>>>>>>             ich einen Initialen Zählerstand eingetragen habe.
>>>>>>>
>>>>>>>             <adillmbjlmnoplia.png>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>             Per HTTP-Request kann ich auch bestimmte
>>>>>>>             Zeit-Bereiche super abfragen.
>>>>>>>
>>>>>>>             Jetzt würde ich gerne aber an meiner
>>>>>>>             Haus-Visualisierung den aktuellen Zählerstand anzeigen.
>>>>>>>
>>>>>>>
>>>>>>>             So wollte ich ihn abfragen:
>>>>>>>
>>>>>>>             http://192.168.178.51/data/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx.json?from=-1&options=raw
>>>>>>>             <http://192.168.178.51/data/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx.json?from=-1&options=raw>
>>>>>>>
>>>>>>>             das json sieht jedoch dann so aus:
>>>>>>>
>>>>>>>             {"version":"0.3","data":{"tuples":[[1617860867741,144,1]],"uuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx","from":1617860567724,"to":1617860867741,"average":0,"consumption":0,"rows":2}}
>>>>>>>
>>>>>>>
>>>>>>>             bzw. so:
>>>>>>>             <lcnmkochlddnejkg.png>
>>>>>>>
>>>>>>>             der Zählerstand müsste derzeit irgendwo bei 136xxx
>>>>>>>             Liter sein...
>>>>>>>
>>>>>>>             Was mache ich bei der Abfrage zum Zählerstand falsch?
>>>>>>>
>>>>>>>             Danke vorab für eure Hilfe
>>>>>>>
>>>>>>>             Gruß
>>>>>>>             Thomas
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>> <xxxx-xxxxxx-xxxxxxx-xxxxxxx.json>
>

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


Mehr Informationen über die Mailingliste volkszaehler-users