n LCN Ausgänge/Relais über 1 Skript im Dashboard schalten

Dieses Skript mit einem Button/ExecImage verknüpfen (OnClick) und die InstanzID in die SYMID eintragen.


<?

 $id = (int)$IPS_COMPONENT;
 
 if(LCN_GetUnit($id) == 0)
 {
 
     $current = IPS_GetStatusVariableID($id, 'Intensity');
     $current = GetValue($current);
 
     if($current == 0)
     {
      $current = 100;
     } else {
      $current = 0;
     }
 
     LCN_SetIntensity($id, $current, 3);

 } else {
 
     $current = IPS_GetStatusVariableID($id, 'Status');
     $current = !GetValue($current);

     LCN_SwitchRelay($id, $current);
     
 }
 
?>

Um die „Intensity“ Variable zu visualisieren kann die Bitmaske verwendet werden. (Siehe Anlage)

lcnbitmask.png

Hallo,
ich versuche im Dashboard über einen Button ein Licht zu schalten. Klappt bisher nicht.

Habe den PHP Code in ein Script kopiert.
Welche Instanz muss in IPSYMID eingetragen werden ?
Muss im Komponenten Editor etwas eingetragen werden ?

Grüße
Volker

Zimmer3.PNG

KOmp-Editor.PNG

Du musst die 28333 in die SYMID eintragen.

paresy

Hallo
um das Script oben unter V4 zum laufen zu bringen bedarf es ein paar kleiner Anpassungen der Befehle.
Hier das script wie es aktuell bei mir zum Einsatz kommt.
Gruß
Joachim


<?
// Übergabe der ID vom Dashboard 
 $id = (int)$_IPS['COMPONENT'];

//LCN Ausgang oder Relais?
 if (IPS_GetProperty($id, "Unit") == 0) 
  {
     // wenn Ausgang
     $current = IPS_GetVariableIDByName('Intensität', $id);
     $current = GetValueInteger($current);
     if($current == 0)
     {
      $current = 100;  // oder anderen initialen Dimmwert nach Wunsch!
     } else {
      $current = 0;
     }
     LCN_SetIntensity($id, $current, 3);

 } else {
     //Wenn Relais
     $current = IPS_GetVariableIDByName('Status', $id);
     $current = !GetValue($current);
     LCN_SwitchRelay($id, $current);
 }

?>