IPSTools - Tools für Monitor, Maus und mehr ...

Hallo Christian,

ja, da gibt es schon jede Menge Möglichkeiten und man findtet auch jede Menge Code Examples im Netz (hab da selber unter anderem das Aufsetzen des Server gesaugt - man muß ja nicht unbedingt das Rad neu erfinden …).

Ich verwende die Maus Idle Messages dazu meinen Touchscreen als digitalen Bilderrahmen zu verwenden, nach 15 Minuten schaltet sich der ScreenSaver mit der Dia Show ein (könnte man zwar prinzipiel auch mit der Windows eigenen ScreenSaver Funktion machen - hatte da aber immer wieder mal Probleme mit dem abschalten des Monitors in der Nacht und bei Abwesenheit - seit dem ich das alles aus IPS direkt mache, funktioniert das eigentlich ganz gut).

Hallo Andreas,

wie wäre es noch mit einer Routine um Prozesse abzufragen.

Ich nutze auf dem Remote-Terminal ein Programm das sich allzugerne von alleine verabschiedet. Dies würde ich gerne überwachen und wieder starten, alles natürlich durch IPS :smiley:

Hallo,

vielen Dank für das Tool, hat die letzten 2 Probleme bei meinem Dashboard-Rechner gelöst!

Was wirklich noch cool wäre, wäre eine TTS-Sprachausgabe-Funktion…

Hallo Leute

hab mit mal die ganzen Feature Requests geistig notiert - mal sehen was in nächster Zeit geht …

… und hier noch der Source Code, Errorhandling hat auf jeden Fall noch jede Menge Potenzial für Verbesserungen …

IPSToolsCode__2011-08-29.zip (181 KB)

und sowas nun noch als Client auf nem Android-Tablet… wie geil ist das denn…:wink:

Hey Andreas,

ich wollte nur kurz ein dickes Lob da lassen - funktioniert wunderbar & schaltet ab jetzt den Touchscreen brav ein und aus…

Vielen Dank für die Mühe & ein schönes Wochenende,
Markus

Hallo,

kann mir bitte jemand erklären wie ich mir den freien Festplatten platz eines Netzlaufwerks anzeigen lassen kann, ich bekomme es einfach nicht hin :o

Hallo Andreas,

gibt’s eine möglichkeit das Programm beim Start gleich in den Tray zu minimieren?

Danke

Die Verknüpfung im Autostart-Ordner mit der Option „minimiert“ starten.

Super Tool. Bleibe jedoch gleich am Anfang schon hängen.
Habe testweise mal folgendes Script um den Screensaver zu starten:

<?

define ("ID_IPSTOOLS_SOCKET",       57242 /*[IPSTools_Socket]*/);

function IPSTools_StartScreenSaver() {
   CSCK_SendText(ID_IPSTOOLS_SOCKET, 'StartScreenSaver');
}

?>

Der Screensaver wird jedoch nicht gestartet.

Hallo,

@immergut

bei mir funktionierts, wo rufst Du denn die Funktion auf ?
Bekommst Du eine Antwort vom Server?


define ("ID_IPSTOOLS_SOCKET",    	20401 /*[IPSTools Socket]*/);

function IPSTools_StartScreenSaver() {
   CSCK_SendText(ID_IPSTOOLS_SOCKET, 'StartScreenSaver');
}
IPSTools_StartScreenSaver();

@hbraun:


CSCK_SendText(12345, 'FreeDiscSpace;C');

So im Debugfenster sehe ich das die richtigen daten kommen, ich bekomme sie nur nicht in eine Variable geschrieben.

Danke Brownson,

aber irgendwie bin ich zu Bl** dafür :frowning:

Wenn ich das richtig verstanden habe, dass Programm auf dem Clientrechner starten und den Port einstellen (7002)

Dann die Installation lt. Wiki machen, beim Socket die IP vom Client und den zuvor angegeben Port eintragen.

Dann in das Sendescript den Befehl

CSCK_SendText(12345, 'FreeDiscSpace;C');  

eintragen.
Muss das auch rein

define ("ID_IPSTOOLS_SOCKET",       53212 /*[IPSTools_Socket]*/);

function IPSTools_FreeDiscSpace()

Wenn bis jetzt alles richtig ist, was muss ins das Empfangsscript (damit der Wert in eine variable geschrieben wird)?

Sorry aber bin zu wenig Programmierer und zuviel Anwender :rolleyes:

CSCK_SendText(12345, 'FreeDiscSpace;C');  

