[Frage] [V4.0 IP3] - verschachtelter Selektor HTTP-API - Energie

Wissen, Planung & Diskussion zur Unterstützung von Rest-API & Webabfragen im Timberwolf Server.
Stellt uns hier Eure Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
Bjoern
Reactions:
Beiträge: 39
Registriert: So Apr 03, 2022 9:21 am
Wohnort: Niederösterreich
Hat sich bedankt: 7 Mal
Danksagung erhalten: 21 Mal

[V4.0 IP3] - verschachtelter Selektor HTTP-API - Energie

#1

Beitrag von Bjoern »

Hallo zusammen,

da ich in Kürze - wie schon viele von euch - zu einem dynamischen Stromtarif Anbieter wechsele - möchte ich die Daten per HTTP-API integrieren.
Generell bekomme ich die Verbindung - und der preview passt auch.
Bei mir hackt es - an die verschachtelten Elemente zu aus dem "data" Bereich zu kommen.
Bild
Anbieter ist SmartEnergy in Österreich
Wie komme ich an die einzelnen Stunden Werte?
mit dem Selektor "data.value[0]" bekomme ich einen Fehler. Auch mit den 1,2, 3 etc...
Der Anbieter gibt mir alle 15min Intervalle...
{
"tariff": "EPEXSPOTAT",
"unit": "ct/kWh",
"interval": 15,
"data": [
{
"date": "2023-08-04T00:00:00+02:00",
"value": 10.817
},
{
"date": "2023-08-04T00:15:00+02:00",
"value": 10.817
},
was habe ich vergessen? Hat da jemand schon eine fertige Logik um hier nicht 192 Abfragen bauen zu müssen (nächsten 48std)?
Würde gerne einfach die Werte date + value in die DB schreiben... und dann entsprechend Logiken auslösen (Strom sparen...)
Danke für eure Inputs
Björn
Zuletzt geändert von Parsley am Sa Aug 05, 2023 12:20 pm, insgesamt 1-mal geändert.
TWS 3500 L ID: 706, KNX, Modbus TCP, VPN geschlossen, Reboot nach Rücksprache

blaubaerli
Reactions:
Beiträge: 2678
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1000 Mal
Danksagung erhalten: 787 Mal

#2

Beitrag von blaubaerli »

Hallo Björn,

probiere als Selektor mal:

data[0].value

Beste Grüße
Jens

PS: Details im Wiki dazu unter https://elabnet.atlassian.net/wiki/x/A4CZd
Zuletzt geändert von blaubaerli am Fr Aug 04, 2023 3:04 pm, insgesamt 1-mal geändert.
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

MrWilson
Reactions:
Beiträge: 284
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 169 Mal

#3

Beitrag von MrWilson »

Hey Björn,

der Selektor sollte eigentlich data[0].value heißen.

Grüße Willy
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
Bjoern
Reactions:
Beiträge: 39
Registriert: So Apr 03, 2022 9:21 am
Wohnort: Niederösterreich
Hat sich bedankt: 7 Mal
Danksagung erhalten: 21 Mal

#4

Beitrag von Bjoern »

Hey Willy, hi Jens,

langsam verstehe ichs :-) Danke!
Aber - wie bekomme ich den Timestamp richtig ausgelesen?
data[0].date
da bekomme ich nur "2023"
Idee wie man das intelligenter machen kann als die 192 Werte oder zumindest die 96 Werte pro Tag einmal einzeln abzufragen? Quasi wie ein Stack?

Gruß
Björn
TWS 3500 L ID: 706, KNX, Modbus TCP, VPN geschlossen, Reboot nach Rücksprache

MrWilson
Reactions:
Beiträge: 284
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 169 Mal

#5

Beitrag von MrWilson »

Was hast du bei der Abfrage des Datums als Format gewählt? Text müsstest du auswählen.

Ich sehe nur die 96 Werte. Woher kommen die anderen Werte her? Und ja, ich denke hier ist Fleißarbeit angesagt, probier aber erstmal aus, ob du die Abfragen für deinen Zweck verwenden kannst.
Zuletzt geändert von MrWilson am Fr Aug 04, 2023 4:10 pm, insgesamt 1-mal geändert.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

blaubaerli
Reactions:
Beiträge: 2678
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1000 Mal
Danksagung erhalten: 787 Mal

#6

Beitrag von blaubaerli »

Hallo Björn,

wenn du dann mit der Zeit als solches auch noch etwas anfagen möchtest, dann solltest du das ggf. durch eine Logik schleifen. Dazu Details dann bei Bedarf hier: https://elabnet.atlassian.net/wiki/x/rYDwGQ

Beste Geüße
Jens
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

Ersteller
Bjoern
Reactions:
Beiträge: 39
Registriert: So Apr 03, 2022 9:21 am
Wohnort: Niederösterreich
Hat sich bedankt: 7 Mal
Danksagung erhalten: 21 Mal

#7

Beitrag von Bjoern »

Danke für eure Hilfe! Die 96 Werte gibt es vor 17Uhr - dann wird der nächste Tag mit veröffentlicht.
Da ich ja nur volle Stunden brauche - reichen mir ja 24 Werte kurz nach 17h... somit überschaubar :-)
DateTime geht nicht - da kommt immer nur 2023 raus. Mit String der ganze Teil. Auch ok. Den Rest muss die Logik machen.
Die Zeit ist halt für einen x-Check wichtig... nicht dass es mal hängen bleibt... und der nächste Tag falsch berechnet - wann es am "billigsten" ist, Strom zu tanken.
TWS 3500 L ID: 706, KNX, Modbus TCP, VPN geschlossen, Reboot nach Rücksprache

