[DISKUSSION] [V3.0] HTTP-API Webabfragen Sammlung

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
KNXMane
Reactions:
Beiträge: 73
Registriert: Mo Mai 06, 2019 2:58 pm
Hat sich bedankt: 3 Mal
Danksagung erhalten: 14 Mal

[V3.0] HTTP-API Webabfragen Sammlung

#1

Beitrag von KNXMane »

Hallo Zusammen

Ich finde das Thema HTTP-API Webabfragen in der V3.0 interessant und mich würde mal interessieren, was es da so alles interessantes gibt. Ich habe bei mir schon mal openweather eingebunden. Vielleicht könnten wir hier ja ein Sammelthread mit Beschreibung für interessate Webabfragen starten.
Mich würde zum Beispiel interessieren, wie und ob ich Daten von meiner Junkers Gastherme, die über das MBLan am Netz hängt, abfragen kann.

Markus
Zuletzt geändert von StefanW am Mo Okt 18, 2021 11:58 am, insgesamt 1-mal geändert.
TWS 350, ID497, VPN offen, Reboot erlaubt

FabKNX
Reactions:
Beiträge: 412
Registriert: Mi Aug 15, 2018 7:50 pm
Wohnort: LK Heilbronn
Hat sich bedankt: 548 Mal
Danksagung erhalten: 214 Mal

#2

Beitrag von FabKNX »

ich habe damit gerade die

Daten von meinem Fronius Wechselrichter eingesammelt.

/solar_api/v1/GetPowerFlowRealtimeData.fcgi/

Bild
Zuletzt geändert von StefanW am Mo Okt 18, 2021 4:50 pm, insgesamt 2-mal geändert.
VG Fabian
TW2500
timberwolf138, VPN offen, Reboot jederzeit
follow me on Instagram: https://www.instagram.com/meinsommer_diy/

Dragonos2000
Reactions:
Beiträge: 1944
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 433 Mal
Danksagung erhalten: 818 Mal

#3

Beitrag von Dragonos2000 »

Hallo zusammen

Wetterdienst YR.no


Bild
Zuletzt geändert von StefanW am Mo Okt 18, 2021 4:49 pm, insgesamt 1-mal geändert.
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit

Dragonos2000
Reactions:
Beiträge: 1944
Registriert: So Aug 12, 2018 1:38 pm
Wohnort: Karlsruher Raum
Hat sich bedankt: 433 Mal
Danksagung erhalten: 818 Mal

#4

Beitrag von Dragonos2000 »

Hallo zusammen,

Wetterdienst Weatherbit

weatherbit2.JPG
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von StefanW am Mo Okt 18, 2021 4:49 pm, insgesamt 1-mal geändert.
Lg
Jochen
____________________________________________________________
TW 2600 #188
VPN offen, Zugriff jederzeit, Experimente jederzeit, Reboot jederzeit

zitterfritz
Reactions:
Beiträge: 61
Registriert: Mi Dez 19, 2018 8:23 pm
Hat sich bedankt: 44 Mal
Danksagung erhalten: 30 Mal

#5

Beitrag von zitterfritz »

Moinsen,

hat schon jemand die Anbindung an Netatmo hinbekommen?

LG
Heiko
TWS 960Q ID:230, VPN offen, Reboot erlaubt

Smarty
Reactions:
Beiträge: 14
Registriert: So Apr 28, 2019 3:51 pm
Wohnort: München
Danksagung erhalten: 14 Mal

#6

Beitrag von Smarty »

Hallo zusammen,

Hier sieht man eine Abfrage für die API von sonnen:

status_sonnenbatterie10.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von StefanW am Mo Okt 18, 2021 4:48 pm, insgesamt 1-mal geändert.
TWS 950Q ID:347, VPN auf Anforderung, Reboot nach Rückfrage.

StefanW
Elaborated Networks
Reactions:
Beiträge: 7345
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Grafing
Hat sich bedankt: 3638 Mal
Danksagung erhalten: 5086 Mal
Kontaktdaten:

#7

Beitrag von StefanW »

Hallo zusammen,

danke für den Thread und die tollen Beispiele.

Weil das irgendwann mal viele werden, wäre es toll, wenn man das, um was es geht, ein wenig hervorhebt.

Ich habe mir erlaubt, das bei den obigen Threads zu machen und würde mir wünschen, dass ihr das entsprechend ebenso ausführt (Fett und Groß mit Size 150).

Merci
Zuletzt geändert von StefanW am Mo Okt 18, 2021 4:51 pm, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Bitte immer zuerst im WIKI / Handbuch lesen. Support nur über dieses Forum. Keine PN.
Link zu Impressum und Datenschutzerklärung oben

Hiele
Reactions:
Beiträge: 182
Registriert: Mo Jan 21, 2019 8:15 pm
Wohnort: Stahnsdorf
Hat sich bedankt: 173 Mal
Danksagung erhalten: 141 Mal

#8

Beitrag von Hiele »

