NEWS
PAJ GPS mit Node-Red abfragen
-
-
@negalein Wieder hervorragend - so diese Token musst Du also wie gesagt immer in den Authorization-Header mitgeben.
Nun willst Du ja Daten abrufen.
Ist denn diese ID immer fix oder musst Du diese durch weitere Aufrufe ermitteln?
Hiermit kannst Du ja alle IDs abfragen?
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Ist denn diese ID immer fix oder musst Du diese durch weitere Aufrufe ermitteln?
ist bei verschiedenen Tokens immer gleich geblieben.
-
@negalein Gut ansonsten kannst Du die ja speichern und dann weiterverarbeiten. Dann rufst Du jetzt die Daten über eine weitere HTTP-Request Node ab und gibst nun aber den Authorisation Header mit.
Also nehmen ich mal als ID: 1234.
Ich gehe also mal von diesem GET Aufruf aus.
Als Ergebnis kommt dann so was raus:
{ "0": { "id": 2, "iddevice": 2, "imei": null, "name": null, "iconname": "paj_iconset_auto", "cmd": "P001", "dateunix": 1583531519, "datum": null, "uhrzeit": null, "lat": 2.2, "lat_symbol": null, "lng": 2.2, "lng_symbol": null, "speed": 79, "direction": 269, "mcc": null, "mnc": null, "ta": null, "num": null, "lac": null, "cid": null, "rxlev": null, "battery": 0, "alarmcode": null, "datastatus": null, "acc": null, "door": null, "obd": 0, "dtc": 0, "dtc_code": null, "rohdaten": "imei:2,001,2,,F,2.000,A,2.2,N,2.0009,E,42.52,268.69,,0,,0.00%,,;" }, "success": { "id": 1, "iddevice": 1, "imei": null, "name": null, "iconname": "paj_iconset_auto", "cmd": "P001", "dateunix": 1583531491, "datum": null, "uhrzeit": null, "lat": 1.1, "lat_symbol": null, "lng": 1.1, "lng_symbol": null, "speed": 88, "direction": 305, "mcc": null, "mnc": null, "ta": null, "num": null, "lac": null, "cid": null, "rxlev": null, "battery": 0, "alarmcode": null, "datastatus": null, "acc": null, "door": null, "obd": 0, "dtc": 0, "dtc_code": null, "rohdaten": "imei:1,001,1,,F,215131.000,A,1.1,N,1.1,E,47.42,304.95,,0,,0.00%,,;" } }
Also hinter die ChangeNode nun einen HTTP-Request Node mit der URL.
Das Ergebnis lassen wir uns dann in einer Debug Node Trackdata ausgeben:
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Das Ergebnis lassen wir uns dann in einer Debug Node Trackdata ausgeben:
da kommt ein
Unauthenticated
-
@negalein Ja - Du hast Dir ja einen String ausgeben lassen und nicht das Token mitgegeben:
Die HTTP Request Node wird also wie folgt konfiguriert:
- Methode GET
- URL eingeben
- Keinen STRING sonder ein JSON Objekt ausgeben lassen
- Einen Authorisation Header mitgeben, der in der Nachrichteneigenschaft auth ist.
Deswegen haben wir das GANZE ja gemacht, dass wir das Bearer Token mitgeben können.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Die HTTP Request Node wird also wie folgt konfiguriert:
Ah, das mit der Kopfzeile wusste ich noch nicht.
Wieder was dazugelernt. -
@negalein Na ja Du siehst es wird alles gut - und ist doch auch spannend - jedenfalls funktioniert es jetzt. Nun ist die Frage, willst du alles oder nur bestimmte Daten in Datenpunkten haben?
Wenn Du nur einzelne Datenpunkte haben willst dann kannst Du Dir die Pfade aus den Objekten kopieren in eine payload schreiben und dann mit iobroker-out Nodes in einzelne Datenpunkte - Du kannst auch meinen Flow nehmen, der Dir automatisch jedes Objekt in einzelne Datenpunkte zerlegt.
Was willst Du?
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
und ist doch auch spannend
Ja, macht echt Spaß. Ist komplettes Neuland. Nix mehr nur copy/paste.
willst du alles oder nur bestimmte Daten
Von dieser Abfrage wären es:
lat
lng
dateunix
batteryDu kannst auch meinen Flow nehmen, der Dir automatisch jedes Objekt in einzelne Datenpunkte zerlegt.
hört sich cool an
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
Ja, macht echt Spaß. Ist komplettes Neuland. Nix mehr nur copy/paste.
Na nur wenn Du langsam verstehst, was das für ein cooles Tool ist - dann wirst Du Dein Blocklies bald in die Tonne treten.
Wenn Du nur diese 4 Datenbrauchst, dann brauchst Du den Flow nicht, aber wenn Du mal komplexere Objekte hast, dann hier nochmal der Link zu dem Subflow, der Dir alle Objekte etc. in einzelne Datenpunkte zerlegt:
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegenWenn Du nur diese 4 Datenpunkte brauchst, dann nimm einfach 4 Change Nodes an das Ergebnis.
und setze die payload auf die 4 Pfade.
Du kopierst also den Pfad der Eigenschaft die Du in einen Datenpunkt schreiben willst und setzt die payload auf die entsprechende Nachrichteneigenschaft.
Generell prüfe auch noch mal in der Konfiguration Deines NodeRed Adapters, dass Du diese beide Optionen angehakt hast:
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Du kopierst also den Pfad der Eigenschaft die Du in einen Datenpunkt schreiben willst und setzt die payload auf die entsprechende Nachrichteneigenschaft.
Ist das passend, wenn er den Pfad so kopiert (die eckige Klammer)?
payload.success[0].battery
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Generell prüfe auch noch mal in der Konfiguration Deines NodeRed Adapters, dass Du diese beide Optionen angehakt hast:
sind aktiv
-
@negalein Ja sollte gehen. Du kannst ja ein Debug Node hinten zur Kontrolle dran machen.
Ansonsten kannst du auch immer die eckigen Klammern durch Punkte ersetzen:
also:
payload.success.0.battery
Zeig auch mal was aus Deiner dateunix Change Node rauskommt.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Zeig auch mal was aus Deiner dateunix Change Node rauskommt.
1720297808
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Zeig auch mal was aus Deiner dateunix Change Node rauskommt.
1720297808
Möchtest Du das gleich in ein lesbares Datumsformat wandeln und wie soll es aussehen?
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Möchtest Du das gleich in ein lesbares Datumsformat wandeln und wie soll es aussehen?
Ja, das wäre super.
07.07.2024
23:00:00 -
@negalein sagte in PAJ GPS mit Node-Red abfragen:
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Möchtest Du das gleich in ein lesbares Datumsformat wandeln und wie soll es aussehen?
Ja, das wäre super.
07.07.2024
23:00:00Gut dann füge in die Change Node mit der Zeit - noch folgende Regel ein:
$moment(payload,'X').locale("de").tz('Europe/Berlin').format('DD.MM.YYYY HH:mm:ss')
Datentyp ist JSONATA
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
$moment(payload,'X').locale("de").tz('Europe/Berlin').format('DD.MM.YYYY HH:mm:ss')
geil
-
@negalein So an Deine ChangeNodes kannst Du nun noch einzelne iobroker-Out Nodes hängen, die die Werte in deinen iobroker schreiben, dann kannst du ggf. noch Units eingeben oder Du spezifizierst noch topics. Aber machen wir mal einzelne iobroker-Out Nodes.
Wenn Du die Datenpunkte nicht vorher angelegt hast, kann NodeRed sie auch für Dich anlegen.
- Wenn Du den Datenpunkt selbst angelegt hast:
Dann kannst Du das topic über die 3 Punkte auswählen.
Du schreibst mit ACK=true - weil Du unter 0_userdata.0 schreibst.
- Falls die Datenpunkte noch nicht angelegt sind, kannst Du das topic oben als Pfad anlegen
und kannst dann angeben, ob der Datenpunkt schreibgeschützt sein soll, kannst eine Einheit mitgeben etc.
Und dann kannst Du ja wieder Puzzeln, wenn Du NodeRed nicht weiter nutzen möchtest.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Falls die Datenpunkte noch nicht angelegt sind, kannst Du das topic oben als Pfad anlegen
gemacht
aber im ioB wird nichts erstellt