Closed berndy2001 closed 1 year ago
Hallo,
vielen Dank fürs Einmelden!
Ich habe es selbst grade getestet - und es scheint wirklich so zu sein dass der Parameter "dateTo" nicht mehr greift. Auch auf deren Homepage sehe ich in den Abfragen von "messdaten/zaehlpunkt/".$meterpoint."/verbrauch" keinen dateTo Parameter mehr. Bei anderen Abfragen wird auch manchmal der Parameter "dateUntil" verwendet - jedoch funktioniert der hier auch nicht.
Ich würde hier noch einige Tests machen wollen, aber das Einzige das mir als eine nachhaltige Lösung erscheint - wäre die Resultate von der API selbst nochmal zu überprüfen und nur die in der angegebenen Zeit mit getConsumption zurückzuliefern.
Es greift übrigens auch "dateFrom" nicht mehr. Es wird zwar von "dateFrom" gestartet, es werden die werte vor "dateFrom" aber scheinbar hinten angehängt.
Bsp.
dateFrom = ... 03:00:00 dateTo = ... 05:00:00
Resultat: Item1 - 03:00:00 Item2 - 03:15:00 ... ItemX - 23:45:00 ItemX+1 - 03:15:00 ItemX+2 - 03:30:00 ...
vielen Dank fürs Einmelden!
vielen dank für das skript und den Support!
Es greift übrigens auch "dateFrom" nicht mehr. Es wird zwar von "dateFrom" gestartet, es werden die werte vor "dateFrom" aber scheinbar hinten angehängt.
das kann ich nicht nachvollziehen. from 2023-09-11 10:00:00 to 2023-09-11 12:00:00 ergibt genau 24 Stunden (über den Tageswechsel):
2023-09-11T10:00:00.000Z 2023-09-11T10:15:00.000Z 2023-09-11T10:30:00.000Z 2023-09-11T10:45:00.000Z 2023-09-11T11:00:00.000Z ... 2023-09-11T23:30:00.000Z 2023-09-11T23:45:00.000Z 2023-09-12T00:00:00.000Z 2023-09-12T00:15:00.000Z 2023-09-12T00:30:00.000Z ... 2023-09-12T09:15:00.000Z 2023-09-12T09:30:00.000Z 2023-09-12T09:45:00.000Z
ahh, seh schon - die Einträge sind am nächsten Tag - stimmt. dateFrom greift also.
Gut, ich hab mal deren Support geschrieben - erwarte hier aber nichts brauchbares zurück. Unterm Strich ist wahrscheinlich die Werte in der Klasse zu filtern, und nur die gewünschten zurückzuliefern der beste Ansatz.
Werde das so bald wie möglich updaten.
vielen Dank!
Problem ist aber dann auch, dass bei einer Abfrage von mehr als 24 Stunden (zB 2 Tage) die Daten dann nur die ersten 24 Stunden enthalten.
Es gäbe auch die B2B-Api unter https://api.wstw.at/gateway/WN_SMART_METER_PORTAL_API_B2B/1.0/zaehlpunkte/messwerte?zaehlpunkt=AT001000000000000000xxx&datumVon=2023-09-18&datumBis=2023-09-20&wertetyp=QUARTER_HOUR welche volle Tage liefert. Vorteil wäre auch, dass man sich die Zeitzonenkonvertierung ersparen könnte.
Featurerequest: https://api.wstw.at/gateway/WN_SMART_METER_PORTAL_API_B2C/1.0/ als API-URL aufnehmen und getMeasurements($meterpoint, $start, $end, $type) bereitstellen. type ist 'QUARTER_HOUR', 'DAY' oder 'METER_READ'
Ich könnte mir vorstellen hier einen pull-request zu liefern, aber meine php-kenntnisse sind angestaubt, daher bin ich nicht sicher ob das gewünscht ist.
Ja, auf das Problem bin ich auch schon gestoßen ... Es ist eigentlich recht ungut das Ganze ... Ich habe auch bereits etwas gefunden - /verbrauchRaw - hier könnte man es auch tagweise auslesen ...
Freue mich natürlich über jede contribution - bei mir sind es jedoch die git-kenntnisse die angestaubt sind ( oder noch nie wirklich vorhanden waren ) Also gerne, muss nur wissen was für mich dabei zu tun ist :D
Ich habe auch bereits etwas gefunden - /verbrauchRaw - hier könnte man es auch tagweise auslesen ...
da bekomme ich dann aber nur Tageswerte raus...
Freue mich natürlich über jede contribution
Also gerne, muss nur wissen was für mich dabei zu tun ist
testen ob ich keinen Mist gebaut habe 😉 und dann stashen+mergen (mit stash werden meine beiden commits in einen zusammengefasst)
Ok, ich glaub ich habs geschafft.
Erst Mal - vielen Dank! Meine Tests waren durchwegs positiv!
Ich lasse das Ticket mal offen, weil ich die getConsumption auch noch anpassen muss. So dass zumindest bei abfragen < 24h die richtigen Resultate kommen.
vielen Dank nochmal!
erl.
$end
ingetConsumption($meterpoint, $start, $end)
wird nicht berücksichtigt, es werden immer 24 Stunden ausgegeben.Beispiel:
$yesterday = date('Y-m-d',strtotime("-1 days"));
$consumption = $sm->getConsumption($me->registration->zaehlpunkt, $yesterday." 10:00:00", $yesterday." 15:59:59");
Möglicherweise wurde die Api geändert: https://api.wstw.at/gateway/WN_SMART_METER_PORTAL_API_B2C/1.0/messdaten/xxx/ATxxx/verbrauch?dateFrom=2023-09-15T22%3A00%3A00.000Z&period=DAY&accumulate=false&offset=0&dayViewResolution=QUARTER-HOUR
Danke!