HERE Routing und Verkehrsdaten:

Kurz vorab zu Erklärung
Es wird ein Developer Konto bei here.com benötigt (kostenfrei bis 250k Aufrufe/Monat) Ich schaffe so im Schnitt, da ich die Verkehrsdaten nur zwischen 7:30 – 9:00 Uhr alle 5 min hole, auf nicht einmal 2% :dance: -> Bebilderte Anleitung unter https://github.com/BuZZy1337/ioBroker. ... /README.md

Achtet bitte darauf, wenn ihr Screenshots bei Fragen zu diesem Thema von eurem TWS hier postet, dass euer privater API Key in der URL ist und vorher unkenntlich zu machen ist!

Alles wichtige zu dieser Abfrage findet ihr (wenn ihr dann bei HERE angemeldet seid) unter: https://developer.here.com/documentatio ... s/via.html

Natürlich könnt ihr hier x verschiedene Arten der http Abfragen euch bauen. Aber jetzt erstmal was ich nutze.
1. Ich lasse mir meine Route von zu Hause berechnen
2. Diese mit und ohne Verkehrsdaten
3. 2 weitere Alternativen mit Angabe über welche Hauptwege (Autobahn, Landstr. etc.)
4. Angabe über Distanz, Dauer mit Verkehr und ohne (Basetime)

Daraus kann ich schnell sehen, bzw. errechnen, welchen Weg ich nehmen sollte und wieviel Verzögerungen gerade anstehen.
Beispiel: 31km über Autobahn A100 & A115 31 Min. üblich 28 Min. ODER 17km über L77 und B1 bzw. 19km Goerzallee & A103 alles mit Zeitangaben. Da ich die Strecken kenne, kann ich mit einem Blick morgens schon sehen wie ich am besten ins Büro komme und ob mal wieder Schulanfang oder Ferien sind ;)

So nun zum technischen:
1. Über Subsysteme legst du ein neues an (wenn nicht vorhanden). Ich habe meins „HTTP-API Interface extern“ genannt.
2. Über den Ressourcen Manager wechsle ich ggf. in das passende Subsystem im Reiter oben.
3. Dort füge ich einen neuen http-API Server hinzu mit folgenden Daten:

Bezeichnung: HERE (oder wie ihr wollt)
https://route.ls.hereapi.com
Autorisierung: KEINE <- Wird über den API Key per GET erledigt
Server Zertifikat: Kein Haken


4. Neue Ressource hinzufügen:
a) Bezeichung: HERE Route (ober was euch passt)
b) Ressource URI: /routing/7.2/calculateroute.json?apiKey=<HIER EUREN APIKEY>&waypoint0=geo!<GEODATEN START>&waypoint1=geo!<GEODATEN ZIEL>&mode=fastest;car;traffic:enabled&alternatives=2&routeattributes=labels
c) GET
d) Trigger: erstmal auf 10 Minuten (Rest nachher)

<HIER EUREN APIKEY> = Ersetzt diesen Teil (also auch < > die Klammer müssen weg sein) mit eurem API Key von der HERE Seite.

<GEODATEN START> & <GEODATEN ZIEL> = Ersetzt diese mit euren Daten wie folgt:

Googlemaps aufrufen und Adresse eingeben. Dann in der Karte rechte Maustaste auf den roten Marker (Howto: https://de.wikihow.com/Marker-in-Google-Maps-setzen) und mit links auf die Zahlen (Geodaten 1. Zeile tippen -> werden dann in die Zwischenablage gepackt.
Diese dann im Link einfügen und das eine Leerzeichen nach dem komma zwischen den Zahlen löschen:

z.B. 52.50350415248919, 13.279196331721325 -> 52.50350415248919,13.279196331721325

Beispiel:
/routing/7.2/calculateroute.json?apiKey=LKnCB3245iuj1djz6t6SHp9iHS1QMD3er2oKd_asQTl8&waypoint0=geo!48.02643308223957,12.038227620825444&waypoint1=geo!52.50350415248919,13.279196331721325&mode=fastest;car;traffic:enabled&alternatives=2&routeattributes=labels

Dann sollte auch schon die JSON Daten bei euch aufschlagen.


Folgende Daten ziehe ich mir aus dem JSON – Feld Selektor:

1. Distanz: response.route[0].summary.distance (Meter / INT)
2. Zeit mit Verkehr: response.route[0].summary.trafficTime (Sekunden / INT)
3. Zeit ohne Verkehr: response.route[0].summary.baseTime (Sekunden / INT)
4. Routen Label A: response.route[0].label[0] (Text / Straßenangabe über…)
5. Routen Label B: response.route[0].label[1]


Wenn ihr jetzt wie ich, zwei alternative Routen berechnen lasst, müsst ihr die 0 von route[0] durch 1 bzw. 2 etc. ersetzten um die Daten der anderen Routen zu bekommen.

Über eine Logik könnt ihr jetzt die Sekunden in Minuten umrechnen und ggf. nur bei starker Abweichung, also üblich sind es 30 Min. aber HERE ermittelt 45 Minuten, entsprechende Infos ausgeben lassen, das man früher losfahren sollte. Oder die Daten mit km, Zeit & Steckeninfo Angaben auf die VISU packen.
Ihr findet auf der DEV Seite von HERE diverse Möglichkeiten, alle habe ich nicht durch, nur diese war mir pers. die passende.

Es geht auch ohne Alternativen:
https://router.hereapi.com/v8/routes?tr ... oKd_asQTl8

Selektor für Fahrzeitmit Verkehr: routes[0].sections[0].summary.duration
Selektor für Distanz: routes[0].sections[0].summary.length

Fazit: Ich bekomme alle meine Daten die ich benötige, muss aber zur Zeit zu oft triggern (alle 5 Min.) und habe damit unnötig Traffic und CPU Last. Wenn ich es raushabe, wie ich den Trigger nur bei Auslösung nur durch Objektänderung hinbekomme, würde ich zu den gewünschten Zeiten einfach ein dafür passendes Objekt triggern. Also z.B. zwischen 7-9 Uhr.

Bild

Braucht ihr noch Bilder oder habt Fragen, einfach melden :-)

