+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,191

    Talking 8 Fach Seriell Relaiskarte Conrad

    Conrad Artikelnummer 197730

    Diese Skript erstellt eine Dummy Instanz und verknüft diese mit einer Status Variable, sodass ein Relais über das WebFront geschaltet werden kann. Durch Replikation des Skriptes können alle Relais aller Karte angesprochen werden.

    PHP-Code:
    <?

     $karte  
    1//1-255, 0 = broadcast
     
    $relais 1//1-8

     
    $io 0//I/O Instanz -> 19200,8,1,N
     
     //AB HIER NICHTS MEHR ÄNDERN
     //-----------------------------------------------------------------------------
     
    if($io == 0)
      die(
    "Keine I/O Instanz angegeben!");

     
    IPS_SetHidden($IPS_SELFtrue);
     
    IPS_SetName($IPS_SELF"Handler");

     
    $object IPS_GetObject($IPS_SELF);
     
    $parentID $object['ParentID'];

     
    $parentObject IPS_GetObject($parentID);
     if (
    $parentObject['ObjectType'] !== 1)
     {
       
    $instanceID IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
       
    IPS_SetParent($instanceID$parentID);
       
    $parentID $instanceID;
       
    IPS_SetParent($IPS_SELF$parentID);
       
    IPS_SetName($instanceID"Karte ".$karte.", Relais ".$relais);
     }

     
    $vid CreateVariableByName($parentID"Status"0);
     
    IPS_SetVariableCustomProfile($vid"~Switch");
     
    IPS_SetVariableCustomAction($vid$IPS_SELF);

     if(
    $IPS_SENDER == "WebFront" || $IPS_SENDER == "Switch")
     {
        if(
    $IPS_VALUE) {
          
    SetOn();
       } else {
            
    SetOff();
        }
     } else {
       if(!
    GetValue($vid)) {
          
    SetOn();
       } else {
            
    SetOff();
        }
     }
     
    function 
    SetOn()
    {
        global 
    $karte$relais$vid;
        
    SendData(chr(6).chr($karte).chr(<< ($relais-1)));
        
    SetValue($vidtrue);
    }

    function 
    SetOff()
    {
        global 
    $karte$relais$vid;
        
    SendData(chr(7).chr($karte).chr(<< ($relais-1)));
        
    SetValue($vidfalse);
    }

    function 
    SendData($data)
    {
        global 
    $io;
        
    $chk chr(ord($data{0}) ^ ord($data{1}) ^ ord($data{2}));
        
    COMPort_SendText($io$data.$chk);
    }

    function 
    CreateVariableByName($id$name$type)
    {
        global 
    $IPS_SELF;
        
    $vid = @IPS_GetVariableIDByName($name$id);
        if(
    $vid === false)
        {
            
    $vid IPS_CreateVariable($type);
            
    IPS_SetParent($vid$id);
            
    IPS_SetName($vid$name);
            
    IPS_SetInfo($vid"this variable was created by script #$IPS_SELF");
        }
        return 
    $vid;
    }

    ?>
    In weiteren Skripten können die Relais folgendermaßen geschaltet werden:

    PHP-Code:
    //An
     
    IPS_RunScriptEx($id_vom_obrigen_skript, Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));

    //aus
     
    IPS_RunScriptEx($id_vom_obrigen_skript, Array("IPS_SENDER" =>  "Switch""IPS_VALUE" => false)); 

  2. #2
    Registriert seit
    May 2010
    Beiträge
    56

    Standard Alle Relais einer karte mit einer Aktion schalten?

    Hi,
    wie kann mann alle Relais mit einmal Tasten, Ein oder Aus schalten?

    Ich habe es schon mit einem script probiert:

    PHP-Code:
    <?
    //AUS
    IPS_RunScriptEx(29389 /*[Relaiskarte Xport\Ausgang 1 (Karte 0, Relais 1)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(26601 /*[Relaiskarte Xport\Ausgang 2 (Karte 0, Relais 2)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(53781 /*[Relaiskarte Xport\Ausgang 3 (Karte 0, Relais 3)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(58346 /*[Relaiskarte Xport\Ausgang 4 (Karte 0, Relais 4)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(34748 /*[Relaiskarte Xport\Ausgang 5 (Karte 0, Relais 5)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(15646 /*[Relaiskarte Xport\Ausgang 6 (Karte 0, Relais 6)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(43951 /*[Relaiskarte Xport\Ausgang 7 (Karte 0, Relais 7)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));
    IPS_RunScriptEx(29802 /*[Relaiskarte Xport\Ausgang 8 (Karte 0, Relais 8)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => false));

    ?>
    PHP-Code:
    <?
    //EIN
    IPS_RunScriptEx(29389 /*[Relaiskarte Xport\Ausgang 1 (Karte 0, Relais 1)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(26601 /*[Relaiskarte Xport\Ausgang 2 (Karte 0, Relais 2)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(53781 /*[Relaiskarte Xport\Ausgang 3 (Karte 0, Relais 3)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(58346 /*[Relaiskarte Xport\Ausgang 4 (Karte 0, Relais 4)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(34748 /*[Relaiskarte Xport\Ausgang 5 (Karte 0, Relais 5)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(15646 /*[Relaiskarte Xport\Ausgang 6 (Karte 0, Relais 6)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(43951 /*[Relaiskarte Xport\Ausgang 7 (Karte 0, Relais 7)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));
    IPS_RunScriptEx(29802 /*[Relaiskarte Xport\Ausgang 8 (Karte 0, Relais 8)\Handler]*/ , Array("IPS_SENDER" => "Switch""IPS_VALUE" => true));

    ?>
    Ich habe für jedes relais ein IPS_RunScriptEx eintrag angelegt.

    Wenn ich das Skript ausführe schalten immer sporadisch ein paar relais ein!



    Was mache ich falsch? Kann das sein das eine zeitüberschreitung eintritt, weil alle befehle zur selben zeit getätigt werden?

    Ich wäre für eure hilfe sehr dankbar!

  3. #3
    Registriert seit
    Aug 2010
    Beiträge
    677

    hast du das lösen können? Vielleicht ein kleines Delay einbauen zwischen den Befehlen? Jede Relaisschliessung dürfte eine Menge Störfunk triggern...

  4. #4
    Registriert seit
    Jan 2012
    Ort
    Limburgerhof (RLP)
    Beiträge
    328

    Standard Initialisierung

    Kann gelöscht werden, habe das keine Fragen beit der Kategorie überlsen..
    Geändert von daniel88 (31.01.13 um 08:21 Uhr)
    Server: IPS 5.n | IPSView | Ubuntu 18.04LTS | ESXI 6.7 | Xeon E3-1245V2 | 16GB ECC Ram
    Hardware: CCU2 | WAGO 889 | KNX | 1wire | Unifi
    Media: PLEX | Denon-AVR | ChromeCast | Squeezebox

  5. #5
    Registriert seit
    Feb 2018
    Beiträge
    9

    Standard wie anschließen? was eintragen?

    ich würde gerne 2 8-fach Relaiskarten der Firma Conrad mit IPS ansteuern.

    mein Fragen:

    1.)
    im Scrit findet man folgende Zeile:
    $io = 0; //I/O Instanz -> 19200,8,1,N

    was muss hier gesetzt werden?

    2.)
    wie wird die Relaiskarte angeschlossen? mit 9 pol RS232 oder USB?

    Danke für eure Antwort.
    Martin

Ähnliche Themen

  1. FHT80b-2 Conrad vs. ELV
    Von andik im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 2
    Letzter Beitrag: 23.12.09, 10:52
  2. Conrad 8-fach seriell Relaisplatine mit COM Port Modul ansteuern.
    Von bastelwasti im Forum Skripte, PHP, SQL
    Antworten: 5
    Letzter Beitrag: 15.04.09, 12:11
  3. Conrad Rauchmelder RM 100
    Von Jimmy Neutron im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 1
    Letzter Beitrag: 06.07.06, 22:37
  4. Conrad FHT80B mit ELV 80TF
    Von Jimmy Neutron im Forum Allgemeine Diskussion
    Antworten: 3
    Letzter Beitrag: 13.02.06, 08:24
  5. Funk-Schalt-Steckdose FS20 ST-2 von Conrad
    Von Xenon im Forum Allgemeine Diskussion
    Antworten: 9
    Letzter Beitrag: 23.08.05, 19:43