@glasfaser Ich habe es jetzt so gelöst:
// Verkleinert die Funktion des Sendens
onMessage("RenderImage",(data,callback) =>{
// Breite abfragen => Default 1000
if(!data.width){
data.width = 1000;
}
// Bildpfad abfrage, sost standard
if(!data.imagepath){
data.imagepath = '/opt/iobroker/temp/cam/Grafana1.png';
}
// Id des Panels anhand des Bildes festlegen
let panelId = 2;
if(data.imagename === "Leistungsverlauf"){
panelId = 2;
}
else if (data.imagename === "Speicherverlauf") {
panelId = 28;
}
// Zuweisen der Endzeit => default now()
if(!data.end){
data.end = Date.now();
}
// Startzeit zuweisen, wenn eine differenz angegeben wurde
if(data.difference)
{
data.start = data.end - data.difference;
}
// Zuweisen der Startzeit => default vor 24 Stunden
if(!data.start){
data.start = data.end - 24 * 60 * 60 * 1000;
}
// Image redern lassen
const curlbefehl = `curl -H "Authorization Bearer glsa_5SZ6C35KTQaNjV1bsUuOPC1lRhQ2wtoE_31a522d1" "http://192.168.2.80:3010/render/d-solo/3Gu0sEU4k/pv-anlage-and-speicher?orgId=1&refresh=5s&from=${data.start}&to=${data.end}&panelId=${panelId}&width=${data.width}&height=500&tz=Europe%2FBerlin" > ${data.imagepath}`;
exec(curlbefehl, function(err, stdout, stderr) {
if (err) {
callback(false);
}
else{
callback(true);
}
});
});
So kann ich mir flexibel ein Bild erzeugen lassen, mit variablen start und endzeiten.