reicht im Prinzip. Eine kleine Wrapper Funktion für diese Anforderung schadet aber auch nicht:


	define ("ID_IPSTOOLS_SOCKET",    	20401 /*[IPSTools Socket]*/);

	function IPSTools_StartScreenSaver() {
		CSCK_SendText(ID_IPSTOOLS_SOCKET, 'StartScreenSaver');
	}

	function IPSTools_SetScreenPower($enabled) {
		if ($enabled) {
			CSCK_SendText(ID_IPSTOOLS_SOCKET , 'ScreenPowerOn');
		} else {
			CSCK_SendText(ID_IPSTOOLS_SOCKET , 'ScreenPowerOff');
		}
	}
	
	function IPSTools_FreeDiscSpace($Drive='C') {
      CSCK_SendText(ID_IPSTOOLS_SOCKET, 'FreeDiscSpace;'.$Drive);
	}

Anforderung des Wertes erfolgt dann durch Aufruf der Funktion:

IPSTools_FreeDiscSpace();

oder mit Angabe des Laufwerkes:

IPSTools_FreeDiscSpace('E');

Empfangsscript könnte folgendermaßen aussehen:

	include_once "IPSLogger.ips.php";

	define ("c_ID_MouseIdleSince",  20347 );
	define ("c_ID_FreeDiscSpace",   58893 );

	if ($IPS_SENDER=='RegisterVariable') {
		$Params = explode(';', $IPS_VALUE);
		
		switch($Params[0]) {
			case 'MouseIdleSince':
				SetValueInteger(c_ID_MouseIdleSince, (int)$Params[1]);
				break;
			case 'FreeDiscSpace':
			   if ($Params[1]=='C') {
					SetValueInteger(c_ID_FreeDiscSpace, (int)$Params[2]);
	 			} else {
					IPSLogger_Inf(__file__,"Received Disc Drive ".$Params[1]);
	 			}
				break;
			default:
				IPSLogger_Inf(__file__,"Received Unknown Command $IPS_VALUE from 'BrownsonTools'");
			}
	}


Danke Andreas,

jetzt gerade im Augenblick habe ich die Werte in meine variablen geschrieben bekommen.

Stand etwas auf dem Kriegsfuss mit explode und Case. Werde mir aber morgen dein Beispiel mal ansehen, ist wahrscheinlich eleganter als mein Script.

Nochmals vielen Dank.

Hallo Andreas,

ich habe es so gelöst:

if ($IPS_SENDER=='RegisterVariable') {
   $Params = explode(';', $IPS_VALUE);

   switch($Params[1]) {
      case 'C':
         SetValueFloat(12161 /*[System\MediaServer Disk C Free]*/, $Params[2]/1024/1024/1024);
         break;
 		case 'D':
         SetValueFloat(42754 /*[System\MediaServer Disk Free D]*/, $Params[2]/1024/1024/1024);
         break;
      case 'E':
         SetValueFloat(35891 /*[System\MediaServer Disk E Free]*/, $Params[2]/1024/1024/1024);
         break;
      default:
   }
}

Was macht den (int) vor dem $Params. Damit geht es bei mir nicht.

(int) habe ich für die Datentype Konventierung verwendet (String wird empfangen, meine verwendete Variable hat aber Integer).

In Deinem Fall funktioniert das nicht, da Du durch die Divisionen eine Gleitkommazahl bekommst …

Ansonsten hast Du’s ja schon tadellos gelöst!

Danke,
habe wieder was dazu gelernt.

Bin schon so von den Hackerln in den Programmen verwöhnt, das ich die OnBoard-Mittel überseh… :smiley:

Danke

Ich wollte das Tool auch auf meinem WeTab nutzen um den Bildschirm ein zu schalten, wenn eine Bewegung erkannt wird.

Leider bekomme ich aber den Socket nicht zum Laufen. Ich bekomme immer die Meldung #10061 wenn ich den Socket öffnen will. Ich hab die Firewall auf dem IPS Server schon aus gemacht aber das bringt auch keinen Erfolg. Den IPSTools Server habe ich zum Testen erst mal auf meinem Laptop laufen. Allerdings sitze ich grade im Hotel und bin via Ftitz!VPN mit meinem Netzwerk verbunden. Kann es vielleicht daran liegen?

Edit: Ich hab mal die IP Adresse des Clients eingetragen wie er über VPN vergeben wurde und jetzt bekomme ich die Meldung eines TimeOuts. Schätze das ist wohl das Problem.

Edit II: Habs gefunden, es war die Firewall des Laptops.