Habe etwas ähnliches gefunden. Geht leider auch nicht. Wieder kommen im Debug keine Rückmeldungen. Habe aber etwas von einer php-Klasse gelesen. Muss ich mal probieren. Ich vermute ein Problem mit SSH oder eine fehlende Extension in meinem IPS. Denn wenn es bei vielen geht … Irgenwie wird es doch gehen.
PS: Vielleicht kann man ja auch einen Windows-PC so hoch- und runterfahren. :rolleyes:
Das geht schon alles , überprüfe erstmal ob der Port für ssh bei dir eventuell nen anderer ist , genau wie bei der Register variablen . Es gibt einige Fall stricke aber es geht zu 199%
Allerdings ohne jeglichen weiteren Prompt. Diesen Text sehe ich auch im Debug-Fenster des Client-Sockets. Somit verhält sich das IPS wie die Telnet-Verbindung via cmd. Beim Tippen von irgendetwas und anschließendem Drücken der Enter-Taste kommt das:
SSH-2.0-OpenSSH_6.4p1-hpn14v2 FreeBSD-openssh-portable-6.4.p1,1
Protocol mismatch.
Verbindung zu Host verloren.
Nehme ich auf dem gleichen Rechner (putty), spricht das NAS mit mir ("login as: ") und führt nach Eingabe von Name / Passwort den Befehl
Aber per Telnet SSH aufrufen wie du es versuchst wird nie klappen.
Das ist schon klar. Ich wollte damit nur schauen, dass sich auf Port 22 etwas tut und ob das NAS antwortet.
Hast Du eine Registervariable dafür erstelt? Weil du es erwähntest. Muss man im IPS SSL oder ähnliches installieren oder so? Ein IPS-Updatebringt aber auch nichts. Das Senden an Port 22 scheint zu gehen, aber es kommt keine Antwort auf meine „Sendung“. Wie gesagt, über putty geht alles. Also ist der Fehler wohl nicht im NAS.
Habe also einen ClientSocket mit IP und Port 22 angelegt und diese ID in dein Script übernommen. Das WOL habe ich mal rausgenommen - extra Script.
<?
$user = "root"; // User für den Login, eventuell "root"
$pw = "nas4free"; // Adminpasswort der Qnap
$id = 50177 /*[Client Socket - Nas4free]*/; //Client Socket auf port 23
CSCK_SendText($id,$user.chr(13));
IPS_Sleep(500);
CSCK_SendText($id,$pw.chr(13));
IPS_Sleep(500);
CSCK_SendText($id, "shutdown -p now".chr(13));
?>
Moin Andreas,
ich bin bissel verwirrt? Welchen Port nimmst denn jetzt?
Im Text schreibst was von PORT 22 und in deinem Skript steht bei ClientSockt " Port auf 23 "!?
Also…. ich benutze das Skript (das Original ) für mein Synology und ich hatte Probleme, das ich alles zu schnell
abgefragt habe. Das NAS kam nicht zum Antworten. Also habe ich die IPS_Sleep hoch gesetzt. Erst dann bekam ich eine Antwort bzw. mein Skript machte das was es sollte!
Hier mein Skript:
Du wirst niemals Klartext an einen SSH-Port senden können!
Immerhin soll SSH ja sicher sein und ist somit verschlüsselt.
Darum wird dieses Script hier für Telnet niemals bei SSH gehen.
Bemühe bitte die Suche im Forum, gibt hier div. Umsetzungen um SSH-Verbindungen zu verwenden.
Z.B.http://www.ip-symcon.de/forum/showthread.php?t=20482
Michael
[ol]
[li]Klasse downloaden[/li][li]Entpacken in C:\ip-symcon\scripts\phpseclib[/li][li]Script erstellen (und Daten anpassen)[/li][li]bei mir stellte sich sofort nach ersten Starten Freude über den Erfolg ein:)[/li][/ol]
Hallo,
das Thema ist zwar schon etwas länger her, aber vielleicht kann mir jemand helfen.
Ich bin gerade neu bei IP Symcon (Symbox) und versuche nun meine DS1813+ per Script zu starten und zu beenden.
Ich habe hier einige Infos gefunden und ausprobiert (Danke).
Der Teil für das Beenden funktioniert.
Allerdings habe ich ein paar Probleme mit dem Starten. Lasse ich das NAS herunterfahren und warte nur kurz, dann funktioniert auch der Teil für das Starten. Ist die Zeitspanne im ausgeschalteten Zustand länger, dann wacht das NAS leider nicht auf. Jedoch kann ich dann per Fritzbox die DS starten. Es wäre echt genial wenn ich auch das Aufwachen/ Starten per IPS hinbekommen könnte.
Vielleicht kann mir jemand helfen, DANKE
Hier der wesentliche Teil für das Aufwachen / Starten (Quelle: dieses Forum)
Schau dir mal das „Fritzbox Project“ von Nall chan an. Damit kannst du das WOL der FritzBox verwenden
Alternativ einfach selbst ein WOL-Skript in IPS einbauen. Glaube ich hatte da auch mal was geposted beim SonyTV oder irgendwo anders Ansonsten gibt es auf GitHub PHP Vorlagen für WOL.
WOL muss natürlich beim NAS eingerichtet und aktiv sein Dann klappt das egal nach welcher „Offline-Zeitspanne“.
vielen Dank für die Antwort.
Mit dem FB Projekt funktioniert es. Leider stürzt meine SymBox mit aktuellen Updates nach einiger Zeit ab, nachdem ich das FB Projekt installiert habe.
Schade das es nicht auch ohne die Funktion der Fritzbox geht.
WOL ist für alle Ports aktiviert, sonst würde es auch nicht mit der Funktion der Fritzbox funktionieren.
Ich fand es nur komisch, dass das zuvor gepostete Script funktioniert, wenn die DS nicht allzu lange aus ist.
Irgendwann wird IPS4 nicht mehr Beta sein und dann auch stabil laufen…so lange musst du dich dann wohl leider noch gedulden, wenn wirklich kein anderes WOL Skript funktioniert.
Aber Beta bleibt halt Beta
Moin… Danke für den Link. Bekomme es nicht hin mit meinem Skript( Post #46). Wenn ich mich per Putty anmelde, funktioniert das so, aus IPS per PHP nicht.
Ich sehe nicht mal den Login im Log der Synology wenn ich es per IPS versuche.
Das war vorher auch anders.
Magst du das posten/bereitstellen?
Ich möchte das NAS nur irgendwie per IPS wieder runterfahren können.
Ich habe mein NAS nur sporadisch an und beim verlassen der Wohnung immer runter gefahren.
Grüße,
Peter
falls du damit etwas anfangen kannst, hier mein Script…allerdings war das eines meiner ersten damals…es ist super schlampig programmiert…Fachleute hier werden die Hände über dem Kopf zusammenschlagen…aber bei mir funktionierte es mit IPS 3.4 und nun auch mit 4.0 und Syno 6.x…
<?
// Konfigbereich :
$mac = "0011320C5BCB"; //MAC Adresse der Syno
$ip = "255.255.255.255"; // Broadcast adresse
$user = "HIER USERNAME"; // User für den Login, eventuell "root"
$pw = "HIER PASSWORT"; // Passwort der Syno
$id = 59678 /*[Synology Socket]*/; //Client Socket auf port 23
$power = GetValueInteger(40816 /*[Unsere Wohnung\APC USV 550\Back-UPS RS 550G\Watt]*/);
// Ab hier nichts mehr ändern
################################################################################
function wake($ip, $mac, $port)
{
$nic = fsockopen("udp://" . $ip, $port);
if($nic)
{
$packet = "";
for($i = 0; $i < 6; $i++)
$packet .= chr(0xFF);
for($j = 0; $j < 16; $j++)
{
for($k = 0; $k < 6; $k++)
{
$str = substr($mac, $k * 2, 2);
$dec = hexdec($str);
$packet .= chr($dec);
}
}
$ret = fwrite($nic, $packet);
fclose($nic);
if($ret)
return true;
}
return false;
}
if($IPS_SENDER == "Execute"){
echo "Dieses Script kann nicht von Hand gestartet werden.";
//return;
}elseif ($IPS_SENDER == "WebFront"){
SetValue(42236 /*[Unsere Wohnung\Multimedia\Hauptmenü\Links\Synology Server\Power]*/, $IPS_VALUE);
if ($IPS_VALUE == true)
{ // Wake On Lan
wake($ip,$mac,23); //Port kann irgendwas sein
}
elseif($IPS_VALUE == false)
{ // Shutdown
IPS_SetVariableProfileAssociation("WOL", 1, "WOL", "", 0x005000);
//WFC_SendNotification(39346 /*[Standard]*/, 'Shutdown Synology nicht möglich !', 'Mach halt was....', 'Information', 10);
@CSCK_SendText($id, "root".chr(13));
IPS_Sleep(1500);
@CSCK_SendText($id, "rootpasswort einsetzen".chr(13));
IPS_Sleep(1500);
@CSCK_SendText($id, "poweroff".chr(13));
}
}elseif($_IPS['SENDER'] == 'Variable'){
if(GetValueBoolean(42236 /*[Unsere Wohnung\Multimedia\Hauptmenü\Links\Synology Server\Power]*/) == true){
IPS_SetScriptTimer($IPS_SELF, 150);
}
else{}
}
elseif($_IPS['SENDER'] == "TimerEvent"){
IPS_SetProperty($id, "Open", true); //I/O Instanz soll aktiviert sein.
IPS_Sleep(500);
IPS_ApplyChanges($id); //Neue Konfiguration übernehmen
IPS_SetScriptTimer($IPS_SELF, 0);
}else{
echo "Dieses Skript kann nur vom WebFront aus gestartet werden!";
}
?>
Dabei muss der erste User Administratorberechtigung haben und das zweite Passwort entspricht dem Passwort des Users ‚admin‘.
Die erste Zeile (hier Nas_Backup) ist der Hostname, kann aber auch die IP-Adresse sein.
Kann die Synology ssh ? Ich denke doch schon, dann ist es sicherlich einfacher, das per ssh zu machen:
Putty auf dem IPS-Rechner installieren ( wenn Windows, Linux hat ssh eh onboad ), ssh-key ( mit PUTTYgen ) erstellen und auf der NAS unter dem root/admin - user einbinden.
Dann aus IPS raus mit „IPS_Execute“ einen Puttyaufruf startet nach folgendem Muster