NEU! UPGRADE IP 10 verfügbar!
Optimierte Darstellung von VISU Editor und VISU Client - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/8HzePCm3

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur IP 10
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[DISKUSSION] Fahrtenbuch im TWS implementieren

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
Antworten

Ersteller
alexbeer
Reactions:
Beiträge: 394
Registriert: Mi Sep 12, 2018 1:11 am
Wohnort: NRW
Hat sich bedankt: 212 Mal
Danksagung erhalten: 251 Mal

Fahrtenbuch im TWS implementieren

#1

Beitrag von alexbeer »

Hallo,

auf der Suche nach UseCases für die neue HTTP - API ist mir ein Fahrtenbuch in den Sinn gekommen.
Der Hersteller meines PKW bietet einen solchen "Mehrwert-Service" im Abo-Modell zwar auch an, möchte das aber gerne auf dem TWS realisieren!

Idee ist:
  • Per Logik die HTTP-API alle x Minuten aufrufen - Optional hier ein "Tiefschlaf" des Wagens berücksichtigen.
  • aus dem JSON Response die aktuellen Geo-Koordinaten extrahieren - wird in zwei Parametern: Lat und Long ausgegeben.
  • Diese beiden Werte zu einer Geokoordinate "joinen" - als KNX-Datentyp wäre das 255.001 - den kennt der TWS m.E. nicht. KNX DatenTyp bräuchte ich auch nicht zwangsläufig -
  • Die Geokoordinaten in eine TimeSeries schreiben, laut https://www.bjoerns-techblog.de/2017/08 ... alisieren/ wird hier ein geohash benötigt
  • Visualisierung in Grafana, zB mit dem Plugin TrackMap.
