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

Heine.Thomas at online.de Heine.Thomas at online.de
Do Apr 8 10:03:51 CEST 2021


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

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20210408/f53c2525/attachment-0001.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : xxxx-xxxxxx-xxxxxxx-xxxxxxx.json
Dateityp    : application/json
Dateigröße  : 34911 bytes
Beschreibung: nicht verfügbar
URL         : <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20210408/f53c2525/attachment-0001.json>


Mehr Informationen über die Mailingliste volkszaehler-users