FHZ 1300 PC an Silex

funktioniert ganz gut.

Nur wenn an dem Silex ein Stromausfall ist (bei den Umbauarbeiten zu Zeit noch häufig der Fall) ist auch die Verbindung zu IP-Symcon unterbrochen.

Der Server hängt an einer USV. Bei kurzen Stromausfällen (Gewitter) wird das auch in Zukunft der Fall sein.

Silex und die SX Virtual Link - Software verbindet dannach wieder.

IP-Symcon macht das nicht.

Ich muss ein Shut-Down und einen Neustart durchführen, damit wieder alles läuft.

Ist es sehr Aufwendig, dass IP-Symcon die Verbindung neu macht, wenn diese verloren ist?

Oder kann man die Verbindung (in einem Zeitabstand) selber prüfen?

Moinmoin,

Ich habe mein Silex mit PoE ebenfalls an einer USV hängen und deshalb keine Probleme in der Art.

Hast du darüber schonmal nachgedacht, den Silex an eine USV zu hängen?

Wie geschrieben, an der Stelle, wo der Silex und die FHZ hängen, habe ich auch ungünstige Bedingungen für die Stromzufuhr. Deshalb habe ich das mit PoE (Power over Ethernet) geregelt. Die ganze PoE-Adapter-Geschichte (Netgear) hat mich damals 15 o. 20 EUR bei e*ay gekostet…

Edit:

Netgear POE101 http://www.ciao.de/NETGEAR_POE101_Power_Over_Ethernet_Adapter_Power_Injector_PoE_Splitter__1392302 heißt der Adapter und ich hatte den für knapp 10 EUR zzgl. Versand als neu ersteigert

Ich habe im Dachgeschoss ein Switch und an diesem die Silex hängen. Also mit Power over Ethernet is da nix.

Werde wohl eine USV anhängen müssen.

Oder:

Kann man IPS ber Befehl aus IPS heraus in einem Programm abschalten und wieder starten oder ein reboot von IPS durchfürhen?

Dann könnte ich schauen ob ich einen Befehl von der einen FHZ an der anderen FHZ Empfangen kann und damit die tote FHZ erkenne.

$pfad = IPS_GetKernelDir();
IPS_Execute ($pfad."/ips.exe", "-r", true, false);

Hiermit kannst du aus einem Skript IPS schliessen und neu starten

mfG Franz

Hi!

Kann man IPS ber Befehl aus IPS heraus in einem Programm abschalten und wieder starten oder ein reboot von IPS durchfürhen?

Restart von IPS mit „ips.exe -r“. Sollte mit http://www.eyep.de/wiki/index.php/IPS_Execute funktionieren…

Oder du lässt regelmäßig den Silex anpingen, der ja sicherlich auch aus ist, wenn die FHZ stromlos ist. Wenn du kein echo request empfängst, lässt du entsprechende Reaktion von IPS folgen.

Übrigens…
Ich habe auch je Etage einen Switch und den PoE-Injector am Switch bzw. am Patchpanel eingefügt. Alle relevanten Netzwerkgeräte(inkl. Switches) hängen zudem an USV´s…

EDIT/
Der Franz war schneller :smiley:

Danke, für die Infos.
Da werde ich schon was machen daraus.

Werde gleich mal für meine Wetterstation (WsWin) ähnliches suchen.
Diese läuft auf einen nicht Intelrechner unter Windows Embeded und stürzt alle 4-14 Tage ab. Letzter Zeit mit einen Memorywriterror.

Hallo,

Welches Interface für die Wetterstation hast du ? WS2000?

Läst du die Daten der Wetterstation auch in IPS reinlaufen ?

Ich hab das Problem, das mir immer wieder Wetterdaten verloren gehen, da ich nur das kleine Wetterinterface für die WS2000 habe.
( Absturz IPS, Reboot IPS … )
Kann man die Daten irgend wie Zwischenpuffern ?

KHS

Ich habe ein WS2500-PC an der Fujitsu-Siemens mit Windows XP Embeded.
Keine Harddisk, nur eine Compact-Flash-Karte. Die Programme und Daten sind am Server. Dieser PC stürzt immer wieder mit Memory-Fehler ab.
IP-Symcon ist überhaupt nicht darauf gelaufen.

Die WS2500-PC hat eine Batterie und einen Buffer für ein paar Tage Daten im 15-Minutenrythmus.
Als Software habe ich WSWin von http://www.pc-wetterstation.de im Einsatz.

Mein Script in WSWIN:

%customfile=homecontrol.txt%
%unit_off%
Datum: %ws_day%.%ws_month%.%ws_year%
Zeit: %ws_hour%:%ws_minute%
%longslabel[1]%: %curval[1]%
%longslabel[2]%: %curval[2]%
%longslabel[5]%: %curval[5]%
%longslabel[6]%: %curval[6]%
Tempmin: %curminmaxhour[1,0,2]%
Zeitmin: %mintimecurday[2]%
Tempmax: %curminmaxhour[2,0,2]%
Zeitmax: %maxtimecurday[2]%
Sonnenakt: %curval[37]%
Sonnenlastst: %curminmaxhour[4,1,37]%
Sonnenstunden: %sunday%
Sonnenint: %sunintenscur%
Sonnenschein: %sunstart%
SonneLux: %sunstartlux%
SonnenArt: %suntxt%
AktWind: %windms%
Sonnenaufgang: %ws_sunrise%
Sonnenuntergang: %ws_sunset%

In IP-Symcon verwende ich dann einige Daten in:


/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : GetWS2000Data.ips.php.ips.php
Trigger  : 
Interval : 
*/
$lines = file('L:\WsWin\Html\homecontrol.txt');
/*
$zz = GetValueInteger("TimeZaehler");
if ($zz>100) {
 $zz=0;
}
$zz++;
SetValueInteger("TimeZaehler", $zz);
$Doseon =GetValueBoolean("Dose2211");
if ($Doseon == True) {
 FS20_SwitchMode(20436, False);
 SetValueBoolean('InfoVar',false);
}
else {
 FS20_SwitchMode(20436, True);
 SetValueBoolean('InfoVar',true);
}
*/
foreach($lines as $line) {
   $pos=strpos($line,":");
   $variable = substr($line,0,$pos);
   switch ($variable) {
   case 'Sonnenaufgang':
      $pos=strpos($line,":");
      SetValueString('Sonnenaufgang',trim(substr($line,$pos+1)));
      break;
   case 'Sonnenuntergang':
      $pos=strpos($line,":");
      SetValueString('Sonnenuntergang',trim(substr($line,$pos+1)));
      break;
   case 'AktWind':
      $pos=strpos($line,":");
      SetValueFloat('AktWind',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      break;
   case 'Temperatur Außen':
      $pos=strpos($line,":");
      SetValueFloat('Aussentemp',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      break;
   case 'Temperatur Innen':
      $pos=strpos($line,":");
      SetValueFloat('Innentemp',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      break;
   case 'Temperatur 4':
      $pos=strpos($line,":");
      SetValueFloat('GStemp',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      break;
   case 'Temperatur 5':
      $pos=strpos($line,":");
      SetValueFloat('Pooltemp',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      $Pooltemp=24.00;
      break;
   case 'Tempmax':
      $pos=strpos($line,":");
      SetValueFloat('Tempmax',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      break;
   case 'Tempmin':
      $pos=strpos($line,":");
      SetValueFloat('Tempmin',doubleval(str_replace(',','.',trim(substr($line,$pos+1)))));
      break;
   case 'Sonnenstunden':
      $pos=strpos($line,":");
      SetValueString('Sonnenstunden',trim(substr($line,$pos+1)));
      break;
   case 'Sonnenlastst':
      $pos=strpos($line,":");
      SetValueInteger('SonneLastSt',intval(trim(substr($line,$pos+1))));
      break;
   case 'Zeitmax':
      $pos=strpos($line,":");
      SetValueString('Zeitmax',trim(substr($line,$pos+1)));
      break;
   case 'Zeitmin':
      $pos=strpos($line,":");
      SetValueString('Zeitmin',trim(substr($line,$pos+1)));
      break;
   case 'Zeit':
      $pos=strpos($line,":");
      SetValueString('TempZeit',trim(substr($line,$pos+1)));
      break;
   case 'Datum':
      $pos=strpos($line,":");
      SetValueString('TempDatum',trim(substr($line,$pos+1)));
      break;
   case 'SonnenArt':
      $pos=strpos($line,":");
      SetValueString('Sonne',trim(substr($line,$pos+1)));
      break;
   }
}
$varname = "WETTER_www-wetter-net.Data";  // this ips-variable must be type 'String' !
$s       = GetValueString( $varname);
$data    = wddx_deserialize( $s);
$heute_min=(float)$data['VORHERSAGE'][1]['TempMin'];
$heute_max=(float)$data['VORHERSAGE'][1]['TempMax'];
$Tempmin=GetValueFloat('Tempmin');
$Tempmax=GetValueFloat('Tempmax');
//$Pooltemp=GetValueFloat('Pooltemp');
$Aussentemp=GetValueFloat('Aussentemp');
$SonneLastSt=GetValueInteger('SonneLastSt');
$Baden=GetValueBoolean('Baden');
$Tempzeit=substr(GetValueString('TempZeit'),0,2);
$AktWind=GetValueFloat('AktWind');
$Sonnenaufgang=GetValueString('Sonnenaufgang');
$Sonnenuntergang=GetValueString('Sonnenuntergang');
$Markieseautomatik =GetValueBoolean('MarkieseAutomatik');
if ($Tempmax>$heute_max)
{
 SetValueFloat('TempMaxKor',$Tempmax-$heute_max);
}
if ($Tempzeit<='18')
{
 if ($Tempmin<$heute_min)
 {
  SetValueFloat('TempMinKor',$Tempmin-$heute_min);
 }
}
if ($Tempzeit=='21')
{
 SetValueFloat('TempMaxKor',$Tempmax-$heute_max);
}
if ($Tempzeit=='10' or $Tempzeit=='11' or $Tempzeit=='17')
{
 SetValueFloat('TempMinKor',$Tempmin-$heute_min);
}
$Sonnetext=substr(GetValueString('Sonne'),0,4);
if ($SonneLastSt>0 or $Sonnetext=='Sonn' or $Sonnetext=='sonn' or $Sonnetext=='leic' or $Aussentemp>=$Pooltemp or $Pooltemp>30 or $Baden==True)
{
 FS20_SwitchMode(13011, True);
 FS20_SwitchMode(55542, False);

}
else
{
 FS20_SwitchMode(13011, False);
 FS20_SwitchMode(55542, True);
}
if ($AktWind>13)
{
 SetValueBoolean("MarkieseAutomatik", False);
 FS20_SwitchMode(49511, False);
 FS20_SwitchMode(62900, True);
 SetValueBoolean('MarkieseAusfahren',False);
 SetValueBoolean('MarkieseEinfahren', True);
 IPS_RunScript('MarkieseStart');
}
else
{
 $Zeit=date("H:i");
 SetValueString('Zeit',$Zeit);
 if ($Markieseautomatik==True)
 {
  if ($Zeit>$Sonnenuntergang)
  {
   //Einfahren
   FS20_SwitchMode(62900, True);
   FS20_SwitchMode(49511, False);
   SetValueBoolean('MarkieseAusfahren',False);
   SetValueBoolean('MarkieseEinfahren', True);
   IPS_RunScript('MarkieseStart');
  }
  else
  {
   if ($Zeit>$Sonnenaufgang)
   {
    //Ausfahren
    FS20_SwitchMode(49511, True);
    FS20_SwitchMode(62900, False);
    SetValueBoolean('MarkieseEinfahren', False);
    SetValueBoolean('MarkieseAusfahren',True);
    IPS_RunScript('MarkieseStart');
   }
  }
 }
}
?>

Wenn es noch Fragen gibt, einfach nochmals posten.

Kann ich feststellen ob die FHZ noch ansprechbar ist?
Die Silex - Gegenstelle ist wieder automatisch online, daher auch per Ping erreichbar. Die FHZ ist leider nicht online. Dazu muss ich IP-Symcon beenden und wieder starten.
Man bekommt ja auch keine Fehlermeldung.

Ich bekomme auch kein False zurück, wenn eine Befehl über dei FHZ absetze:
if (FS20_SwitchMode(26797, True)==False)
{
$pfad = IPS_GetKernelDir();
IPS_Execute ($pfad."/ips.exe", „-r“, true, false);
}

Hallo Herbert,

es gibt in der V1 keine Möglichkeit die FHZ die sich am Client Socket befindet abzufragen. In der V2 hat das paresy besser gemacht und verbindet automatisch neu.

Naja, ist es viel Arbeit, auf Version 2 umzusteigen?

Ich habe 20 Scpits, davon sind 2 größer. 2 FHZ (eine über Silex), 20 Schalter und 4 FHT.

Ja Du sagst es. Habe auch unter anderem 2 x FHZ, davon 1 x am XPORT (fällt aber äußerst selten aus). Aber die V2 hat viele Vorteile. Naja jetzt kommen ja bald viele Winterabende…:smiley:

Der Silex, der immerwieder ausgefallen ist, ist dann schlussendlich ganz ausgefallen. Ich habe dann den defekten SX-2000 gegen einen SX-2000U2 getauscht und seitdem gibt es auch keinen Ausfall mehr.