NEWS
[gelöst] Datenpunkt mit base64 in Bilddatei schreiben
-
https://stackoverflow.com/questions/6926016/how-can-i-save-a-base64-encoded-image-to-disk
let imgstr = getState("datepunktidmitbild"); var base64Data = imgstr.rawBody.replace(/^data:image\/png;base64,/, ""); require("fs").writeFile("out.png", base64Data, 'base64', function(err) { console.log(err); });
-
Danke @oliverio , habe ich einfach mal kopiert und die werte angepasst.
-
const value = getState('mihome-vacuum.0.cleanmap.map64').val; const base64str = value.replace(/^data:image\/png;base64,/, ''); const base64data = Buffer.from(base64str, 'base64'); writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => { if (!err) { console.info('File written'); } else { console.error(err); } });
-
on({ id: [].concat(['mihome-vacuum.0.cleanmap.map64']), change: 'ne' }, async (obj) => { const value = getState('mihome-vacuum.0.cleanmap.map64').val; const base64str = value.replace(/^data:image\/png;base64,/, ''); const base64data = Buffer.from(base64str, 'base64'); writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => { if (!err) { console.info('File written'); } else { console.error(err); } }); // console.error(getState('mihome-vacuum.0.cleanmap.map64').val); });
Vielen Dank, das klappte schon mal auf anhieb.
Macht das so Sinn mit dem "change"? -
@accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:
Macht das so Sinn mit dem "change"?
Ja, wenn es nur eine ID ist, würde ich mir aber das Array sparen:
on({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {
Und Du kannst direkt mit dem Wert arbeiten (ohne den nochmal zu holen):
on({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => { const value = obj.state.val; const base64str = value.replace(/^data:image\/png;base64,/, ''); const base64data = Buffer.from(base64str, 'base64'); writeFile('0_userdata.0', '/cleanmap.png', base64data, (err) => { if (!err) { console.info('File written'); } else { console.error(err); } }); });
-
@haus-automatisierung sagte in Datenpunkt mit base64 in Bilddatei schreiben:
n({ id: 'mihome-vacuum.0.cleanmap.map64', change: 'ne' }, async (obj) => {
Sehr cool. Danke!
Diese Sprache beherrsche ich einfach nicht. Bin in PHP groß geworden -
@accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:
Bin in PHP groß geworden
Ja, ich auch.
Gerade 2 Tage lang alle PHP-Klassen des Online-Shops auf PHP 8.3 und strict types umgestellt...
-
@haus-automatisierung
Na das passt ja.Aber Frage, würde sich das mit Blockly umsetzen lassen?
-
@accessburn sagte in Datenpunkt mit base64 in Bilddatei schreiben:
würde sich das mit Blockly umsetzen lassen?
Zu 90%, ja.
-
ahja das rawbody hatte ich nicht entfernt