Seite 2 von 2

Re: Windows Batch-Datei sunset sunrise

Verfasst: 17 Jul 2023, 20:21
von joachimF
Tex hat geschrieben: 17 Jul 2023, 17:15 C:\Pfad\Dateiname^Parameter%
der Teil ^Parameter kann wegfallen?
z.B. C:\php\php.exe wäre OK

Re: Windows Batch-Datei sunset sunrise

Verfasst: 17 Jul 2023, 21:21
von Tex
Sieht dann so aus:
C:\Pfad\Dateiname^%

Re: Windows Batch-Datei sunset sunrise

Verfasst: 18 Jul 2023, 08:07
von joachimF
Tex hat geschrieben: 17 Jul 2023, 15:27 %ws_setmem[1]=%ws_timetoval[%ws_sunrise%]%%
%ws_setmem[2]=%ws_timetoval[%ws_time%]%%
%ws_setmem[3]=%ws_compare[1]=%ws_getmem[2]%~%ws_getmem[1]%~1~0%%

%ws_setmem[4]=%ws_timetoval[%ws_sunset%]%%
%ws_setmem[5]=%ws_compare[5]=%ws_getmem[4]%~%ws_getmem[2]%~1~0%%
%ws_setmem[6]=%ws_calc[+]=%ws_getmem[3]%~%ws_getmem[5]%~0%%

%wswin_runprogram=%ws_compare[3]=%ws_getmem[6]%~2~1~0%^C:\ipscan.exe^%
Um die Ausgabe zu testen, habe ich zusärtzlich in den ersten 6 Zeilen jeweils %ws_setmem[1]= und das letzte % entfernt.
Ergebnis um 22.77 Uhr

6.15
22.77
1

21.20
1
2

und es wurde das Program C:\ipscan.exe gestartet.
Der umgekehrte Fall muss es sein, ein NICHTSTART.

Da WsWin minütlich ausliest, wird auch minütlich die custom.txt abgearbeitet und jedesmal ipscan.exe gestartet.
Ich habe es noch nicht mit iSpy getestet; um diese Programm geht es hier.

Re: Windows Batch-Datei sunset sunrise

Verfasst: 18 Jul 2023, 09:25
von wk893b
Hier mal meine Version der immerwährenden Sonnenauf- und -untergänge mit PHP.

Um Geräte zu schalten, ist das Script einfach mit dem jeweils anderen per include zu verknüpfen und mit einer If-Bedingung und den Variablen sunset, sunrise den Befehl für ein und aus zu setzen.

PS: Hoffe, dass ich die richtigen Werte für vor Ort getroffen habe.
Das Script funktioniert jedenfalls.

Re: Windows Batch-Datei sunset sunrise

Verfasst: 18 Jul 2023, 10:05
von Tex
Da WsWin minütlich ausliest, wird auch minütlich die custom.txt abgearbeitet und jedesmal ipscan.exe gestartet.
Das hatte ich befürchtet....

Re: Windows Batch-Datei sunset sunrise

Verfasst: 19 Jul 2023, 11:29
von joachimF
Ich bin nun fast fertig mit dem php script

Grundlage
https://www.php.net/manual/de/function.exec.php

Beschreibung
exec(string $command, array &$output = null, int &$result_code = null):
string|false
exec() führt einen angegebenen Befehl (command) aus.

Code: Alles auswählen

<?php

$time = time();
// Set latitude and longitude für Carces.
$latitude = 43.45429245253471;
$longitude = 6.153127266694305;

 $suninfo = date_sun_info($time, $latitude, $longitude);
 $sunrise = $suninfo['sunrise'];
 $sunset  = $suninfo['sunset'];

if ( ( $time > $sunrise ) && ( $time < $sunset ) ) {
	echo "\n"."Zeit liegt innerhalb von sunrise und sunset.";
	echo "\n"."Programm wird nun ausgeführt";

	$command="C:\Programme\iSpy\iSpy.exe";
	exec ($command);
}