MrWilson
Reactions:
Beiträge: 284
Registriert: Do Dez 27, 2018 2:19 pm
Wohnort: Borgsdorf
Hat sich bedankt: 46 Mal
Danksagung erhalten: 169 Mal

#8

Beitrag von MrWilson »

Nur kurz, bin noch unterwegs, aber sind die Werte den Arrays fest zugeordnet, also [0] z.B. immer 00:00 Uhr und [1] 00:15 Uhr? Dann kann man darauf auch aufbauen.
TWS 2500 ID: 341 + PBM ID: 463, VPN offen, Reboot nur nach Absprache

Ersteller
Bjoern
Reactions:
Beiträge: 39
Registriert: So Apr 03, 2022 9:21 am
Wohnort: Niederösterreich
Hat sich bedankt: 7 Mal
Danksagung erhalten: 21 Mal

#9

Beitrag von Bjoern »

Ja, das Muster ist immer fix.
[0] = 00:00 von heute
[1] = 00:15 von heute
...
[96] = 00:00 von morgen
Ab kurz nach 17Uhr gibt es auch die Daten vom folge Tag - sprich Array 96,97,98... etc. Vor 17Uhr ist bei [95] (23:45) Schluss.
Habe schon geschaut wie andere Stromanbieter das darstellen - sie sind hier alle sehr ähnlich.
Die Daten ändern sich auch nicht mehr untertags sprich wenn man um 17:00 die Daten 95-191 abruft - hat man immer den nächsten Tag - und müsste die nur noch wegspeichern.
TWS 3500 L ID: 706, KNX, Modbus TCP, VPN geschlossen, Reboot nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3903
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1264 Mal
Danksagung erhalten: 2213 Mal

#10

Beitrag von Robert_Mini »

Hy Björn!

Sag mal was du grob im Sinn hast.
Deine Kommentare („wegspeichern“) kommen stark aus dem Denken in Hochsprachen.

Du musst für Logiken in event-basierten Systemen wie KNX event-bezogen denken. Können wir anhand von Beispielen gerne diskutieren.

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „HTTP-API, REST & Web-Abfragen“