NEWS
Copy/paste Datenpunktwert JSON Array
-
@apollon77 erstmal danke :-))
Und entschuldige auch von mir
Ich bin grad unterwegs aber ich melde mich dann
Wahrscheinlich liegt es am Script welches kein json sendet nur Text oder so
Habe ich nur zusammen gebastelt mit Google und Chat gpt :-)
-
Dieser Beitrag wurde gelöscht!
-
Dieser Beitrag wurde gelöscht!
Dieser Beitrag wurde gelöscht! -
Dieser Beitrag wurde gelöscht!
-
Ahh ok die API macht ein Problem ... hatte ich oben nicht gesehen das Ihr soweit schon wart.
Ok, dann ist das korrekterweise ein Problem der API und du solltest den Inhalt konvertieren wenn die API das so erwwartet. Wenn Du Glück hast reicht "JSON.stringify(JSON.parse(value))" schon.
ja das Script schickt wohl nur Text, das war dann wohl der Fehler...hier mal das Script im ganzen :-)
Ich hatte es zu erst nur mit Text getestet und dann mit den JSON im Datenpunkt, was eine Art Charakter Map ist...
const exec = require("child_process").exec; // Funktion: Text direkt als "text" an Vestaboard senden function sendVestaboardText(text) { if (!text || text.trim() === "") { log("Vestaboard: Leere Nachricht wird nicht gesendet", "warn"); return; } // JSON Body var body = JSON.stringify({ text: text }); // CURL-Befehl var cmd = `curl -X POST https://rw.vestaboard.com/ -H "X-Vestaboard-Read-Write-Key: ${VESTABOARD_KEY}" -H "Content-Type: application/json" -d '${body}'`; exec(cmd, function(error, stdout, stderr) { if (error) { log("Vestaboard Fehler: " + error, "error"); } else if (stderr) { log("Vestaboard stderr: " + stderr, "warn"); } else { log("Vestaboard Antwort: " + stdout); } }); } // --------------------------- // Trigger: Datenpunkt überwachen // --------------------------- on({ id: "0_userdata.0.vestaboard.message", change: "any" }, function(obj) { const text = obj.state.val; log("Vestaboard Trigger: Neuer Text -> " + text); // DEBUG sendVestaboardText(text); }); // --------------------------- // Testaufruf (optional) // --------------------------- // sendVestaboardText("Hallo ioBroker! Test ohne Zentrierung");Der Datenpunkt den ich dann losschicken wollte sah dann so im ganzen aus:
[ [ 28, 29, 50, 36, 36, 0, 44, 0, 20, 5, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ] -
ja das Script schickt wohl nur Text, das war dann wohl der Fehler...hier mal das Script im ganzen :-)
Ich hatte es zu erst nur mit Text getestet und dann mit den JSON im Datenpunkt, was eine Art Charakter Map ist...
const exec = require("child_process").exec; // Funktion: Text direkt als "text" an Vestaboard senden function sendVestaboardText(text) { if (!text || text.trim() === "") { log("Vestaboard: Leere Nachricht wird nicht gesendet", "warn"); return; } // JSON Body var body = JSON.stringify({ text: text }); // CURL-Befehl var cmd = `curl -X POST https://rw.vestaboard.com/ -H "X-Vestaboard-Read-Write-Key: ${VESTABOARD_KEY}" -H "Content-Type: application/json" -d '${body}'`; exec(cmd, function(error, stdout, stderr) { if (error) { log("Vestaboard Fehler: " + error, "error"); } else if (stderr) { log("Vestaboard stderr: " + stderr, "warn"); } else { log("Vestaboard Antwort: " + stdout); } }); } // --------------------------- // Trigger: Datenpunkt überwachen // --------------------------- on({ id: "0_userdata.0.vestaboard.message", change: "any" }, function(obj) { const text = obj.state.val; log("Vestaboard Trigger: Neuer Text -> " + text); // DEBUG sendVestaboardText(text); }); // --------------------------- // Testaufruf (optional) // --------------------------- // sendVestaboardText("Hallo ioBroker! Test ohne Zentrierung");Der Datenpunkt den ich dann losschicken wollte sah dann so im ganzen aus:
[ [ 28, 29, 50, 36, 36, 0, 44, 0, 20, 5, 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]@Olli_M sagte in Copy/paste Datenpunktwert JSON Array:
sah dann so im ganzen aus:
kannst du dir auch "beautified" ansehen

und wie hätte es aussehen sollen damit das API zufrieden ist?
-
ich hab nur in dem Datenpunkt gesehen, dass da Leerzeichen drin waren und deshalb dachte ich okay das JSON stimmt so nicht, aber ich denke jetzt liegt es eher am Script, dass hier nur Text gesendet wird und kein JSON array
@homoran glaub der DP stimmt schon aktuell auch wenn man Leerzeichen sieht :-)
-
ich hab nur in dem Datenpunkt gesehen, dass da Leerzeichen drin waren und deshalb dachte ich okay das JSON stimmt so nicht, aber ich denke jetzt liegt es eher am Script, dass hier nur Text gesendet wird und kein JSON array
@homoran glaub der DP stimmt schon aktuell auch wenn man Leerzeichen sieht :-)
@Olli_M sagte in Copy/paste Datenpunktwert JSON Array:
glaub der DP stimmt schon aktuell auch wenn man Leerzeichen sieht :-)
Natürlich.
Es ist der selbe InhaltDass es rot ist liegt wahrscheinlich daran, dass du nicht bestätigt gespeichert hast.
Die Frage ist aber was die Gegenstelle erwartet
-
ChatGPT hat mir gestern und heute auch unter die Arme gegriffen. Das, was da herauskommt, ist nicht immer 100% unbearbeitet nutzbar. Bei mir hat es gestern Node-Red zum Stillstand gebracht.
Grob die Entwürfe kann es aber ausspucken. Für den Rest braucht es dann doch noch natürliche Intelligenz.Manchmal hilf es, dem ChatGPT zu sagen, dass es z.B. JSON ist, und der Empfänger String erwartet.
-
ja hab jetzt den richtigen Befehl auch für die API... danke