?>
Hinweis:

Wenn ein Programm mit dieser Funktion gestartet wird und im Hintergrund
weiterlaufen soll, muss die Ausgabe des Programms in eine Datei oder einen
anderen Ausgabestrom umgeleitet werden. Anderenfalls bleibt PHP solange
hängen, bis das Programm zu Ende ausgeführt wurde.

Das ist der Fall

Code: Alles auswählen

C:\Users\pu>php sun.php
1689758870
1689739811
1689793993
Zeit liegt innerhalb von sunrise und sunset.
Programm wird nun ausgeführt
aber wie leite um?

Re: Windows Batch-Datei sunset sunrise

Verfasst: 19 Jul 2023, 13:39
von wk893b
Außerhalb von sunrise/set nichts tun(keine Aktivität).
else {
echo 'Ich schlafe jetzt! - Brrrrrr.......';
}

Re: Windows Batch-Datei sunset sunrise

Verfasst: 19 Jul 2023, 14:09
von joachimF
wk893b hat geschrieben: 19 Jul 2023, 13:39 Außerhalb von sunrise/set nichts tun(keine Aktivität).
else {
' '
}
versteh ich nicht :?:
Hier mal meine Version der immerwährenden Sonnenauf- und -untergänge mit PHP.
zeigt bei mir kein Script, sondern das Ergebnis als Html-Seite

Re: Windows Batch-Datei sunset sunrise

Verfasst: 19 Jul 2023, 14:33
von wk893b
joachimF hat geschrieben: 19 Jul 2023, 14:09
wk893b hat geschrieben: 19 Jul 2023, 13:39 Außerhalb von sunrise/set nichts tun(keine Aktivität).
else {
' '
}
versteh ich nicht :?:

Du wolltest doch dass PHP außerhalb von der Aktivität von Sonnenaufgang und - untergang weitergeleitet wird, damit es nicht hängen bleibt.

Hier mal meine Version der immerwährenden Sonnenauf- und -untergänge mit PHP.
zeigt bei mir kein Script, sondern das Ergebnis als Html-Seite
Das ist richtig.

Du hast ja das Problem mit den Zeiten von Sonnenaufgang und - untergang schon gelöst und bist bereits einen Schritt weiter bei der Ausführung von Aktivitäten während dieser Zeiten.

Mein Script liefert nur die immerwährenden Zeiten für den Sonnenaufgang und - untergang für Carces, wie anfänglich im Thema gefordert.
Ich hoffe die Zeiten stimmen, da sie von einer externen Quelle stammen.
Die Umsetzung zur Ein- und Abschaltung der Webcam müsste jedoch noch dazu gebaut werden.
Aber da bist du ja schon weiter.

Re: Windows Batch-Datei sunset sunrise [gelöst]

Verfasst: 19 Jul 2023, 17:28
von joachimF
Mit diesem Code wird iSpy gestartet und das Windows-Fenster geschlossen

Code: Alles auswählen

<?php

//https://www.php.net/manual/de/function.exec.php#86965

[b]function execInBackground($cmd) {
    if (substr(php_uname(), 0, 7) == "Windows"){
        pclose(popen("start /B ". $cmd, "r")); 
    }
    else {
        exec($cmd . " > /dev/null &");  
    }
}[/b]

$time = time();

// Set latitude and longitude für Carces.
$latitude = 43.45429245253471;
$longitude = 6.153127266694305;

$suninfo = date_sun_info($time, $latitude, $longitude);
$sunrise = $suninfo['sunrise'];
$sunset  = $suninfo['sunset'];

// echo $time;
// echo "\n". $sunrise;
// echo "\n". $sunset;

if ( ( $time > $sunrise ) && ( $time < $sunset ) ) {
	// echo "\n"."Zeit liegt innerhalb von sunrise und sunset.";
	// echo "\n"."Programm wird nun ausgeführt";

	$command="C:\Programme\iSpy\iSpy.exe";
	[b]execInBackground[/b]($command);
}

?>