Hat schon jemand etwas ähnliches umgesetzt? Wie würdet ihr den Geohash berechnen? ( Vgl.https://en.m.wikipedia.org/wiki/Geohash)
Ich denke, dass dies am einfachsten über einen API- Aufruf (zB
http://geohash.world/) zu erledigen ist.
VG Alex
Timberwolf122 (TWS 2500) // Wartungs-VPN: offen // Reboot: jederzeit
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1194
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 236 Mal
Danksagung erhalten: 857 Mal
Kontaktdaten:

#2

Beitrag von Chris M. »

Ohne den Elan hier schmälern zu wollen: ein elektronisches Fahrtenbuch hat einige Randbedingungen die es technisch erfüllen muss, wenn man es nicht nur für sich selbst sondern auch für das Finanzamt führt. Dessen sollte man sich bewusst sein, damit es später kein böses Erwachen gibt.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Ersteller
alexbeer
Reactions:
Beiträge: 394
Registriert: Mi Sep 12, 2018 1:11 am
Wohnort: NRW
Hat sich bedankt: 212 Mal
Danksagung erhalten: 251 Mal

#3

Beitrag von alexbeer »

Hi Chris, danke für den Hinweis. Der Begriff "Fahrtenbuch" ist hier natürlich bewusst gewählt, jedoch kann er leicht missverstanden werden. Ich plane hier KEINE für das Finanzamt valide Dokumentation zu erstellen. Fahrten-Tracking wäre vermutlich passender...
VG Alex
Timberwolf122 (TWS 2500) // Wartungs-VPN: offen // Reboot: jederzeit

Marinux
Reactions:
Beiträge: 125
Registriert: Fr Apr 12, 2019 3:04 pm
Hat sich bedankt: 9 Mal
Danksagung erhalten: 51 Mal

#4

Beitrag von Marinux »

Hi,
alexbeer hat geschrieben: Mo Okt 25, 2021 10:16 pm
  • Per Logik die HTTP-API alle x Minuten aufrufen - Optional hier ein "Tiefschlaf" des Wagens berücksichtigen.
Ich nehme an hier meinst Du den Abruf von einer HTTP-API, die der Fahrzeughersteller bereitstellt? Oder von wo willst Du Geokoordinaten beziehen?
alexbeer hat geschrieben: Mo Okt 25, 2021 10:16 pm
Hi,

wenn Du den Blogeintrag bins zum Ende liest, dann wirst Du festellen, dass kein Geohash benötigt wird.
Gruß Markus

TWS 960Q #360, VPN geschlossen, Reboot verboten

Ersteller
alexbeer
Reactions:
Beiträge: 394
Registriert: Mi Sep 12, 2018 1:11 am
Wohnort: NRW
Hat sich bedankt: 212 Mal
Danksagung erhalten: 251 Mal

#5

Beitrag von alexbeer »

Hi Markus,
vielen Dank für deinen Input.

bei dem Hersteller meines Fahrzeugs ist es so, dass er für Endverbraucher leider keine öffentlich API bereitstellt - allerdings eine App.
Nun ja, diese App kommuniziert per HTTP-API - die Client-ID ist fest in der App verdrahtet.
Aus meiner Sicht schon "Fehler by design".

Das der Geohash für das Plugin nicht benötigt wird, habe ich auch gelesen.
Ich möchte jedoch die Geokoordinaten samt Zeitstempel über TWS-Bordmittel in eine TimeSeries in die TWS-InfluxDB schreiben.
Wenn ich nicht einen Geohash generiere, sondern Lat / Long separat verarbeite, ist mir nicht klar, wie ich beide Werte in eine TimeSeries schreiben lassen kann. Daher fand ich den Ansatz über den Geohash nicht abwegig.
Wie kann ich denn per TWS zwei Werte in eine TimeSeries zum gleichen Zeitstempel schreiben? Dann könnte ich mir die Konvertierung sparen.
VG Alex
Timberwolf122 (TWS 2500) // Wartungs-VPN: offen // Reboot: jederzeit

Ersteller
alexbeer
Reactions:
Beiträge: 394
Registriert: Mi Sep 12, 2018 1:11 am
Wohnort: NRW
Hat sich bedankt: 212 Mal
Danksagung erhalten: 251 Mal

#6

Beitrag von alexbeer »

Hallo zusammen,
ich habe mein Fahrtenbuch / Tracking im Timberwolf nun zusammen.
Auf der Karte sieht das wie folgt aus:
Bild

Realisiert habe ich das wie folgt.
  • Per Nodered sammle ich über die API des Herstellers diverse Parameter vom Auto ein und sende diese per MQTT an meinen TWS. Ich habe hier NodeRed gewählt, da der Hersteller meines Fahrzeugs für Endkunden keine öffentliche API bereitstellt - ein fertiger Node die Abfrage aber dennoch ermöglicht. Dies über die neue http-API nachzubauen war mir zu aufwändig - aber bei besser verfügbaren APIs sicherlich möglich.
  • Im TWS-Objekt-Manager sind die MQTT Objekte mit dem letzten Wert übersichtlich zu sehen: Bild
  • Über den "Verknüpfungsmanager" im "Objekt-Manager" habe ich die eingehenden MQTT-Objekte einfach mit einer neuen TimeSeries verknüpft Bild
  • Im Zeitserien-Manager sind nun die laufend eingehenden Werte via MQTT einzusehen und optional in Grafana darstellbar
    Bild
  • Zur Darstellung des Trackings in Grafana habe ich das Plugin "TrackMap Panel for Grafana" von pr0ps installiert.
    INFOzusätzliche Grafana Plugins können nur installiert werden, wenn man mit dem TWS-Admin-User angemeldet ist und aus der TWS-Oberfläche Grafana aufruft. Andernfalls ist man u.U. mit einem eigenen Grafana-User eingeloggt, der keine Installations-Berechtigung für Plugins besitzt. Stefan hat das in viewtopic.php?f=26&t=2987&p=34354&hilit=plugin#p34357 nochmal beschrieben. M.E. wäre dies einen Hinweis im Wiki oder in der Inline-Hilfe im TWS wert, da ich da erst drauf gekommen bin, nachdem ich den verlinkten Post gelesen hatte
  • In Grafana sieht es dann wie folgt aus: Bild
    Hierzu nur in einem Panel zwei Queries auf die beiden Timeseries mit den jeweiligen Bestandteilen der Geo-Koordinaten einbauen und per alias die Felder "latitude" und "longitude" benennen. Den Rest übernimmt das Plugin.
Es ist echt fantastisch zu sehen, was mit so wenigen Klicks im TWS für Ergebnisse zu erzielen sind.
Die aktualisierten Manager gefallen mir wirklich sehr gut - sehr übersichtlich, intuitiv zu bedienen - selbst auf Smartphone Displays noch gut zu nutzen.

Funktional gefällt mir der Verknüpfungs-Manager auch gut - nur dieses mint-grün passt so gar nicht in meine subjektive Vorstellung von Ästhetik.

Ich habe mir vorgenommen, mehr Zeit mit dem TWS zu verbringen, mal schauen, wie mir das gelingt.
VG Alex
Timberwolf122 (TWS 2500) // Wartungs-VPN: offen // Reboot: jederzeit
Benutzeravatar

cybersmart
Reactions:
Beiträge: 232
Registriert: Do Jan 20, 2022 6:15 pm
Wohnort: Germering
Hat sich bedankt: 129 Mal
Danksagung erhalten: 150 Mal
Kontaktdaten:

#7

Beitrag von cybersmart »

Sehr cool, ich habe nun auch die Daten meines MG5 alle 30 Sekunden in der Influx wenn das Fahrzeug fährt. Wenn es steht und nicht lädt wird nur einmal am Tag ein Datensatz geholt, da das Auto aufgeweckt wird, was die Fahrzeugbatterie (12V Batterie) belastet.
Mit Grafana Dashboards fange ich gerade erst an, gleich ein Tracking mit Karte zu erstellen hatte ich mir schwer vorgestellt, aber so wie Du das beschreibst ist das letztlich echt ne recht einfache Sache. Ich werde berichten sobald sich das umgesetzt habe.

Danke für den Beitrag.
VG, Uwe

timberwolf765 VPN: closed Reboot: no
Benutzeravatar

cybersmart
Reactions:
Beiträge: 232
Registriert: Do Jan 20, 2022 6:15 pm
Wohnort: Germering
Hat sich bedankt: 129 Mal
Danksagung erhalten: 150 Mal
Kontaktdaten:

#8

Beitrag von cybersmart »

So, bei mir zeigt er aktuell keinen Track an, habe gerade mit Deinen Screenshots verglichen und gesehen, dass Du die Werte als String und nicht als Float in die Datenbank schreibst. Mal sehen ob das was ändert bei mir.

Nun geht es offenbar doch mit Float, keine Ahnung was los war, habe die Map nochmal neu als Panel angelegt!
Zuletzt geändert von cybersmart am So Aug 06, 2023 8:06 pm, insgesamt 3-mal geändert.
VG, Uwe

timberwolf765 VPN: closed Reboot: no

Ersteller
alexbeer
Reactions:
Beiträge: 394
Registriert: Mi Sep 12, 2018 1:11 am
Wohnort: NRW
Hat sich bedankt: 212 Mal
Danksagung erhalten: 251 Mal

#9

Beitrag von alexbeer »

Ich glaube ich hatte es auch erst mit Float versucht und dann später auf String umgestellt. Kann mich aber leider nicht mehr genau erinnern.
Generell funktioniert das bei mir seit 1,5 Jahren tadellos. Lediglich die API des Herstellers die ich in NodeRed nutze wurde zwei Mal verändert. Da musste ich das ganze etwas (in NodeRed) anpassen. Der TWS ist einfach rocksolid - dort läuft das einwandfrei.
VG Alex
Timberwolf122 (TWS 2500) // Wartungs-VPN: offen // Reboot: jederzeit
Antworten

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