NEWS
PAJ GPS mit Node-Red abfragen
-
hast du in node-red schon einen request durchführen können?
du kannst ja mal den folgenden flow mal als lernbasis verwenden.
einfach den inhalt kopieren und im burgermenü von node-red oben rechts auf import gehen und als neuen flow importieren.
danach auf Übernahme/deploy drücken (muss man bei jeder Änderung machen.Danach kannst du den kleinen Knopf rechts der ersten Inject node drücken. das startet diesen Flow manuell. Das Ergebnis der debug-node kannst du rechts unterhalb des Burger menüs durch druck auf das Käfersymbol dann sehen.
Der Flow ruft mal eine Beispiel API ab und ruft Beispielobjekte (irgendwelche Filmfiguren) ab.Eine node kann man dann durch Doppelklick auf einer node konfigurieren. Also bei dir dann bei http-request..
Die automatisierung mit iobroker machen wir dann später. erst muss die Kernfunktionalität funktionieren.
wenn du eine node konfigurierst und rechts neben dem käfersymbol auf das buch icon klickst, siehst du die hilfe für die ausgewählte node
[ { "id": "366db1589150b476", "type": "tab", "label": "Flow 3", "disabled": false, "info": "", "env": [] }, { "id": "e8c8fbba21beb8a4", "type": "http request", "z": "366db1589150b476", "name": "", "method": "GET", "ret": "obj", "paytoqs": "body", "url": "https://api.sampleapis.com/futurama/characters", "tls": "", "persist": false, "proxy": "", "insecureHTTPParser": false, "authType": "", "senderr": false, "headers": [], "x": 410, "y": 120, "wires": [ [ "8118e4eac98c67a6" ] ] }, { "id": "8118e4eac98c67a6", "type": "debug", "z": "366db1589150b476", "name": "debug", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 570, "y": 120, "wires": [] }, { "id": "f3570f56bea9a4eb", "type": "inject", "z": "366db1589150b476", "name": "", "props": [ { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "x": 250, "y": 120, "wires": [ [ "e8c8fbba21beb8a4" ] ] } ]
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
dann können wir ja mal einen Versuch wagen.
bin da, aber eventuell bald stromlos wegen Gewitter.
Die Doku der API ist ja hier: https://connect.paj-gps.de/api/documentation
daraus hab ich mir die obigen 2 Abfragen erstellt.
@oliverio sagte in PAJ GPS mit Node-Red abfragen:
Danach kannst du den kleinen Knopf rechts der ersten Inject node drücken
Ok, den
http request
hab ich so.
Da kommt dann nur
6.7.2024, 17:19:25node: e8c8fbba21beb8a4 msg : string[16] "JSON parse error" 6.7.2024, 17:19:25node: debug msg.payload : string[1009] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="robots" content="noindex,nofollow,noarchive" /> <title>An Error Occurred: Method Not Allowed</title> <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>❌</text></svg>" /> <style>body { background-color: #fff; color: #222; font: 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; margin: 0; } .container { margin: 30px; max-width: 600px; } h1 { color: #dc3545; font-size: 24px; } h2 { font-size: 18px; }</style> </head> <body> <div class="container"> <h1>Oops! An Error Occurred</h1> <h2>The server returned a "405 Method Not Allowed".</h2> <p> Something is broken. Please let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused. </p> </div> </body...
-
funktioniert
hab das übersehn.von GET auf POST
jetzt bekomm ich den Token
jetzt muss dann der Token noch für die Session gespeichert werden?
Oder kann ich gleich den nächsten http request anhängen?
Ok, so gehts nicht.
6.7.2024, 17:38:25node: debug msg.payload : string[27] "{"error":"Unauthenticated"}"
-
@negalein Also ich will mich grundsätzlich nicht parallel hier reindrängen, wenn @OliverIO das Projekt mit Dir durchführen will, dann kann ich mich auch auf die Beobachterrolle zurückziehen.
Grundsätzlich, um ggf. nachvollziehen zu können, müsstest Du Dein token ggf. mitteilen, was aber kein Problem sein sollte, weil das token ja nur begrenzte Gültigkeit hat. Dein Anmeldedaten musst Du immer für Dich behalten.
Vielleicht ein paar Grundlagen für Node-Red. Während in Blockly alles von oben nach unten verläuft, ist in NodeRed wie in einem Buch, sprich der Flow verläuft in der Regel von links nach rechts so wie Du liest.
Jede Node hat in der Regel - einen Eingang oder keinen Eingang (wenn sie selbst triggert oder wie bei der Inject Node eine Taste hat) und ein oder mehrere Ausgänge.
Über die Debug Node - kannst Du Dir entweder das ganze Nachrichtenobjekt ausgeben lassen oder nur eine Eigenschaft des Nachrichtenobjektes (standardmässig) ist das immer die Eigenschaft "payload" des Nachrichtenobjektes.
Wenn Du eine Node auswählst und rechts im Fenster auf das Buch klickst, dann bekommst Du in der Regel einen Hilfetext zu einer Node.
Wenn Du eine Inject Node rausziehst, ist diese immer mit einem timestamp als payload und einem leeren topic vorbelegt.
Wenn Du also direkt eine Debug Node anschließt, dann kannst Du nun entweder nur die payload, das topic als einzelne Eigenschaft ins Debugfenster oder das gesamte Nachrichtenobjekt.
Aber wie gesagt, wenn Du einfach so loslegen willst, kannst Du es gerne tun. Du weißt ja - viele Köche verderben den Brei.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
müsstest Du Dein token ggf. mitteilen
aktueller Token (per PN auch gerne die Zugangsdaten an dich und Oliver)
{ "success": { "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIzOCIsImp0aSI6IjA0NDYzYjMzZGQ0NGM2OTExOTcyOWYwNzk1MGJiNjg2MWZjZWVjMmQwYzNiY2E5ZjQ3Y2U1MjM1YWIzNGM1YWQwOTM3MTNkYmIzODg2MGE5IiwiaWF0IjoxNzIwMjgwOTMwLjIyODE0MiwibmJmIjoxNzIwMjgwOTMwLjIyODE0NSwiZXhwIjoxNzIyODcyOTMwLjE5OTYzOCwic3ViIjoiMjk1MjM0NSIsInNjb3BlcyI6W119.f5oY-BKAoDaxyO-jskPIQdZe3Hy7fK_YRidCRRyKXSZ3TGS0iy5U_21wnkasgQVlTkMk-7Kxvk30CWZx6PdI3bAJypTmXsiQ7j6sLVCNdpjbY6uedCnDoXSP50W8sYLPZy8ws-Z_qXc3s3Ylld2TUeiH-9r-LYImFi1s2jO1Jrk9PSoQp2f7EVuvfZFDRV9izewU0GgsQ7QdT3h5xrxDYvI1vzOfJu8CnltKy20E-w2YBRKVUWVdAKQMyNhLNMJFNFWnJBH5maV5Y5dELoPgjAGwiVKYont0GYLUmsKdy4bFyEZFbguJbuyR4thNKEEzQpZx3hWDbe2_BSyCDSzltw0nywumVTHRYjsHutCL3AcwHxw5AY5WBziPa5mTrXwi4K1aaUPGP7ixmKT3kVR56c2_HHUKOsiFJaodjwG6SIpocMqJJxdIqGfuNAzztmtO4Ck5oMOMp67jP6wjsJJ9MQgxY-lrx5wgpzVJ8hgwsG7cLTKbjPqUKiVZfwUzigzwO3uPurZ7K0jUq1ifCzR1-iYml1CvKeZLYG0ZG5qPDBiPkwMFbpFHLnLsA2fjfU-G9h6klYJyxpC7w5jzrCJ_Iboqs-WVXU2wyUF_syZrPf4PQav3h86ClJInvh9EvREnFQ7Ndzks-QAis7cuFp3vB6XmAf4YVY-55kOrFVrN1Yc", "refresh_token": "def502002ce29ee67844eac2a70befa3a2964f1603076e414fd40a287246c0927f5044f7a7918c06b4d9a3a2296c84dde80810c7bf76afc5a5eb1a7684d949100709172c7b893f8dab518ab564f217a6e3df401f7d1b2e4c7343eb050bfb286f5f0b919f99250e8274f8d9bd5712075dde672b3566d7ad1cbffcf9486ba118532a66c4cf1bb68c4a08b69a05a447848502b51d8e5c65d7d9ff90bcd7af073f53fdc8fb665a7b5ad1776349ddeadf9ef6d7e954d77b44b411e228f1af8fd0ae3ac21de40f505146b7e77f2453346c14340fa895bb05db28bc7ab4514c2f6e24e84245dfdac6b577428259b233a23ab897a232dbc0262965287b9d4e10e5feab0fce5f85b2410b5d2b73b90fa68eda0c155e0107622b55a780d12a1e2533f9b07754d98972acf77c4dc94585b4f5b88b16cdad6fd3ac55c3029abece858f71605b6f0ca4c4793bdcfd87ad05e02d7317f21e84f2e4b1338b9069efdd8ad9aa704c2baf19e6b62d04bf", "expires_in": 2592000, "isAdmin": 0, "userID": 2952345, "routeIcon": "arrow", "Petsevices": 0 } }
Wenn Du eine Node auswählst und rechts im Fenster auf das Buch klickst, dann bekommst Du in der Regel einen Hilfetext zu einer Node.
hab ich gefunden und gelesen
Flow verläuft in der Regel von links nach rechts so wie Du liest
müsste dann obiger Screenshot mit 2 Request nacheinander passen?
Aber wo macht er den Login inkl. Token?
-
@negalein Ja im Moment wollte ich den noch gar nicht. Hast Du mal meinen Flow importiert und verstanden wie ein Nachrichtenobjekt aufgebaut ist und welche Möglichkeiten Du hast, Eigenschaften des Nachrichtenobjektes im Debugfenster ausgeben zu lassen?
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
müsste dann obiger Screenshot mit 2 Request nacheinander passen?
Nein das passt noch lange nicht. Aber ich dachte, wir entwickeln das zusammen?
-
@Negalein Wenn Du soweit bist, dann melde Dich halt - sonst warte ich hier, wenn keine Rückmeldung kommt.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Hast Du mal meinen Flow importiert und verstanden wie ein Nachrichtenobjekt aufgebaut ist und welche Möglichkeiten Du hast, Eigenschaften des Nachrichtenobjektes im Debugfenster ausgeben zu lassen?
Ja, die 3 grünen Nodes sind alles eigene Debugs.
Und der blaue Timestamp ist das ausführbare Teil. Also der Start von Allem.
Im Payload steht eine Nummer (wo kommt die her).
Im Topic steht nichts.
Und im Nachrichtenobjekt steht wieder die Nummer vom Payload.Also der Payload übergibt an das Nachrichtenobjekt.
Und ich schätze im Topic wird mal das Ergebnis (zB GPS-Koordinaten) stehn.6.7.2024, 18:02:58node: payload msg.payload : number 1720281778711 6.7.2024, 18:02:58node: topic msg.topic : string[0] "" 6.7.2024, 18:02:58node: gesamtes Nachrichtenobjekt msg : Object object _msgid: "8ec694ca908771a0" payload: 1720281778711 topic: ""
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Aber ich dachte, wir entwickeln das zusammen?
war zu voreilig
-
@negalein sagte in PAJ GPS mit Node-Red abfragen:
Und der blaue Timestamp ist das ausführbare Teil. Also der Start von Allem.
Na sagen wir mal so. Der blaue Timestamp ist nicht der ausführbare Teil, sondern diese Node (wie jede andere Node) kann ein Nachrichtenobjekt erzeugen, dass dann an den Ausgang geschickt werden.
Da wir in die payload einen timestamp gespeichert haben
enthält die payload einer Zahl, die die aktuelle Zeit in ms seit dem 1.1.1970 also die Unix Zeit enthält.
Die payload (Nutzdaten) kann alles sein.
Das topic wird in der Regel verwendet, um zu beschreiben um was für Nutzdaten es sich handelt.
Nehmen wir mal an Du hast eine Temperatur in einer Nachricht mit einer payload, zum Beispiel 25. Dann nützt Dir das sehr wenig, wenn Du mehrere Temperaturen hast, Dann nutzt man das topic um zum Beispiel zu beschreiben, um was für einen Wert es sich bei der payload 25 handelt. Also Temperatur-Wohnzimmer zum Beispiel.Nun erstell mal eine Inject Node, mit einem Nachrichtenobjekt, dass die Eigenschaften "eMail" und "password" hat. Wenn Du das hast, dann sag Bescheid. Der Datentyp ist natürlich in beiden Fällen ein String, also eine Zeichenkette.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Nun erstell mal eine Inject Node, mit einem Nachrichtenobjekt, dass die Eigenschaften "eMail" und "password" hat. Wenn Du das hast, dann sag Bescheid. Der Datentyp ist natürlich in beiden Fällen ein String, also eine Zeichenkette.
Bist Du soweit? - Also wenn ich mich falsch ausgedrückt habe, dann sag Bescheid.
Die Aufgabe war eigentllich total easy:
Du kannst auch erst mal wie hier - Fakedaten eingeben. Es geht ja darum, Dir hier Zusammenhänge zu vermitteln.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
Du kannst auch erst mal wie hier - Fakedaten eingeben.
hab mich am Anfang verklickt.
Aber schaut jetzt so aus6.7.2024, 18:57:00node: debug 1 msg : Object object _msgid: "b147c438e5c144a0" Mail: "hansi@seppi.de" PWD: "irgendwas"
PS: bin dann mal weg; bei uns kommt gerade das starke Gewitter an.
-
@negalein ok -dann melde Dich mal zurück. Wenn Du da bist.
Für die Zukunft - um die Daten aus dem Debugfenster hier einzustellen, nutze nicht die Maus zum markieren der Daten - sondern geh mit der Maus neben den Wert im Debugfenster, den Du hier einstellen willst, kopieren ihn mit der Schaltfläche "Wert kopieren" in die Zwischenablage und stell ihn dann hier in CodeTags hier ein.
{"_msgid":"a3c043dc39a1de4f","eMail":"mail@web.de","password":"meinPasswort"}
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
melde Dich mal zurück.
im back
mit der Schaltfläche "Wert kopieren" in die Zwischenablage
-
@negalein Welcome back oder wb.
Nun dann zieh mal ein HTTP Request Node rein und schau Dir mal den Hilfetext an. Nachdem Du ja die Eigenschaften Deines Nachrichtenobjektes etwas anders benannt hast, musst Du halt die Eigenschaft Deines Nachrichtenobjektes verwenden.
Nachdem Du diese HTTP-Request Node an Deine Inject Node gesetzt hast, mit der URL Deines Logins mit den Platzhaltern für eMail und password, hängst Du ein Debug Node hinten dran und lässt Dir die payload, erst mal mit Dummy Login Daten ausgeben und postest mal das Ergebnis als Objekt in code tags - wie ich es eben mit "Wert kopieren" gezeigt habe.
-
@mickym sagte in PAJ GPS mit Node-Red abfragen:
mal mit Dummy Login Daten
zu spät gelesen
ok, also mit {{{xxxx}}} nimmt er die Daten aus dem Inject.
Ausgabe erfolgreich
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIzOCIsImp0aSI6IjkyMWU4MTQ3MmMxNzg5MzQ0OTM3MDE1ODcyZTEzMTMxMTE4YjUwMDM3ZGNmODc3OThiM2NmNDUxMmFjNWRiMDg2YTQ5N2FmNWI5MTRhZGJmIiwiaWF0IjoxNzIwMjk3NzExLjE3MTU0NywibmJmIjoxNzIwMjk3NzExLjE3MTU1LCJleHAiOjE3MjI4ODk3MTEuMTA5NTU2LCJzdWIiOiIyOTUyMzQ1Iiwic2NvcGVzIjpbXX0.NFTOlZG_h4WlFemD4pz3LD9nrvDAkjpkaPJzAlqT1bJDx5YOXz4DJzkL-EUU9hiqxl4sYukRro851oSwNE1dHztjgNVtPTXKb7h4SBD3MOYjz6OV8AByCPirpDzTg24QFQQRS9YzqKt9kfzHKSD2uQSZQfSqDWYzJ7HRjJMDXDtzMMgpz_9SadUdkgRFLlbELsIAF-XHIEPsaIYdxlPlAimodBaEWr_c3xQsHy1O9djtmXP0hYOCkjJ7ojWaGeJ56iRxLzIGhuOTv4Ro_CJ77yPiBHcc7jrYDoeAq1D2qrrqh_tUvCUSguOdxUYilGjaVv61WGlCxWHTtO3EPo1tn7WYYaRnWJHvAbEa7dUflP6E6QsSceLyO-xNwpbpw9gLOjdhn8IzcEEduDeGf8vhuXtIsL7cnlwQShht_5oOwkS3DKkoLrP8k2mPM-snAecUemSrgA4ZghXrvQsUDEV0p1QggkIQcdskyiKpzyLpwXTi5cbwFjfwo1IybnEnvinrp-D86TTudrOSgKPzeaq7MqfHab8jPwUVZjw4BOxnLYxTiBu2qr7qr3Xdo5lZJJEXPtF3Mw4hKy_PVWGTqqnj3RMQ0j7vQz4R7dXii2OhP8MZIrbhq4QOfIYuReiFZQiFKvNxgGdxKtRw6O9Us-yV0BAxZKiQXiZ3Fcg-cuOcuJo
-
@negalein Nein ich will nicht das Token haben, sondern Du sollst mit Dummy Daten die payload ausgeben.
-
-
@negalein Ja aber das ist nicht das Objekt der payload. Kannst Du mal das ganze Objekt hier in code tags reinkopieren?
Das ganze Objekt sollte also wenn Du es mit Wert kopieren und hier in CodeTags kopierst auch wie ein Objekt aussehen.
Falls das ALLERDINGS ein STRING ist, dann hast Du die HTTP-Request Node nicht richtig eingestellt.