Hallo Mitstreiter,
ich habe in einem größeren Projekt insgesamt 5*Wago, davon 3 an IPS angeklemmt, die Beleuchtung ist nahezu ausschließlich Dali, Taster, Raumcontroller, Heizungs- und Jalousiesteuerung erfolgt über EIB mit enprechenden Klemmen.
Problem 1:
Bei einem Stromausfall des Switch haben sich die 3 Wagos mit Socket Error aus dem Staub gemacht, und nicht wieder Anschluss gefunden. Bei einer Fehlkonfiguration mit dem selben Switch passierte es ebenfalls mal.
Abhilfe zu 1: Ich habe jetzt alle 10 Minuten ein Script mit
IPS_ApplyChanges(16104 /[Client Socket]/ );
IPS_ApplyChanges(22587 /[Client Socket]/ );
IPS_ApplyChanges(56102 /[Client Socket]/ );
laufen.
Ist das vernünftig, oder können da Daten verloren gehen, die während der Zeit ankommen?
Problem 2 ist nämlich:
bei einem Script zur Voreinstellung von Leuchtszenarien gehen immer wieder ein paar Lampen am Ende des Scripts ‚case 9:‘ nicht aus. Das Script ist hässlich, hat aber bei weniger Leuchtengruppen noch problemlos funktioniert. In die Wago wird dabei nur der entsprechende Wert in die zugehörigen Register geschrieben. Der Dimmvorgang läuft in der Wago ab, naja, oder halt nicht. Hat wer eine Idee, wo ich da ansetzen könnte?
<?
SetValue($_IPS[‚VARIABLE‘], $_IPS[‚VALUE‘]);
switch ($_IPS[‚VALUE‘])
{
case 1:
//ph
ModBus_WriteRegisterByte(59454 /[Modbusvariable\VT05\R04 Küche\r04bel]/ , 3);
ModBus_WriteRegisterByte(13283 /[Modbusvariable\VT05\R05 Flur\r05bel]/ , 5);
ModBus_WriteRegisterByte(35816 /[Modbusvariable\VT05\Terrasse\r01belaussen]/ , 1);
ModBus_WriteRegisterByte(51789 /[Modbusvariable\VT05\R03 Essen\r03beltisch]/ , 30);
ModBus_WriteRegisterByte(15567 /[Modbusvariable\VT05\R03 Essen\r03beltreppe]/ , 3);
ModBus_WriteCoil(50729 /[Modbusvariable\VT05\R01 Wohnen\RGB_Schalten]/ ,true);
ModBus_WriteCoil(24375 /[Modbusvariable\VT05\R04 Küche\RGB_Schalten]/ ,true);
ModBus_WriteRegisterByte(46197 /[Modbusvariable\VT05\R01 Wohnen\Steh_l]/ , 12);
ModBus_WriteRegisterByte(34721 /[Modbusvariable\VT05\R01 Wohnen\steh_r]/ , 22);
//1og
ModBus_WriteRegisterByte(47346 /[Modbusvariable\VT04\Freisitz\ModBus Gerät]/ , 1);
ModBus_WriteRegisterByte(20264 /[Modbusvariable\VT04\R21-23 Flurbereich\ModBus Gerät]/ , 5);
break;
case 2:
break;
case 9:
// ph
ModBus_WriteRegisterByte(39818 /[Modbusvariable\VT05\R01 Wohnen\r01bel]/ , 0);
ModBus_WriteRegisterByte(48310 /[Modbusvariable\VT05\R03 Essen\r03bel]/ , 0);
ModBus_WriteRegisterByte(59454 /[Modbusvariable\VT05\R04 Küche\r04bel]/ , 0);
ModBus_WriteRegisterByte(13283 /[Modbusvariable\VT05\R05 Flur\r05bel]/ , 0);
ModBus_WriteRegisterByte(56314 /[Modbusvariable\VT05\R06 Toilette\r06bel]/ , 0);
ModBus_WriteRegisterByte(28635 /[Modbusvariable\VT05\R07 Vorrat\r07bel]/ , 0);
ModBus_WriteRegisterByte(54280 /[Modbusvariable\VT05\R08 Technik\r08bel]/ , 0);
ModBus_WriteRegisterByte(51789 /[Modbusvariable\VT05\R03 Essen\r03beltisch]/ , 0);
ModBus_WriteRegisterByte(15567 /[Modbusvariable\VT05\R03 Essen\r03beltreppe]/ , 0);
ModBus_WriteRegisterByte(46197 /[Modbusvariable\VT05\R01 Wohnen\Steh_l]/ , 0);
ModBus_WriteRegisterByte(34721 /[Modbusvariable\VT05\R01 Wohnen\steh_r]/ , 0);
ModBus_WriteCoil(50729 /[Modbusvariable\VT05\R01 Wohnen\RGB_Schalten]/ ,false);
ModBus_WriteCoil(24375 /[Modbusvariable\VT05\R04 Küche\RGB_Schalten]/ ,false);
ModBus_WriteRegisterByte(35816 /[Modbusvariable\VT05\Terrasse\r01belaussen]/ , 0);
// 1og
ModBus_WriteRegisterByte(47346 /[Modbusvariable\VT04\Freisitz\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(10457 /[Modbusvariable\VT04\R09 Schlafen\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(19654 /[Modbusvariable\VT04\R10 Ankleiden\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(20868 /[Modbusvariable\VT04\R11 Badbereich\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(57066 /[Modbusvariable\VT04\R13 Arbeit\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(38544 /[Modbusvariable\VT04\R15 Fitness\li15]/ , 0);
ModBus_WriteRegisterByte(17177 /[Modbusvariable\VT04\R16 Gästezimmer\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(31613 /[Modbusvariable\VT04\R17 Gästebad\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(27636 /[Modbusvariable\VT04\R19 Gästetoilette\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(57855 /[Modbusvariable\VT04\R20 Hauswirtschaftsraum\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(20264 /[Modbusvariable\VT04\R21-23 Flurbereich\ModBus Gerät]/ , 0);
ModBus_WriteRegisterByte(17939 /[Modbusvariable\VT04\R24\bel24]/, 0);
break;
case 10:
// ph
ModBus_WriteRegisterByte(39818 /[Modbusvariable\VT05\R01 Wohnen\r01bel]/ , 100);
ModBus_WriteRegisterByte(48310 /[Modbusvariable\VT05\R03 Essen\r03bel]/ , 100);
ModBus_WriteRegisterByte(59454 /[Modbusvariable\VT05\R04 Küche\r04bel]/ , 100);
ModBus_WriteRegisterByte(39837 /[Modbusvariable\VT05\R04 Küche\r04belLED]/ , 100);
ModBus_WriteRegisterByte(13283 /[Modbusvariable\VT05\R05 Flur\r05bel]/ , 100);
ModBus_WriteRegisterByte(56314 /[Modbusvariable\VT05\R06 Toilette\r06bel]/ , 100);
ModBus_WriteRegisterByte(28635 /[Modbusvariable\VT05\R07 Vorrat\r07bel]/ , 100);
ModBus_WriteRegisterByte(54280 /[Modbusvariable\VT05\R08 Technik\r08bel]/ , 100);
ModBus_WriteRegisterByte(46197 /[Modbusvariable\VT05\R01 Wohnen\Steh_l]/ , 100);
ModBus_WriteRegisterByte(34721 /[Modbusvariable\VT05\R01 Wohnen\steh_r]/ , 100);
ModBus_WriteRegisterByte(35816 /[Modbusvariable\VT05\Terrasse\r01belaussen]/ , 100);
ModBus_WriteRegisterByte(51789 /[Modbusvariable\VT05\R03 Essen\r03beltisch]/ , 100);
ModBus_WriteRegisterByte(15567 /[Modbusvariable\VT05\R03 Essen\r03beltreppe]/ , 100);
ModBus_WriteCoil(50729 /[Modbusvariable\VT05\R01 Wohnen\RGB_Schalten]/ ,true);
ModBus_WriteCoil(24375 /[Modbusvariable\VT05\R04 Küche\RGB_Schalten]/ ,true);
// 1.OG
ModBus_WriteRegisterByte(47346 /*[Modbusvariable\VT04\Freisitz\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(10457 /*[Modbusvariable\VT04\R09 Schlafen\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(19654 /*[Modbusvariable\VT04\R10 Ankleiden\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(20868 /*[Modbusvariable\VT04\R11 Badbereich\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(57066 /*[Modbusvariable\VT04\R13 Arbeit\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(38544 /*[Modbusvariable\VT04\R15 Fitness\li15]*/ , 100);
ModBus_WriteRegisterByte(17177 /*[Modbusvariable\VT04\R16 Gästezimmer\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(31613 /*[Modbusvariable\VT04\R17 Gästebad\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(27636 /*[Modbusvariable\VT04\R19 Gästetoilette\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(57855 /*[Modbusvariable\VT04\R20 Hauswirtschaftsraum\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(20264 /*[Modbusvariable\VT04\R21-23 Flurbereich\ModBus Gerät]*/ , 100);
ModBus_WriteRegisterByte(17939 /*[Modbusvariable\VT04\R24\bel24]*/, 100);
break;
default:
}
ips_sleep(100);
SetValue($_IPS[‚VARIABLE‘], 0);
?>