@Ulfhednir Also um das update durhczuführen rufe ich bei mir ein script auf das unter /opt/iobroker liegt und "adapter_update.sh" heißt:
cd /opt/iobroker
sleep 5
iobroker upgrade
sleep 5
Mein Skript für die Benachrichtigung sieht so aus:
var timeout,Letzter_Absender,Letzter_Text,Letzter_Text_klein;
//Wenn ein Update für einen Adapter vorhanden schicke Info per Telegram
on({id: 'admin.0.info.newUpdates', change: "ne"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
if (getState("admin.0.info.newUpdates").val == true) {
sendTo("telegram", "send", {
text: (['Es gibt Updates für: ',getState("admin.0.info.updatesNumber").val,' Adapter'].join(''))
});
timeout = setTimeout(function () {
sendTo("telegram", "send", {
text: ('Adapter: ' + String(getState("admin.0.info.updatesList").val))
});
console.log('+++' + ' Update für ' + getState("admin.0.info.updatesList").val);
//Auswahlmenü Telegram ob Adapter aktualisiert werden soll
sendTo('telegram',
{ text: 'Bitte wähle ein Button',
reply_markup: {
keyboard: [
['Aktualisieren', 'Nichts ändern'],
],
resize_keyboard: true,
one_time_keyboard: true }
});
}, 100);
}
});
//Verwertung Telegram Antwort
on({id: 'telegram.0.communicate.request', change: "any"}, function (obj) {
var value = obj.state.val;
var oldValue = obj.oldState.val;
Letzter_Absender = (obj.state ? obj.state.val : "").slice(1, ((obj.state ? obj.state.val : "").indexOf(']') + 1) - 1);
Letzter_Text = subsequenceFromStartLast((obj.state ? obj.state.val : ""), (((obj.state ? obj.state.val : "").indexOf(']') + 1 + 1) - 1));
Letzter_Text_klein = subsequenceFromStartLast((obj.state ? obj.state.val : ""), (((obj.state ? obj.state.val : "").indexOf(']') + 1 + 1) - 1)).toLowerCase();
if (Letzter_Absender == 'Tobi' && (Letzter_Text == 'Aktualisieren')) {
setState("javascript.0.Adapter_Update", true);
//Funktionsaufruf
Start_Update_Adapter();
} else if (Letzter_Absender == 'Tobi' && (Letzter_Text == 'Nichts ändern')) {
sendTo("telegram", "send", {
text: ('Es wird keine aktualsisierung durchgeführt')
});
}
});
//Adapter update durchführen
function Start_Update_Adapter(){
on({id: 'javascript.0.Adapter_Update', val: true}, function (obj) {
exec("/opt/iobroker/adapter_update.sh")
setState("javascript.0.Adapter_Update", false, true);
});
}
function subsequenceFromStartLast(sequence, at1) {
var start = at1;
var end = sequence.length - 1 + 1;
return sequence.slice(start, end);
}
Ich selbst prüfe das Object "NewUpdates" auf den Wert "true"
Leider ist es bei mir kein Blockly, sehe aber so spontan keinen Fehler.
Vllt fällt einem anderen da noch was auf.