Hi!
Damit man nicht immer manuell nach Updates bei den Modulen suchen muss > hier ein kleines Skript zum nächtlichen prüfen nach Updates und automatischer Aktualisierung. Inklusive der Möglichkeit Ausnahmen zu definieren, für Module die man lieber manuell updaten möchte.
Einfach das Skript bei euch rein kopieren, Timer im gewünschten Intervall anlegen (z.B. täglich um 4.00 Uhr), fertig
<?
$ModulInstanzID = 12345; // Hier die InstanzID vom Module Control (unter Kern-Instanzen) eintragen
$AusnahmenAR = array("IPSHomematicExtended"); // Hier die Modulnamen eintragen, welche man manuell updaten möchte
// Nach Updates für alle Module suchen (bis auf die Ausnahmen)
$result = MC_GetModuleList($ModulInstanzID);
foreach ($result as $Modulname)
{
if (in_array($Modulname, $AusnahmenAR) === false)
{
$ModuleLocalAR = @MC_GetModuleRepositoryLocalBranchList($ModulInstanzID, $Modulname);
$ModuleRemoteAR = @MC_GetModuleRepositoryRemoteBranchList($ModulInstanzID, $Modulname);
if ($ModuleLocalAR[0]["ModuleCommit"] <> $ModuleRemoteAR[0]["ModuleCommit"])
{
if ($ModuleLocalAR[0]["ModuleBranch"] == $ModuleRemoteAR[0]["ModuleBranch"])
{
$ModuleMitUpdatesAR[] = $Modulname;
}
}
}
}
// Wenn Updates vorhanden, dann diese installieren (bis auf die Ausnahmen)
if (isset($ModuleMitUpdatesAR))
{
foreach ($ModuleMitUpdatesAR as $Modulname)
{
if (in_array($Modulname, $AusnahmenAR) === false)
{
MC_UpdateModule($ModulInstanzID, $Modulname);
echo "Modul -$Modulname- wurde aktualisiert!";
IPS_LogMessage("MODUL-UPDATE", "Modul -$Modulname- wurde aktualisiert!");
}
}
}
else
{
echo "Keine Modul-Updates verfügbar!";
}
?>
>> Nicht wundern, das Skript läuft teilweise ziemlich lang. Aber Nachts kann einem das ja egal sein
Grüße,
Chris