Skript > Modul Auto-Update

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 :slight_smile:

<?
$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 :slight_smile:

Grüße,
Chris

Hey… wo ist dafür das Modul mit einstellbaren Timer :D;):stuck_out_tongue:

und nix wie wech, Michael

:smiley: :smiley: Ich wollte mal wieder was auf die „Oldschool“ Art machen :cool: :smiley:

Edit: Ich hatte aber tatsächlich über ein Modul nachgedacht :rolleyes: :smiley:

-Chris-

Super Script ! Danke dafür !

Kannst du mir verraten wo du die Befehle wie z.B. MC_UpdateModule her hat ? Finde nix in der Doku ?

Ich würde gerne per Script ein Modul hinzufügen, also die Quelle, aber ich weiss den Befehl nicht :frowning:

Einfach mal eintippen in einem Script :wink:
MC_ Strg+Leertaste
Ich vermute das ist alles noch nicht dokumentiert, weil sich da jederzeit noch etwas ändern kann.
Michael

Super vielen Danke das ist eine geniale Funktion !

Hallo Chris,

vielen Dank für das Script. Nimmt doch ein wenig Arbeit ab. Was würden wir, die wir nicht gerne scripten, nur ohne Euch Cracks machen.

Ich kann immer wieder nur sagen, ohne Euch und das Forum hätte ich nie den Schritt in die Haus-Automation gewagt.

Viele Grüße und nochmals Dank

Burkhard

Super Sache! Danke dafür!

Moin ,

geht das script nicht mehr ?

bekomme :

Notice:  Undefined index: ModuleLocalCommit in D:\IP-Symcon\scripts\51983.ips.php on line 12

Ich war mal so frei und hab das Skript im 1. Post angepasst… Das verwenden ja sicher auch einige Leute die meine Module im Einsatz haben, von daher :wink: :smiley:

Problem waren die Branches…

Grüße,
Chris

Moin Chris ,

Ich auf jeden Fall. Tausend dank .

Gesendet von iPhone mit Tapatalk