ich habe vor meinem Drucker eine Schaltsteckdose, die ich zwar per IPS steuern kann. Leider weiß ich aber noch nicht, wie ich IPS dazu bringe, bei anliegenden Druckaufträgen die Steckdose einzuschalten. Ich hatte so etwas früher mal in Visual Basic programmiert und erinnere mich, dass es API-Funktionen gibt, um herauszufinden ob die Druckerwarteschlange eines bestimmten Druckers leer ist oder nicht. Eine solche Funktion in IPS fänd ich daher große Klasse. Selbst wenn der IPS-Server nicht zugleich Printserver ist - man kann den Drucker ja auch dann auf dem IPS-Server installieren, wenn er an einem anderen Printserver hängt. Das kann sogar ein beliebiger Clientrechner sein, hauptsache der Drucker ist freigegeben.
Mit diesem Feature ließe sich Strom sparen, ohne auf den Komfort beim Drucken verzichten zu müssen.
Ok was muss ich tun jedes mal sagt der 1 also an auch wenn er nicht an ist
Im prinzip will ich auch nur das der Drucker an ist wenn einer der seltenen
Druckaufträge kommt vieleicht könntet ihr mir nochmal helfen.
danke im vorraus.
Ich würde den Drucker prinzipell immer ausschalten. Und den Spooler zyklisch abfragen. Ist ein Dokument drin, dann Drucker an. Ist nichts drin, dann Drucker aus. Ist denk ich auch die einzige Möglichkeit, das zu nutzen.
Script alle Minute aufrufen.Wenn ein Druckauftrag da ist fuer meinen
Drucker dann einschalten fuer 180 Sekunden.Alle Minute wird solange
noch ein Auftrag da ist wieder gesendet.Wenn kein Auftrag mehr da ist
schaltet der Drucker nach 180 Sekunden aus.
Als Dank will ich euch natürlich das Skript nicht vorenthalten
<?
$schalter = 29875 /*[Haus\Aktoren\Stromschalter\Erdgeschoss/Drucker]*/;// die ID des zuschaltenden Schalters
$Boolean = 37349 /*[Haus\Aktoren\Stromschalter\Erdgeschoss/Drucker\Status]*/;// die ID des Status des Schalters
$zeit1 = 5; //Setzt Die Zeit die der Drucker am netz bleibt
$zeit2 = 0.5; // Setzt Die Zeit wie oft das Skript abgefragt wird passt sich nur nach einem Vorgang an
// Ab Hier mus nichts mehr geändert Werden auser es werden andere Komponenten als Z-Wave genutzt
// Für FS20 muss nur die// vor FS20_Switchmode entfernt werden und vor die ZW_Switchmode
// gesetzt werden.
$status = GetValueBoolean ($Boolean);
$drucker = (Sys_GetSpooler());//Liefert Druckerstatus
$EreignisID = @IPS_GetEventIDByName(ScriptTimer,$IPS_SELF);//Liefert die eigene ID
if ( $drucker ['HP Color LaserJet 2600n'])
{
ZW_Switchmode ($schalter, true);// ausgelegt Für Z-Wave
//FS20_Switchmode ($schalter, true);// ausgelegt Für Fs20
IPS_DeleteEvent($EreignisID);//loescht den Timer bevor er neu gesetzt wird
IPS_SetScriptTimer($IPS_SELF, $zeit1*60);//setzt im Programm ein event das in $zeit1 min ausgeloest wird
}
else
{if ( $status == True )
{
ZW_Switchmode ($schalter, false);// ausgelegt Für Z-Wave
//FS20_Switchmode ($schalter, false); // ausgelegt Für FS20
IPS_DeleteEvent($EreignisID);
IPS_SetScriptTimer($IPS_SELF, $zeit2*60);//setzt den Timer auf $zeit2 mal 60sec
}
}
// geschrieben by PW
?>
Habe versucht es so nutzerfreundlich als möglich zu schreiben, damit selbst Anfänger damit klar kommen.
An die Profis bin natürlich offen für eine Bewertung der schreibweise!
Ist mein erstes Veröffentlichte Skript und habe auser IPS keine PHP Erfahrung. Möchte aber gerade für Anfänger weitere Skrips Bereitstellen,
da ich weis wie schwer ich mich am Anfang getan habe.
Der Funktionier auch bei Netzwerkdrucker (meiner Hängt im netzwerk) muß aber auf dem Server eingerichtet sein.
Den drucker auf dem Server must du freigeben, da das skript er nur die Druckerwarteschlange vom server liest.
Klapt aber einwandfrei solange du den server auf 24/7 hast.
Mein server steht zwar neben dem Drucker läuft aber über Wlan.
Noch ein kleiner Tipp nicht mit Tintenstralern machen. Die meisten spritzen sich nach dem start dann erstmal die düsen frei.