+ Antworten
Seite 1 von 3 1 2 3 LetzteLetzte
Ergebnis 1 bis 10 von 24
  1. #1
    Registriert seit
    Jan 2011
    Beiträge
    22

    Standard Steckdose von ANEL

    Hallo zusammen,
    bin begeisterter Neuling und lerne das ganze System gerade erst kennen. Ich habe hier bei mir eine via IP steuerbare Steckdosenleiste und interessiere mich ganz besonders für dieses neue Hutschienenmodul von Anel:
    Netzwerk - Steckdosenleiste - Anel-Elektronik AG.

    Hat jemand schon Erfahrungen mit diesen Geräten oder eine Idee, wie sich diese Module in IP-Symcon einbinden lassen? Bin jetzt nicht so der grosße Programmierer....wenn ich das richtig interpretiere, dann besteht die Möglichkeit die einzelnen Dosen über das UDP-Protokoll anzusteuern.

    Würde mich über Tips freuen.

  2. #2
    Registriert seit
    Feb 2009
    Ort
    Hamburg
    Beiträge
    2,098

    Moin....

    Ich denke das sollte kein großes Problem sein die Teile mit IPS zu steuern!!

    Versuch mal die Steuerbefehle zu finden und poste sie mal!! Wird entweder mit UDP Socket oder per "http" funktionieren!!!

    Gruß,

    Peter
    -MacMini(2011) =>Parallels 11=>Win7, FB7390, EIB-KNX, DMX-ArtNet, 2x EM24 DIN, SONOS ZP100/120/Play:1/Play:5/Sub, 1Wire=>Wiregate, xbee=>ROOMBA, Dreambox, DENON 2313, 8x Philips HUE -

  3. #3

    Im Forum auf der Herstellerseite sind Beispiele in Java, Ruby, C#, usw. Da kann man sehen, was man senden muss.
    IPS Ninja \\ Webfront auf 15" ELO Touch \\ z-wave \\ IPS-868 \\ FS20 \\ 1-wire \\ Oregon WMRS200 \\ Mediaportal \\ 4x Squeezebox \\ SONOS \\ Denon AVR1912 \\ Kostal Piko 5.5 \\ 7x Vivotek \\ 1x INStar \\ Gardena R40Li mit Robonect HX30
    Mehr auf www.diewuppers.de

  4. #4
    Registriert seit
    Mar 2006
    Beiträge
    3,421

    Zitat Zitat von PeterChrisben Beitrag anzeigen
    Versuch mal die Steuerbefehle zu finden und poste sie mal!!
    Ich habe vorhin mal die PDF dazu überflogen... da steht das beschrieben.
    Sollte, via UDP-Socket kein Problem sein, die Anbindung in IPS zu realisieren.
    Gruß nancilla

  5. #5
    Registriert seit
    Jan 2011
    Beiträge
    22

    Angry Hilfe!

    Hallo zusammen,

    ich hatte jetzt mal wieder etwas Zeit mich um mein System zu kümmern und habe erst jetzt mal an dem Thema Anbindung/Steuerung der UDP-Steckdose weiterarbeiten können.

    Das heißt, da meine PHP-Kenntnisse quasi gegen null gehen, habe ich einen Kollegen mit mehr Know-How gebeten mal zu helfen... er hat (ohne IP-Symcon zu kennen) mal ein Script entwickelt, das irgendwie funktioniert - aber irgendwie auch nicht...

    Hier erstmal das Script:

    PHP-Code:
    <?
    // Def
    $hutschiene_ip "192.168.1.41";
    $schalter_nr 1;
    // Global
    $object IPS_GetObject($IPS_SELF);
    // auslesen


    if($IPS_SENDER == "WebFront" || $IPS_SENDER == "Switch"){
        
    //schalten
        
    if($IPS_VALUE){
        
    // schalter ein
            
    schalter_schalten_ein($hutschiene_ip,$schalter_nr);
        }else{
        
    // schalter aus
            
    schalter_schalten_aus($hutschiene_ip,$schalter_nr);
        }
        
    //aktualisieren
        
    $out auslesen_in_array($hutschiene_ip);
        
    $parentID $object['ParentID'];
        
    $ac IPS_GetObject($parentID);
        
    $status IPS_GetVariableIDByname("Status"$ac["ObjectID"]);
        
    //setzen
        
    SetValue($status$out["surge"][$schalter_nr]["state"]);
    }else{
        
    // aktualisieren
        
    $out auslesen_in_array($hutschiene_ip);
        
    $parentID $object['ParentID'];
        
    $ac IPS_GetObject($parentID);
        
    $status IPS_GetVariableIDByname("Status"$ac["ObjectID"]);
        
    //setzen
        
    SetValue($status$out["surge"][$schalter_nr]["state"]);
    }





    function 
    schalter_schalten_ein($ip,$surge_no,$state=1,$port=75,$password="anel") {
       
    $port intval($port);
       
    $surge_no intval($surge_no);

       if(!
    $ip || !$port || !strlen($password) || !$surge_no)
          return 
    false;

       
    $cmd = (!$state "Sw_off" "Sw_on").$surge_no.$password.chr(0)."\r\n";

       
    $fp fsockopen("udp://".$ip$port,$errno,$errstr);
       if (!
    $fp) return false;
        
    fwrite($fp$cmd);
        
    fclose($fp);

        return 
    true;
    }


    function 
    schalter_schalten_aus($ip,$surge_no,$state=0,$port=75,$password="anel") {
       
    $port intval($port);
       
    $surge_no intval($surge_no);

       if(!
    $ip || !$port || !strlen($password) || !$surge_no)
          return 
    false;

       
    $cmd = (!$state "Sw_off" "Sw_on").$surge_no.$password.chr(0)."\r\n";

       
    $fp fsockopen("udp://".$ip$port,$errno,$errstr);
       if (!
    $fp) return false;
        
    fwrite($fp$cmd);
        
    fclose($fp);

        return 
    true;
    }



    function 
    auslesen_in_array($ip,$listen_port=77,$port=75) {

       if(!
    $ip || !$port || !$listen_port)
          return 
    false;

       
    $opts = array('socket' => array('bindto' => '0.0.0.0:'.$listen_port));
       
    $context stream_context_create($opts);
       
    $fp stream_socket_client("udp://".$ip.":".$port$errno$errstr30STREAM_CLIENT_CONNECT$context);
       if (!
    $fp) {
          echo 
    $errstr;
          return 
    false;
       }
        
    //fwrite($fp, $cmd);

        
    usleep(500000);
        
    fwrite($fp"wer da?\r\n");
        
    $data fread($fp,1024);
        
    fclose($fp);
        
    $surgeinfo array_combine(array("type","name","ip","mask","gateway","mac","surge1","surge2","surge3","surge4","surge5","surge6","surge7","surge8","disabled","http_port""io1","io2","io3","io4","io5","io6","io7","io8","temp","firm",),explode(":",trim($data)));
        foreach (
    $surgeinfo as $k=>$v) {
           if (
    preg_match("/^surge(\d)$/i",$k,$regs)) {
              
    $no $regs[1];
              
    $surgeinfo["surge"][$no] = array_combine(array("name","state"),explode(",",$v));
              
    $surgeinfo["surge"][$no]["disabled"] = ($surgeinfo["disabled"] & pow(2,$no-1)) >> ($no-1);
              unset(
    $surgeinfo[$k]);
           }
        }
        unset(
    $surgeinfo["disabled"]);
        
    $surgeinfo["mac"] = array_reduce(explode(".",$surgeinfo["mac"]),create_function('$a,$b','return strtoupper((strlen($a) ? $a.":" : "").($b>15 ? dechex($b) : "0".dechex($b)));'));

        return 
    $surgeinfo;
    }


    ?>


    Die grundsätzliche Idee von uns war es, zu jeder Steckdose eine DummyInstanz anzulegen:



    Grundsätzlich scheint der Ansatz nicht ganz falsch zu sein, denn manuell ausgeführt klappt es manchmal und manchmal nicht

    Dann erscheint im Logfile folgende Fehlermeldung:

    Code:
    [Innenhof\Wegbeleuchtung\Handler] = 
    Warning:  stream_socket_client() [function.stream-socket-client]: failed to bind to '0.0.0.0:77', system said: No error in D:\IP-Symcon\scripts\49310.ips.php on line 84
    
    Fatal error:  Maximum execution time of 30 seconds exceeded in D:\IP-Symcon\scripts\49310.ips.php on line 92
    Wir vermuten, das das öffnen und schließen des Sockets irgendwie nicht richtig klappt. Wir sind hier auch nicht sicher, ob man evtl. manuell erstmal eine UDP-Socket Instanz in IP-Symcon anlegen müsste?

    Da ich mich nicht so gut in PHP auskenne und mein Kollegen keinen echten Einblick in IP-Symcon und die Besonderheiten bzw. Konzepte hat, kommen wir nicht mehr weiter. Leider ist die Doku hinsichtlich UDP-Steuerung auch etwas dünn und im Forum gibts dazu auch nichts substantielles.

    Ich fände es toll, wenn sich jemand hier mit einbringen könnte - vielleicht interessiert sich ja noch jemand für die Möglichkeit eine solche Steckdose via UDP zu steuern.

  6. #6
    Registriert seit
    Jul 2009
    Ort
    DUS
    Beiträge
    136

    Hi,

    wollte nur mal eventuellen Fortschritten fragen.

    LG

    Kea

  7. #7
    Registriert seit
    Jun 2011
    Beiträge
    144

    hab auch so ein Teil zu Hause im Einsatz,

    deshalb frage ich hier mal nach, obs was neues gibt.

  8. #8
    Registriert seit
    Jul 2009
    Ort
    DUS
    Beiträge
    136

    Standard PHP Versuche

    Hallo,

    habe mit folgenden Beispielen mal ein bisschen gespielt:
    (Dem Forum des Herstellers entnommen:
    Netzwerk - Steckdosenleiste - Anel-Elektronik AG.
    FAQ - FORUM - ANEL-Elektronik AG &bull; Thema anzeigen - PHP-Datei zum schalten bitte Hilfe!)

    Damit schaffe ich es einen Kanal ein bzw. auszuschalten:
    PHP-Code:
    <?
    $fp 
    fsockopen("udp://192.168.0.70",75);
    fwrite($fp,"Sw_on1user1anel"); 
    fclose($fp);
    ?>

    zum zum ausschalten:
    <?
    $fp 
    fsockopen("udp://192.168.0.70",75);
    fwrite($fp,"Sw_off1user1anel");
    fclose($fp);
    ?>

    "Sw_on1user1anel" bedeutet: 
    Sw_on -> einschalten | Sw_off -> ausschalten
    1 -> stecker @ position 1
    user1 -> username
    anel -> passwort
    Mit den anderen Scripten (auch dem im oberen Teil des Threads) bekomme ich nichts geschaltet, geschweige den ausgelesen.

    Vielleicht könnte sich mal ein PHP-Gott der Sache annehmen, wäre toll.

    Viele Grüße aus OBC

    kea

  9. #9
    Registriert seit
    Jan 2007
    Ort
    Nidda(Hessen)
    Beiträge
    7,330

    Und wo, ist jetzt dein Problem. Ich denke es funktioniert.
    Gruß Rainer


    Unmögliches wird sofort erledigt, Wunder dauern etwas länger.


  10. #10
    Registriert seit
    Jul 2009
    Ort
    DUS
    Beiträge
    136

    Hallo,

    ich hatte an sch an ein "schönes" Script (ähnlich einer fertigen Instanz) gedacht, mit Parametern zur Stausabfrage und zum schalten.

    Habe dazu auch ein "Fetaure-Request" eingestellt

    Viele Grüße

Ähnliche Themen

  1. Energiemessung an Steckdose
    Von sysrun im Forum Haustechnik
    Antworten: 9
    Letzter Beitrag: 01.03.19, 13:27
  2. Antworten: 45
    Letzter Beitrag: 26.02.18, 12:01
  3. Gembird IP Steckdose
    Von mcbelly im Forum Haustechnik
    Antworten: 1
    Letzter Beitrag: 13.11.11, 12:31
  4. Funk-Schalt-Steckdose FS20 ST-2 von Conrad
    Von Xenon im Forum Allgemeine Diskussion
    Antworten: 9
    Letzter Beitrag: 23.08.05, 19:43

Stichworte