VG Hiele
Zuletzt geändert von Hiele am Mo Okt 18, 2021 9:58 pm, insgesamt 2-mal geändert.
"TWS 2600 ID:228, (VPN offen), Reboot erlaubt, DEV"

StefanW
Elaborated Networks
Reactions:
Beiträge: 7345
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Grafing
Hat sich bedankt: 3638 Mal
Danksagung erhalten: 5086 Mal
Kontaktdaten:

#9

Beitrag von StefanW »

Hallo Hiele,

Wow, sehr schöne Anwendung und toll beschrieben.

==> An alle: Davon bitte mehr. Ein Forum lebt davon, dass ALLE beitragen


Kurze Rückmeldung:
Hiele hat geschrieben: Mo Okt 18, 2021 9:54 pmAchtet bitte darauf, wenn ihr Screenshots bei Fragen zu diesem Thema von eurem TWS hier postet, dass euer privater API Key in der URL ist und vorher unkenntlich zu machen ist!
Richtig. Wobei man den API-Key nur dann sehen kann, wenn man den Datenmonitor ausklappt, ansonsten wird nur der Platzhalter angezeigt.


Hiele hat geschrieben: Mo Okt 18, 2021 9:54 pmWenn ich es raushabe, wie ich den Trigger nur bei Auslösung nur durch Objektänderung hinbekomme, würde ich zu den gewünschten Zeiten einfach ein dafür passendes Objekt triggern. Also z.B. zwischen 7-9 Uhr.
Das ist ganz einfach:

1. Den zeitlichen Auslöser bei der Ressource abschalten

2. Ein Abfrageobjekt einrichten und dort den Auslöser für die ganze Transaktionsgruppe einstellen

Habe eben dem Video sehr detaillierte Kapitelmarkierungen hinzugefügt. Das gesuchte wird unter https://youtu.be/S8_F7WD2aQM?t=2930 beschrieben.


lg

Stefan
Zuletzt geändert von StefanW am Di Okt 19, 2021 8:33 am, insgesamt 1-mal geändert.
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART der Elaborated Networks GmbH
Bitte immer zuerst im WIKI / Handbuch lesen. Support nur über dieses Forum. Keine PN.
Link zu Impressum und Datenschutzerklärung oben

adimaster
Reactions:
Beiträge: 337
Registriert: So Apr 14, 2019 11:12 am
Hat sich bedankt: 177 Mal
Danksagung erhalten: 166 Mal

#10

Beitrag von adimaster »

Hi,

ein weiteres Bsp.
Tankerkönig - Sprit-Preise abrufen
Aufrufe/min: nicht angegeben

API-Beschreibung
Tankerkönig

Bsp.-Anwendungen
  • Sprit-Preise der Wunschtankstelle ermitteln
  • "Status" Wunschtankstelle feststellen (offen/zu)
Vorgehensweise beim Anbieter
  • API-Key beantragen (unter obigen Link)
  • Wunschtankstellen mittels "API-Methode 1 - Umkreissuche" nach dem auf der Homepage beschriebenen Bsp. identifizieren
"ausführliche" Vorgehensweise auf dem Timberwolf
► Text zeigen
Ausblick
z. B. Ermittlung der Tagestiefpreise mittels Logik
(sollte halbwegs einfach sein, wenn immer mit dem niedrigsten Wert verglichen und mit einem Trigger zu einer bestimmten Tageszeit der Wert in eine Zeitserie geschrieben wird ... falls jmd. bereits eine Logik angelegt hat, die solch eine ähnliche Funktion erfüllt, bitte gerne anhängen :D )

Grüße
Adi
Zuletzt geändert von adimaster am Mi Jan 12, 2022 9:50 pm, insgesamt 2-mal geändert.
Grüße, Adi
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
Antworten

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