NEWS
PAJ GPS mit Node-Red abfragen
-
@negalein Na ist dass denn plötzlich success[5] und nicht mehr 0 - wie seht denn das Objekt aus.
Und Du willst doch prüfen, ob der Datentyp eine Zahl ist - also nicht ==, sondern "ist vom Typ " und dann vom Typ "number"
-
@mickym Also wenn Du das hast - am Besten kannst Du natürlich einmal das Objekt posten (in CodeTags), wenn ein Objekt da ist oder wenn nicht. Aber wie gesagt, Du musst ein Typprüfung auf number machen.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Na ist dass denn plötzlich success[5] und nicht mehr 0 - wie seht denn das Objekt aus.
Ja, beim 2. httpRequest ist es
payload.success[5].dateunix
.
Ah, hab ich übersehn, dass da mehr steht.
so schauts aus, wenn ich zB alle Speed Alerts nehme.
{"success":[{"id":180803681,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1722186881,"lat":48.4801559,"lng":13.4893332,"isread":1,"imei":null,"speed":56,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":180794125,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1722184536,"lat":48.4709358,"lng":13.532383,"isread":1,"imei":null,"speed":52,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":180269448,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1722017700,"lat":48.4809265,"lng":13.4890671,"isread":1,"imei":null,"speed":59,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":180125881,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1721993656,"lat":48.4613876,"lng":13.5360165,"isread":1,"imei":null,"speed":57,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":179922086,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1721931765,"lat":48.4804878,"lng":13.4893332,"isread":1,"imei":null,"speed":50,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":179802432,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1721911520,"lat":48.4616165,"lng":13.5359335,"isread":1,"imei":null,"speed":57,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":178551595,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1721572992,"lat":48.4611015,"lng":13.5360832,"isread":1,"imei":null,"speed":54,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":178351078,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1721496826,"lat":48.5024605,"lng":13.4803667,"isread":1,"imei":null,"speed":50,"speederlaubt":50,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":176065086,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1720886205,"lat":48.4818077,"lng":13.4579163,"isread":1,"imei":null,"speed":94,"speederlaubt":80,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":176048342,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1720882922,"lat":48.5098839,"lng":13.4779167,"isread":1,"imei":null,"speed":96,"speederlaubt":80,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":171856575,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1719768062,"lat":48.5028152,"lng":13.4802332,"isread":1,"imei":null,"speed":87,"speederlaubt":80,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null},{"id":171853651,"iddevice":1334450,"name":null,"icon":"icon-info","bezeichnung":"Geschwindigkeitsalarm","meldung":null,"meldungtyp":5,"dateunix":1719767310,"lat":48.5003777,"lng":13.5935497,"isread":1,"imei":null,"speed":87,"speederlaubt":80,"radiusin":0,"radiusout":0,"zuendon":0,"zuendoff":0,"email":null,"push":0,"suppressed":0,"deleted_at":null}],"number_of_records":12}
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
Ok das ist ein Array mit 12 Geschwindigkeitsalarmen
{ "success": [ { "id": 180803681, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1722186881, "lat": 48.4801559, "lng": 13.4893332, "isread": 1, "imei": null, "speed": 56, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 180794125, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1722184536, "lat": 48.4709358, "lng": 13.532383, "isread": 1, "imei": null, "speed": 52, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 180269448, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1722017700, "lat": 48.4809265, "lng": 13.4890671, "isread": 1, "imei": null, "speed": 59, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 180125881, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1721993656, "lat": 48.4613876, "lng": 13.5360165, "isread": 1, "imei": null, "speed": 57, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 179922086, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1721931765, "lat": 48.4804878, "lng": 13.4893332, "isread": 1, "imei": null, "speed": 50, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 179802432, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1721911520, "lat": 48.4616165, "lng": 13.5359335, "isread": 1, "imei": null, "speed": 57, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 178551595, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1721572992, "lat": 48.4611015, "lng": 13.5360832, "isread": 1, "imei": null, "speed": 54, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 178351078, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1721496826, "lat": 48.5024605, "lng": 13.4803667, "isread": 1, "imei": null, "speed": 50, "speederlaubt": 50, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 176065086, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1720886205, "lat": 48.4818077, "lng": 13.4579163, "isread": 1, "imei": null, "speed": 94, "speederlaubt": 80, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 176048342, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1720882922, "lat": 48.5098839, "lng": 13.4779167, "isread": 1, "imei": null, "speed": 96, "speederlaubt": 80, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 171856575, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1719768062, "lat": 48.5028152, "lng": 13.4802332, "isread": 1, "imei": null, "speed": 87, "speederlaubt": 80, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null }, { "id": 171853651, "iddevice": 1334450, "name": null, "icon": "icon-info", "bezeichnung": "Geschwindigkeitsalarm", "meldung": null, "meldungtyp": 5, "dateunix": 1719767310, "lat": 48.5003777, "lng": 13.5935497, "isread": 1, "imei": null, "speed": 87, "speederlaubt": 80, "radiusin": 0, "radiusout": 0, "zuendon": 0, "zuendoff": 0, "email": null, "push": 0, "suppressed": 0, "deleted_at": null } ], "number_of_records": 12 }
So Du kannst jetzt alle 12 Alarme - willst Du die nicht einzeln auswerten oder willst Du nicht alle Alarme haben?
Das ist also nicht 5 - sondern das sind 12 Einträge in einer Liste - wie Du siehst.
Das in 5 datgenpunkte zu pressen ist natürlich nicht möglich. Also es sind ja eigentlich 12 * 5 Punkte, wenn Du nur diese Daten haben willst.
Jetzt müsstest Du noch ein Objekt posten, wenn keine Alarme da sind, ist dann das Array einfach leer?
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
So Du kannst jetzt alle 12 Alarme - willst Du die nicht einzeln auswerten oder willst Du nicht alle Alarme haben?
Genau, das sind die
gelesenen/bestätigten
Alarme.Das ist der Request
https://connect.paj-gps.de/api/v1/notifications/1334450?alertType=5&isRead=1
Mit
https://connect.paj-gps.de/api/v1/notifications/1334450?alertType=5&isRead=0
bekomm ich dieungelesenen
.
Die möchte ich. Aber da kommt dann der Error, da die Dateunix nur bei Alarm übermittelt wird.Das ist also nicht 5 - sondern das sind 12 Einträge in einer Liste - wie Du siehst.
Das in 5 datgenpunkte zu pressen ist natürlich nicht möglich. Also es sind ja eigentlich 12 * 5 Punkte, wenn Du nur diese Daten haben willst.Jetzt müsstest Du noch ein Objekt posten, wenn keine Alarme da sind, ist dann das Array einfach leer?
Genau, da kommt nur
-
Für diese Zwecke empfehle ich Dir einfach meine Node zu nehmen, die alle Daten in einzelne Datenpunkte zerlegt.
-
@negalein Ja aber auch bei den ungelesenen - kann ja mehr als 1 Alarm kommen.
Nein das was Du gepostet hast - ist was aus der Node dateunix kommt. Mach ein Debug Node direkt hinter die http-request node, wenn keine ungelesenen Alarme kommen.
Ausserdem musst Du das Array mit mehreren Alarmen in einzelne Nachrichten zerlegen, das machst Du mit einer Split Node.
Ich zeig Dir das mal mit einem Flow anhand der Daten die Du gepostet hast.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
kann ja mehr als 1 Alarm kommen.
stimmt leider
Mach ein Debug Node direkt hinter die http-request node, wenn keine ungelesenen Alarme kommen.
{"success":[],"number_of_records":0}
Ich wollte damit eigentlich bewirken, wenn ein Alert kommt, ich in VIS eine Benachrichtigung aufploppen lasse.
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
{"success":[],"number_of_records":0}
Na das ist doch SUPER. Dann kannst Du doch einen Filter davor setzen, dass die Nachrichten nur durch kommen, wenn die Anzahl records größer 0 ist.
Also machst Du direkt hinter die HTTP-request Node eine switch Node, in der Du prüfst ob die number_of_records >0 ist. Ich gehe mal davon aus, dass Du eine payload gepostet hast.
So ich simuliere mal die Ausgabe aus der HTTP Request Node:
Oben einmal mit mehren Records.
Unten wenn keine Alarme vorhanden sind.
Als erstes werden wir also filtern, dass wir nur Records brauchen, wenn die number of records >0 sind.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Also machst Du direkt hinter die HTTP-request Node eine switch Node, in der Du prüfst ob die number_of_records >0 ist. Ich gehe mal davon aus, dass Du eine payload gepostet hast.
so?
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Also machst Du direkt hinter die HTTP-request Node eine switch Node, in der Du prüfst ob die number_of_records >0 ist. Ich gehe mal davon aus, dass Du eine payload gepostet hast.
so?
Ja aber die Node machen wir natürlich komplett hinter die request Nodes - weil wir GAR KEINE Nachrichten brauchen, wenn keine Records vorhanden sind.
Also trenn mal alle Kabel vor deinen Nodes auf. Ausserdem bekommst du ja eine Liste. Wenn du nur den letzten Record haben willst, dann musst du das success Array in einzelne Elemente aufspalten.
Dazu setzen wir die payload direkt auf das success Array.
So sieht das vorher aus
und nun legen wir das Success Array direkt auf die payload, dann siehst das so aus.So und wenn Dir das egal ist wieviele ungelesene Du hast, werden wir nun einfach alle durchlaufen - letztlich wird dann nur der letzte Record angezeigt.
Damit hast du nun alles in Einzelobjekten
Da kannst Du dann Deine ChangeNodes wieder dran machen - achte aber auf die PFade - da Du jetzt kein Array mehr hast.
Hier für Dich zum Import:
-
Also meine 3 Nodes direkt an die Http Request nodes und Dein Change nodes dann hinten dran machen und die Pfade anpassen.
Oder gibts ein Problem?
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Da kannst Du dann Deine ChangeNodes wieder dran machen - achte aber auf die PFade - da Du jetzt kein Array mehr hast.
So?
Oder meinst du alle Change so?
Welche Pfade meinst du?
-
-
@negalein So
und die Pfade in den Change Nodes anpassen. Nimm ein Objekt aus der Debug Node - und kopiere die Pfade. Es gibt kein success mehr.
Also in der dataunix Node ist der Pfad nun.
setze payload auf payload.dateunix usw.
-
-
@negalein Na Hauptsache Du verstehst, was WIR so tun.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Na Hauptsache Du verstehst, was WIR so tun.
Ja, hab mir auch schon ein paar Tuts reingezogen.
Aber einfacher ist es, das an einem echten Projekt zu lernen. -
@negalein sagte in PAJ GPS mit Node-Red abfragen:
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Na Hauptsache Du verstehst, was WIR so tun.
Ja, hab mir auch schon ein paar Tuts reingezogen.
Aber einfacher ist es, das an einem echten Projekt zu lernen.Klar - Du kannst ja mal beschreiben, was die Nodes so tun und warum was wie gemacht wird. Dann sehe ich ja, ob wir das gleiche Verständnis haben.
-
Guten Morgen
hab ein Problem
Seit gestern funktioniert der Flow nicht mehr.
16.11.2024, 11:29:18node: debug 1 0_userdata/0/PAJ/abfrage : msg.payload : boolean false 16.11.2024, 11:29:19node: Payload 0_userdata/0/PAJ/abfrage : msg.payload : Object { success: object } 16.11.2024, 11:29:20node: success 0_userdata/0/PAJ/abfrage : msg.payload : Object { success: object } 16.11.2024, 11:29:21node: auth 0_userdata/0/PAJ/abfrage : msg.auth : string[7] "Bearer " 16.11.2024, 11:29:22node: Trackdata 0_userdata/0/PAJ/abfrage : msg.payload : Object { error: "Unauthenticated" } 16.11.2024, 11:29:22node: dateunix msg : string[87] "Invalid JSONata expression: The left side of the "*" operator must evaluate to a number" 16.11.2024, 11:29:22node: lat 0_userdata/0/PAJ/abfrage : msg.payload : Object { error: "Unauthenticated" } 16.11.2024, 11:29:22node: Trackdata Alert 0_userdata/0/PAJ/abfrage : msg.payload : Object { error: "Unauthenticated" }
User und PW passen