@CKMartens
Hat denn kein anderer dieses Problem, das das Webinterface bei loading states fest hängt.
Weiterhin sendet der Adapter zwar per Telegram nach einer Mission mir die Map, aber der Text kommt nicht
var _fs = require('fs');
/*
* MISSION END: Send map
*/
var message = "%device.name% finished at %missions.current.endedDateTime% cleaning %missions.current.sqm% sqm in %missions.current.runtime% seconds (%missions.current.error% errors).";
var ns = 'roomba.0';
var imagePath = '/opt/iobroker/iobroker-data/files/vis.0/';
on({id: ns + '.missions.current.ended', change: 'any'}, function(obj)
{
if (!obj.state || !obj.state.val) return;
// replace variables with state values
var pos, variable, state, value;
while (message.indexOf('%') > -1)
{
pos = message.indexOf('%');
variable = message.substring(pos, message.indexOf('%', pos+1)+1);
state = getState(ns + '.' + variable.replace(/%/g, ''));
if (state !== null && state.val !== null)
value = state.val
else
{
log('State ' + variable.replace(/%/g, '') + ' not found!', 'warn');
value = '';
}
if (typeof value === "boolean") value = value === true ? 'with' : 'no';
message = message.replace(RegExp(variable, 'gi'), value);
}
// console
log(message);
// get image
var img = getState(ns + '.missions.current.mapImage').val;
if (img !== null && img.indexOf('data:image/png;base64,') > -1)
{
_fs.writeFile(imagePath + 'image.png', img.replace(/^data:image\/png;base64,/, ''), 'base64', function(err)
{
if (err !== null)
log(err.message, 'warn');
else
sendTo('telegram', {text: imagePath + 'image.png', message: message});
});
}
});
im log steht aber der text, der eigentlich per variable message versendet werden sollte.
script.js.common.Roomba_Map: Kalle finished at 07.10.2020 09:31:46 cleaning 0.09 sqm in 122 seconds (no errors).
Fehler gefunden: im Skript für den Text muss es caption anstatt message heissen. Die Anleitung des Adapters ist eben falsch.
sendTo('telegram', {text: imagePath + 'image.png', caption: message});
sendTo('telegram', {text: imagePath + 'image.png', message: message});