+ Antworten
Seite 2 von 2 ErsteErste 1 2
Ergebnis 11 bis 20 von 20
  1. #11
    Registriert seit
    Oct 2005
    Beiträge
    235

    Danke euch allen, alles ist mir zwar noch nicht klar, aber der nebel lichtet sich

    Ich werde mir mal ein paar komponenten zum testen besorgen - dann dürfte ich das prinzip hoffenlich verstanden haben.

    Also:

    Ein TCM 120 hat also einen Adresspool von 128 Adressen mit denen ich also max 128 aktoren ansteuern kann...
    Ich muss nochmal die API wälzen, wie ich mir da einzelne Adressen rauspicken kann.

    HJH hat mich verstanden, respekt! (ich verstehe mich manchmal selber nicht...)
    Gruß,
    Thorsten Weiss

  2. #12
    Registriert seit
    Apr 2007
    Ort
    Porta Westfalica
    Beiträge
    94

    Hallo Thorsten,

    Alles was empfangen wird wird Transparent durchgereicht.

    Nur wenn ich senden will muss ich das TCM bei den entsprechenden emfängern anlernen?
    Genauso ist es mit dem senden auch, das Telegramm wird nur durchgereicht. Das TCM wird beim Empfänger somit nicht angelernt, sondern der "IPS-enOcean-Taster".

    Ich kann also nicht ein Telegramm eines beliebeigen senders "simulieren"?
    Wenn die "32-bit transmitter ID" des Senders bekannt ist und diese auch in IPS eingeben könntest, dann könnte IPS auch einen Sender simulieren.

    Grüße,
    Jörg

  3. #13
    Registriert seit
    Jul 2006
    Ort
    Butzbach, die schöne Wetterau
    Beiträge
    1,474

    Standard Enocean

    Hy,
    ich muss dieses Thema noch mal ansprechen. Habe das ganze Forum durchsucht
    aber nichts gefunden oder kapiert.
    Also fange ich mal an, ich habe die EnOcean USB - Sende- und Empfangseinheit und wollte die nachfolgende Aktoren damit schalten.
    Besser gesagt diese teile wollte ich mir zulegen.

    • 1x FAB12-12V
    • 7x FSB12-12v DC
    • WNT12-12 DC /2A


    Alles von Eltako, wollte meine Rollos damit steuern.
    Meine Frage dazu ist, kann ich Sie über Ipsymcon ansprechen? und wenn ja, was für einn Befehl muss ich senden um einen Aktor anzusprechen?. Ein Aktor kann 2 Rollos bedienen. Hoffe das mir jemand helfen kann. Danke und schöne Ostern.
    Gruß Uwe
    (bmwm3)


  4. #14
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    21,370

    Ich hab keine Ahnung was das für Geräte sind.
    Entsprechend weiß ich auch nicht wie man sie ansprechen kann. Tut mir leid. IPS unterstützt aber eigentlich nur die PTM200 Bausteine zum schalten. Und dann sollte der Befehl ENO_SwitchMode gehen.

    paresy
    Geändert von paresy (17.04.09 um 08:31 Uhr)

  5. #15
    Registriert seit
    Sep 2007
    Beiträge
    17

    Hallo,
    ich hoffe dieses Teil funktioniert mit IPS (Peha 452 FU-EP JR UP O.A.), habe mir mal ein Teil zum probieren geordert.
    Von der Beschreibung her funktioniert zumindest das Anlernen analog eines RCM250.
    Ich sehe das auch so, dass es mit dem Befehl ENO_Switchmode funktionieren müsste. Alle weiteren "Spielereien" kann man dann ja über PHP realisieren.
    Viel Grüße
    Martin

  6. #16
    Registriert seit
    Sep 2007
    Beiträge
    17

    Dieser Rolladenempfänger (Peha 452 FU-EP JR UP O.A.) funktioniert einwandfrei!.
    Mit ENO_Switchmode "false" fährt der Rolladen hoch, mit ENO_Switchmode "true" fährt der Rolladen runter!
    Ich bin von der EnOcean Technik völlig begeistert, mein Geldbeutel allerdings weniger!
    Geändert von lavista (04.05.09 um 21:43 Uhr)

  7. #17
    Registriert seit
    Jul 2006
    Ort
    Butzbach, die schöne Wetterau
    Beiträge
    1,474

    hy,
    habe mir die oben genannten Teile gekauft.
    * 1x FAB12-12V
    * 7x FSB12-12v DC
    * WNT12-12 DC /2A
    Für Schaltschrank, kann nur sagen SUPER TEILE. Habe das Shutterskript für Enocean angepasst und schalte jetzt mit SC_Move.
    Gruß Uwe
    (bmwm3)


  8. #18
    Registriert seit
    Sep 2007
    Beiträge
    17

    Standard Shutterskript für EnOcean

    Hallo Uwe,
    würdest Du mir dein Shutterskript einmal zur Verfügung stellen?
    Ich blicke da noch nicht ganz durch wie ich das Skript anpassen kann.
    Viele Grüße
    Martin

  9. #19
    Registriert seit
    Jul 2006
    Ort
    Butzbach, die schöne Wetterau
    Beiträge
    1,474

    Zitat Zitat von lavista Beitrag anzeigen
    Hallo Uwe,
    würdest Du mir dein Shutterskript einmal zur Verfügung stellen?
    Ich blicke da noch nicht ganz durch wie ich das Skript anpassen kann.
    Viele Grüße
    Martin
    Klar doch,

    PHP-Code:
    <?
    //Variables provided by ShutterControl Module
    //IPS_LogMessage("InstanceID", $SC_INSTANCE); /* InstanceID */
    //IPS_LogMessage("Direction", $SC_DIRECTION); /* {0..2} Stop, Up, Down */
    //IPS_LogMessage("Duration", $SC_DURATION); /* ms */

    switch($IPS_SENDER)
    {

    case 
    "ShutterControl"//Script wurde vom Shuttermodul aufgerufen

    define("SC_DIRECTION_STOP"0);
    define("SC_DIRECTION_UP"1);
    define("SC_DIRECTION_DOWN"2);

    $instance IPS_GetInstance($SC_INSTANCE);
    switch(
    $instance['ModuleInfo']['ModuleID'])
    {
      case 
    "{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}"//FS20
          
    $running CreateVariableByName($SC_INSTANCE"Moving"0);
          
    $value GetValue(IPS_GetStatusVariableID($SC_INSTANCE"StatusVariable"));
          switch(
    $SC_DIRECTION)
          {
             case 
    SC_DIRECTION_STOP:
              if(
    GetValue($running))
              {
                  
    FS20_SwitchMode($SC_INSTANCE$value);
                  
    SetValue($runningfalse);
              }
              break;
             case 
    SC_DIRECTION_UP:
              if(!
    GetValue($running))
              {
                  
    FS20_SwitchMode($SC_INSTANCEtrue);
                  
    SetValue($runningtrue);
              }
              if(
    $SC_DURATION 999)
              {
                        
    TimerDelay($SC_INSTANCE$SC_DURATION"FS20U");
              }
              if(
    $SC_DURATION and $SC_DURATION <=999)
              {
                        
    IPS_Sleep($SC_DURATION);
                  
    FS20_SwitchMode($SC_INSTANCEtrue);
                  
    SetValue($runningfalse);
              }
              break;
             case 
    SC_DIRECTION_DOWN:
              if(!
    GetValue($running))
              {
                  
    FS20_SwitchMode($SC_INSTANCEfalse);
                  
    SetValue($runningtrue);
              }
              if(
    $SC_DURATION 999)
              {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"FS20D");
              }
              if(
    $SC_DURATION and $SC_DURATION <=999)
              {
                  
    IPS_Sleep($SC_DURATION);
                  
    FS20_SwitchMode($SC_INSTANCEfalse);
                  
    SetValue($runningfalse);
              }
              break;
          }
          break;
      case 
    "{1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}"//xComfort
          
    switch($SC_DIRECTION)
          {
             case 
    SC_DIRECTION_STOP:
              
    MXC_ShutterStop($SC_INSTANCE);
              break;
             case 
    SC_DIRECTION_UP:
              
    MXC_ShutterMoveUp($SC_INSTANCE);
              if(
    $SC_DURATION 999)
              {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"XCOM");
              }
              if(
    $SC_DURATION and $SC_DURATION <= 999)
              {
                  
    IPS_Sleep($SC_DURATION);
                  
    MXC_ShutterStop($SC_INSTANCE);
              }
              break;
             case 
    SC_DIRECTION_DOWN:
              
    MXC_ShutterMoveDown($SC_INSTANCE);
              if(
    $SC_DURATION 999)
              {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"XCOM");
              }
              if(
    $SC_DURATION and $SC_DURATION <= 999)
              {
                  
    IPS_Sleep($SC_DURATION);
                  
    MXC_ShutterStop($SC_INSTANCE);
              }
              break;
          }
          break;
          case 
    "{2D871359-14D8-493F-9B01-26432E3A710F}"//LCN
          
    $type=LCN_GetUnit($SC_INSTANCE);
            switch(
    $type)
            {
                case 
    0//Ausgänge

                    
    switch($SC_DIRECTION)
                  {
                 case 
    SC_DIRECTION_STOP:
                 
    LCN_SetIntensity($SC_INSTANCE,0,0);
                  
    LCN_SetIntensity($SC_INSTANCE2,0,0);
                  break;
                 case 
    SC_DIRECTION_UP:
                  
    LCN_SetIntensity($SC_INSTANCE,100,4);
                  if(
    $SC_DURATION 999)
                  {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"LCNA");
                  }
                  if(
    $SC_DURATION and $SC_DURATION <= 999)
                  {
                  
    IPS_Sleep($SC_DURATION);
                  
    LCN_SetIntensity($SC_INSTANCE,0,0);
                  }
                  break;
                 case 
    SC_DIRECTION_DOWN:
                  
    LCN_SetIntensity($SC_INSTANCE2,100,4);
                  if(
    $SC_DURATION 999)
                  {
                 
    TimerDelay($SC_INSTANCE2$SC_DURATION"LCNA");
                  }
                  if(
    $SC_DURATION and $SC_DURATION <= 999)
                  {
                  
    IPS_Sleep($SC_DURATION);
                  
    LCN_SetIntensity($SC_INSTANCE2,0,0);
                  }
                  break;
                  }
              break;

              case 
    2//Relais
              
    switch($SC_DIRECTION)
                  {
                 case 
    SC_DIRECTION_STOP:
                 
    LCN_SwitchRelay($SC_INSTANCE,false);
                  break;
                 case 
    SC_DIRECTION_UP:
                  
    LCN_SwitchRelay($SC_INSTANCE,true);
                  
    LCN_SwitchRelay($SC_INSTANCE2,false); // Um Relaisrichtung zu ändern bitte auf true
                  
    if($SC_DURATION 999)
                  {
                        
    TimerDelay($SC_INSTANCE$SC_DURATION"LCNR");
                    }
                    if(
    $SC_DURATION and $SC_DURATION <= 999)
                  {
                  
    IPS_Sleep($SC_DURATION);
                  
    LCN_SwitchRelay($SC_INSTANCEfalse);
                  }
                  break;
                 case 
    SC_DIRECTION_DOWN:
                  
    LCN_SwitchRelay($SC_INSTANCE,true);
                  
    LCN_SwitchRelay($SC_INSTANCE2,true);// Um Relaisrichtung zu ändern bitte auf false
                  
    if($SC_DURATION 999)
                  {
                      
    TimerDelay($SC_INSTANCE$SC_DURATION"LCNR");
                  }
                  if(
    $SC_DURATION and $SC_DURATION <= 999)
                  {
                  
    IPS_Sleep($SC_DURATION);
                  
    LCN_SwitchRelay($SC_INSTANCEfalse);
                  }
                  break;
                  }
              break;
                }
              break;
      case 
    "{9317CC5B-4E1D-4440-AF3A-5CC7FB42CCAA}"//1-Wire Shutter
          
    switch($SC_DIRECTION)
          {
             case 
    SC_DIRECTION_STOP:
               
    OneWireShutter($SC_INSTANCE0$SC_DURATION);
              break;
             case 
    SC_DIRECTION_UP:
               if(
    $SC_DURATION == 0)
                 
    $SC_DURATION 120000;
               
    OneWireShutter($SC_INSTANCE0$SC_DURATION);
              break;
             case 
    SC_DIRECTION_DOWN:
               if(
    $SC_DURATION == 0)
                 
    $SC_DURATION 120000;
               
    OneWireShutter($SC_INSTANCE1$SC_DURATION);
              break;
          }
        break;
        case 
    "{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}"//Homematic Shutter
          
    switch($SC_DIRECTION)
          {
             case 
    SC_DIRECTION_STOP:
                  
    HM_WriteValueBoolean($SC_INSTANCE"STOP"true);
              break;
             case 
    SC_DIRECTION_UP:
                  
    HM_WriteValueFloat($SC_INSTANCE"LEVEL"1.0);
              if(
    $SC_DURATION 999)
              {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"HOME");
              }
              if(
    $SC_DURATION and $SC_DURATION <=999)
              {
                  
    IPS_Sleep($SC_DURATION);
                  
    HM_WriteValueBoolean($SC_INSTANCE"STOP"true);
              }
               break;
             case 
    SC_DIRECTION_DOWN:
                  
    HM_WriteValueFloat($SC_INSTANCE"LEVEL"0.0);
              if(
    $SC_DURATION 999)
              {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"HOME");
              }
              if(
    $SC_DURATION and $SC_DURATION <=999)
              {
                  
    IPS_Sleep($SC_DURATION);
                  
    HM_WriteValueBoolean($SC_INSTANCE"STOP"true);
              }
               break;
          }
        break;
    case 
    "{8492CEAF-ED62-4634-8A2F-B09A7CEDDE5B}"//enocean
          
    $running CreateVariableByName($SC_INSTANCE"Moving"0);
          
    $value GetValue(IPS_GetStatusVariableID($SC_INSTANCE"StatusVariable"));
          switch(
    $SC_DIRECTION)
          {
             case 
    SC_DIRECTION_STOP:
              if(
    GetValue($running))
              {
                  
    ENO_SwitchMode($SC_INSTANCE$value);
                  
    SetValue($runningfalse);
              }
              break;
             case 
    SC_DIRECTION_UP:
              if(!
    GetValue($running))
              {
                  
    ENO_SwitchMode($SC_INSTANCEtrue);
                  
    SetValue($runningtrue);
              }
              if(
    $SC_DURATION 999)
              {
                        
    TimerDelay($SC_INSTANCE$SC_DURATION"ENOU");
              }
              if(
    $SC_DURATION and $SC_DURATION <=999)
              {
                        
    IPS_Sleep($SC_DURATION);
                  
    ENO_SwitchMode($SC_INSTANCEtrue);
                  
    SetValue($runningfalse);
              }
              break;
             case 
    SC_DIRECTION_DOWN:
              if(!
    GetValue($running))
              {
                  
    ENO_SwitchMode($SC_INSTANCEfalse);
                  
    SetValue($runningtrue);
              }
              if(
    $SC_DURATION 999)
              {
                  
    TimerDelay($SC_INSTANCE$SC_DURATION"ENOD");
              }
              if(
    $SC_DURATION and $SC_DURATION <=999)
              {
                  
    IPS_Sleep($SC_DURATION);
                  
    ENO_SwitchMode($SC_INSTANCEfalse);
                  
    SetValue($runningfalse);
              }
              break;
          }
        break;
      default:
        die(
    "No Handler for Module ".$instance['ModuleInfo']['ModuleName']." found");
    }
    break;

    case 
    "TimerEvent"//Script wurde von einem Ereignis aufgerufen

    IPS_SetEventActive($IPS_EVENTfalse);    //Ereignis deaktivieren
    $timer=IPS_GetName($IPS_EVENT);
    $SCT_INSTANCE intval(substr($timer,-5,5));
    $bus substr($timer,0,-5);

        switch (
    $bus)
        {
        case 
    "LCNA":
        
    LCN_SetIntensity($SCT_INSTANCE,0,0);
        break;

        case 
    "LCNR":
        
    LCN_SwitchRelay($SCT_INSTANCE,false);
        break;

        case 
    "XCOM":
        
    MXC_ShutterStop($SCT_INSTANCE);
        break;

        case 
    "HOME":
        
    HM_WriteValueBoolean($SCT_INSTANCE"STOP"true);
        break;

        case 
    "FS20U":
        
    $running CreateVariableByName($SCT_INSTANCE"Moving"0);
            
    FS20_SwitchMode($SCT_INSTANCEtrue);
           
    SetValue($runningfalse);
        break;

        case 
    "FS20D":
        
    $running CreateVariableByName($SCT_INSTANCE"Moving"0);
           
    FS20_SwitchMode($SCT_INSTANCEfalse);
          
    SetValue($runningfalse);
        break;

        case 
    "ENOU":
        
    $running CreateVariableByName($SCT_INSTANCE"Moving"0);
            
    ENO_SwitchMode($SCT_INSTANCEtrue);
           
    SetValue($runningfalse);
        break;

        case 
    "ENOD":
        
    $running CreateVariableByName($SCT_INSTANCE"Moving"0);
           
    ENO_SwitchMode($SCT_INSTANCEfalse);
          
    SetValue($runningfalse);
        break;
        }



    break;
    }


    function 
    OneWireShutter($ins$dir$sec) {
       @
    TMEX_F29_SetStrobe($insTrue);
       
    $res = ($dir 128) + ($sec 1000);
       @
    TMEX_F29_SetPort((integer)$ins, (integer)$res);
    }

    function 
    TimerDelay($id$time$bus) {
        global 
    $IPS_SELF;
        
    $sekunden=intval(substr($time0,-3));
       
    $msekunden=substr($time, -33);
       
    $timerid IPS_GetObjectIDByName($bus.$id$IPS_SELF);
        if (
    $timerid ==0)
        {
        
    $newtimer IPS_CreateEvent(1);
       
    IPS_SetEventScript($newtimer$IPS_SELF); //Aktuelles Skript aufrufen
       
    IPS_SetName($newtimer$bus.$id);
       
    IPS_Sleep(intval($msekunden));
       
    IPS_SetEventCyclic($newtimer00001$sekunden);
        
    IPS_SetEventCyclicDateBounds($newtimer00);
        
    IPS_SetEventCyclicTimeBounds($newtimertime(), 0);
        
    IPS_SetEventActive($newtimertrue);    //Ereignis aktivieren
       
    }
       else
       {
       
    IPS_Sleep(intval($msekunden));
       
    IPS_SetEventCyclic($timerid00001$sekunden);
        
    IPS_SetEventCyclicDateBounds($timerid00);
        
    IPS_SetEventCyclicTimeBounds($timeridtime(), 0);
        
    IPS_SetEventActive($timeridtrue);    //Ereignis aktivieren
       
    }
    }

    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;
    }





    ?>
    ich habe dafür die PTM200TX Instance erstellt. Achja, das ist nicht die Originale, sondern die Timervariante.
    Geändert von UVoigi (05.05.09 um 17:28 Uhr)
    Gruß Uwe
    (bmwm3)


  10. #20
    Registriert seit
    Sep 2007
    Beiträge
    17

    Super und vielen Dank, funktioniert auf Anhieb!

Ähnliche Themen

  1. EnOcean
    Von Fabian im Forum Allgemeine Diskussion
    Antworten: 32
    Letzter Beitrag: 14.11.09, 12:24
  2. Verständnisfrage zu EnOcean Intensity
    Von bolzebruce im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 2
    Letzter Beitrag: 10.12.08, 14:38
  3. ....jetzt EnOcean?
    Von Christoph im Forum EnOcean
    Antworten: 21
    Letzter Beitrag: 23.08.07, 20:45
  4. enocean anfängerfrage ...
    Von hmpf99 im Forum Haustechnik
    Antworten: 2
    Letzter Beitrag: 20.07.07, 16:56