Hallo Leuts,
ich fummel nun schon mehrere Tage rum. Hab einiges gelesen und nicht gerafft:o
Nun wurde mir beim Treffen sogar geholfen, aber leider nicht am laufenden System. Es funktioniert leider auch mit der Hilfe nicht. HIEEEELFEEE…
Also mein Ziel ist es das der Wagoport, wenn er aus war, eingeschaltet wird, und nach 18 Stunden wieder aus.
Ich habe bei der Hilfe auch tatsächlich etwas gelernt - es ist nicht egal wie das Script gestartet wird. Bei mir zur Zeit nur durch ein anderes Script das IR Signale auswertet. Später soll dann auch auf dem Touch eine Auslösung erfolgen.
Wenn der Wagoport an war soll er gleich wieder aus gehen.
Meine Erfolge waren viele Fehlermeldungen und auch ein Erfolgserlebnis - das Script wurde alle 10sec. gestartet (10sec. als Testzeit statt 18h)
(der obere Teil des Scrips ist dazu da das es nicht mehrfach aufgerufen wird wenn man den Finger nicht schnell genug von der Fernbedienung nimmt und ist NICHT von mir, also nicht meine PHP Erfahrung darauf rückschließen)
<?
$t68 = IPS_GetVariable(11812 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\IRpauseZahnbDU]*/);
if((time()-$t68['VariableUpdated'])>1) setvalue(11812 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\IRpauseZahnbDU]*/, false);
if(getvalue(11812 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\IRpauseZahnbDU]*/)) return; // Mehrfaches Triggern in kurzer Zeit verhindern
SetValue(11812 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\IRpauseZahnbDU]*/, true);
$ZahnbuersteDU = getValueBoolean(39147 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\ZahnbDU]*/); //hole Zustand von Variable - ist gerade an oder aus?
if ($ZahnbuersteDU == false)
{
ModBus_WriteCoil(48004 /*[WagoPorts schreiben\Port68 Lader-ZahnbürsteDU]*/,true);
setvalue(39147 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\ZahnbDU]*/,true);
}
if ($ZahnbuersteDU == true)
{
ModBus_WriteCoil(48004 /*[WagoPorts schreiben\Port68 Lader-ZahnbürsteDU]*/,false);
setvalue(39147 /*[Sonstige Aktoren\68 Lader - Zahnbürste DU\ZahnbDU]*/,false);
}
?>
Hier das Script in dem die Hilfe gezeigt und erklärt wurde… …aber leider nicht geht:(
<?
$t64 = IPS_GetVariable(30984 /*[Sonstige Aktoren\64 Leinwand An&Hoch\IRpauseLeinwandHoch]*/);
if((time()-$t64['VariableUpdated'])>1) setvalue(30984 /*[Sonstige Aktoren\64 Leinwand An&Hoch\IRpauseLeinwandHoch]*/, false);
if(getvalue(30984 /*[Sonstige Aktoren\64 Leinwand An&Hoch\IRpauseLeinwandHoch]*/)) return; // Mehrfaches Triggern in kurzer Zeit verhindern
SetValue(30984 /*[Sonstige Aktoren\64 Leinwand An&Hoch\IRpauseLeinwandHoch]*/, true);
if ($IPS_SENDER == "RunScript") {
//COMPort_SendText(20531 /*[Serial Port 17 / 3-1..4a+b]*/ , "\xffId\10\xfe");
ModBus_WriteCoil(41500 /*[WagoPorts schreiben\Port63 Leinwand (230V/Stop)]*/,true); //Strom AN
IPS_Sleep (2000);
ModBus_WriteCoil(16231 /*[WagoPorts schreiben\Port64 Leinwand AUF]*/,true); //Taste hoch drcken
IPS_Sleep (500); // warte
ModBus_WriteCoil(16231 /*[WagoPorts schreiben\Port64 Leinwand AUF]*/,false); //Taste hoch loslassen
IPS_SetScriptTimer($IPS_SELF, 1*60); // Zeit in Sekunden (als Formel)
} else {
ModBus_WriteCoil(41500 /*[WagoPorts schreiben\Port63 Leinwand (230V/Stop)]*/,false); //Strom AUS
IPS_SetScriptTimer($IPS_SELF, 0);
}
?>
Wenn jemand sich findet für eine Hilfe, bitte nach Art „PHP für Dummis“ erklären. Damit es nicht nur drinn steht, sondern ich nun hoffentlich auch mal raffe:rolleyes:
Gruß und Danke
Jan