Mit ‘PHP-Skript’ getaggte Artikel

Brother MFC-9840CDW verliert Datum und Uhrzeit

Dienstag, 23. Februar 2010

Das Brother Multifunktionsgerät MFC-9840CDW verliert nach kurzer Zeit (einige Stunden) ohne Strom die Einstellungen bezüglich Datum und Uhrzeit. Auf der Brother-FAQ-Seite wird empfohlen das Gerät immer am Stromnetz zu belassen. Bei einem Verbrauch von 38 Watt im Standby-Betrieb laut Brother-Spezifikation könnte man aber doch versucht sein das Gerät übers Wochenende, im Urlaub oder gar auch über Nacht abzuschalten. In der Regel ist ein Fax-Gerät zwar immer angeschaltet um Faxe empfangen zu können. Aber es gibt durchaus auch Szenarien in dem das Fax nur zum Senden verwendet wird, z. B. weil Fax-Empfang über einen Faxserver realisiert ist. So war es auch bei einem meiner Kunden. Da die Eingabe über das Bedienfeld nicht gerade komfortabel ist und auch über das Web-Interface einige Klicks und Eingaben zu tätigen sind, habe ich über eine Alternative nachgedacht. “Quick and dirty” kam mir dabei eine PHP-Lösung in den Sinn. Ich habe mir das Formular im Web-Interface angeschaut und dort den Parameter für das Setzen des Datums extrahiert. Das Datum wird bei Brother in Sekunden seit dem 01.01.1980 verlangt, nicht im üblichen Unix-Timestamp seit 01.01.1970. Daher ist hier etwas Umformung nötig. Um das Ganze soweit wie möglich zu automatisieren verwende ich das aktuelle Rechnerdatum (Datum des Servers auf dem PHP läuft). Weiterhin nutze ich die cURL-Funktionen von PHP um auch Benutzername und Passwort automatisch zu übergeben. Damit ist es dann nur erforderlich die PHP-Datei auf dem Webserver aufzurufen um das Datum zu setzen. Das lässt sich bequem über eine Verknüpfung zum Beispiel auf dem Desktop oder auch über einen Autostart-Eintrag realisieren. Natürlich braucht man im Netz auch einen Webserver der PHP ausführt. Das war bei meinem Szenario der Fall. Das Skript lässt sich sicher aber auch in eine andere Programmiersprache umstricken um die Installation eines Webservers zu umgehen. Denkbar wäre vbScript oder Javascript.
Nachfolgend poste ich den von mir verwendeten PHP-Code:

<?php

brothermfc9840CDW_datumsetzen("192.168.1.10");

function brothermfc9840CDW_datumsetzen($ipadresse, $benutzername = "admin", $passwort = "access")
{
$datum_1980 = mktime(0, 0, 0, 1, 1, 1980);
$datum_heute = mktime();
$datum_brother = $datum_heute - $datum_1980;
$chandle = curl_init();
curl_setopt($chandle, CURLOPT_URL, "http://". $ipadresse . "/fax/general_setup.html?kind=item");
curl_setopt($chandle, CURLOPT_POST, TRUE);
curl_setopt($chandle, CURLOPT_POSTFIELDS, "DateTime=".$datum_brother);
curl_setopt($chandle, CURLOPT_HTTPAUTH, "CURLAUTH_BASIC");
curl_setopt($chandle, CURLOPT_USERPWD, "".$benutzername.":".$passwort."");
curl_setopt($chandle, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($chandle);
curl_close($chandle);
}
?>

Den Funktionsaufruf in der ersten Zeile muss man mit den entsprechenden Parametern anpassen: IP-Adresse des MFC (erforderlich), Benutzername sofern abweichend vom Standard “admin” und Passwort sofern abweichend vom Standard “access”.