+ Antworten
Seite 3 von 3 ErsteErste 1 2 3
Ergebnis 21 bis 28 von 28
  1. #21
    Registriert seit
    Aug 2016
    Ort
    Stuttgart
    Beiträge
    18

    Standard Fortsetzung

    8. Progammier-Skript anlegen. Auch hier wieder die richtige ID der Regvar eintragen. Die Adresse muss erst vor dem Einlernen der RTS-Empfänger angepasst werden.

    PHP-Code:
    ############Somfy_prog_skript#################################

    /*
    Y<func>
    Somfy RTS/Simu Hz (R) mode. <func> is one of:
    t<dez>
    Sets the time in us (microseconds) for a single symbol
    Typical values are: 1200-1300
    Default: 1240 (According to the patent it should be 1208, but this works better)
    r<dez>
    Sets the number of repetitions of a Somfy RTS frame. If the receiver is far away from the sender, increasing this number may help reception.
    Default: 6
    s = Send out a Somfy command. <hex> is a hex string of the following form: KKC0RRRRAAAAAA
    KK - Encryption key                                                           A4290434060000
    C - Command (1 = My, 2 = Up, 4 = Down, 8 = Prog)
    0 - Checksum (set to 0, is calculated automatically)
    RRRR - Rolling code
    AAAAAA - Address (= remote channel)
    */


    #######Parameter#####
    ###Edit###
    $Adress='000126';#AAAAAA - Address (= remote channel)
    ###Edit###


    $reg=55121 /*[CUL\Register Variable]*/;
    $symbolwidth 1240;    # Default Somfy frame symbol width
    $repetition 6;    # Default Somfy frame repeat counter
    $somfy_updateFreq 3;    # Interval for State update
    $enckey='A1';#KK - Encryption next use A2
    $rollingcode='0001';#RRRR - Rolling code


    ############################################

        ## Set symbol length    --> Init

        
    $message "t" $symbolwidth;
    #   RegVar_SendText($reg,"Y".$message."\r\n");

        ## Set frame repetition --> Init

        
    $message "r" $repetition;
    #    RegVar_SendText($reg,"Y".$message."\r\n");


        
    $command=8;


        
    # message looks like this
        # Ys_key_ctrl_cks_rollcode_a0_a1_a2
        # Ys ad 20 0ae3 a2 98 42
       
    $Swapped_Adress=$Adress[4].$Adress[5].$Adress[2].$Adress[3].$Adress[0].$Adress[1];
       
    #print_r($Swapped_Adress."\r\n");
        ## Gen Message
        
    $message "s"$enckey.$command.'0'.$rollingcode.$Adress;
        
    #print_r($message."\r\n");

        ## Send Message
        
    RegVar_SendText($reg,"Y".$message."\r\n");

        
    # increment encryption key and rolling code
       
    $enc_key_increment      hexdec$enckey );
        
    $rolling_code_increment hexdec$rollingcode );
        
    $new_enc_key sprintf"%02X", ( ++$enc_key_increment hexdec("AF") ) );
        
    $new_rolling_code sprintf"%04X", ( ++$rolling_code_increment ) );

        
    # update the readings, but do not generate an event
       
       
       
    $VarID IPS_CreateVariable(3);
       
    IPS_SetName($VarID"Key"); // Variable benennen
       
    IPS_SetParent($VarID$_IPS['SELF']); // Variable einsortieren unter dem Objekt 
       
    SetValue $VarID$new_enc_key );
       
       
    $VarID IPS_CreateVariable(3);
       
    IPS_SetName($VarID"Rolling_code"); // Variable benennen
       
    IPS_SetParent($VarID$_IPS['SELF']); // Variable einsortieren unter dem Objekt 
       
    SetValue $VarID$new_rolling_code );
       
       
    $VarID IPS_CreateVariable(3);
       
    IPS_SetName($VarID"Address"); // Variable benennen
       
    IPS_SetParent($VarID$_IPS['SELF']); // Variable einsortieren unter dem Objekt
       
    SetValue $VarID$Adress );


    ?> 
    Jetzt sollte es, bis auf die Variablen unter der RegVar so aussehen
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Unbenannt.png 
Hits:	109 
Größe:	15.7 KB 
ID:	37296
    Wenn der CUL jetzt gesteckt ist, der richtige Port in der I/O-Instanz ausgewählt ist , der Port geöffnet ist und das Startskript ausgeführt wird , sollten die Variablen jetzt angelegt sein. Wenn das der Fall ist. ist der CUL soweit lauffähig.

  2. #22
    Registriert seit
    Aug 2016
    Ort
    Stuttgart
    Beiträge
    18

    Post Fortsetzung

    9. Fürs erste für einen Rolladen eine Shutter-Control-Instanz anlegen.
    Darunter die Variablen Key und Rolling_code (beide als String) anlegen.
    Position wird von Shutter Control selbst angelegt.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Unbenannt2.png 
Hits:	104 
Größe:	8.6 KB 
ID:	37297

    Action Skript anlegen im skript die ID des Sende-skipts eintragen. Wenn die Adresse des RTS-Antriebs bekannt ist (z.B. aus FHEM) kann diese unter Adress eingetragen werden.

    PHP-Code:
    <?

    if($_IPS['SENDER'] != "ShutterControl")
        die(
    "This script can only be started by the ShutterControl Module");

    $Adress='000001';
    $IDs=IPS_GetChildrenIDs(IPS_GetParent $_IPS['SELF']));

    $Direction=$_IPS['DIRECTION'];
    $Duration=$_IPS['DURATION'];

    for (
    $i 0$i<=count($IDs)-1$i++) {
        if (
    IPS_GetName ($IDs[$i])=='Key') {
        
    $ID_Key=$IDs[$i];
        
    $Key=GetValue $IDs[$i] );
    } elseif (
    IPS_GetName ($IDs[$i])=='Rolling_code') {
        
    $ID_Rolling_Code=$IDs[$i];
        
    $Rolling_Code=GetValue $IDs[$i] );
    }
    }


    IPS_RunScriptEx30978 /*[CUL\Somfy_Send]*/ ,
    Array(
    "Adress" => $Adress,
    "ID_Key" => $ID_Key,
    "Key" => $Key,
    "ID_Rolling_Code" => $ID_Rolling_Code,
    "Rolling_Code" => $Rolling_Code,
    "Direction" => $Direction,
    "Duration" => $Duration));


    ?>
    im Shutter Control die Regvar als Sendeinstanz auswählen und das Action-Skript als Abarbeitungsskript wählen.

    Wenn der aktuelle Rolling Code und der Key (z.B. aus FHEM) bekannt ist können diese in die Variablen eingetragen werden.

    Wenn das alles angelegt ist sollte sich der Antrieb ansteuern lassen.
    Wenn Key und Rolling code nicht bekannt ist muss der Antrieb mit dem Prog skipt neu angelernt werden.

    Soo das wars mal fürs erste

  3. #23
    Registriert seit
    Sep 2016
    Ort
    Oberbayern
    Beiträge
    77

    Hallo Chris,

    das ist ja ein ganz schöner Brocken.... Ich hab's jetzt erst gesehen, da ich grad anderweitig unterwegs bin.

    Vielen Dank dafür

    Ich werde das mal in den kommenden Tagen ausprobieren. Dazu muss ich dann erst mal mein CUL von meiner CCU2 an den Symcon-Raspi umziehen. Es kann also ein paar Tage dauern bis ich es fertig habe. Ich melde mich dann aber auf alle Fälle wenn ich es geschafft habe (oder nicht weiterkomme)

    Danke und Gruß
    cervicor
    IP Symcon 5.1 auf RaspBerry 3; RaZberry 2; Homematic CCU2; CUNX; ModbusTCP Energiezähler; SMA-Wechselrichter; IPS-868 LAN Gateway mit I/O-Modul für Wasser, Gas und Wärmezähler; IPSStudio

  4. #24
    Registriert seit
    Sep 2016
    Ort
    Oberbayern
    Beiträge
    77

    Hallo Chris,

    ich bin gerade dabei alles einzustellen. Ich habe aber nun noch ein paar Frage.

    Was ist der Unterschied zwichen Key und Adresse? (Ich habe einen Wert A00000 für den ersten Rolladen und A00001 für den zweiten)
    Was trage ich denn wo ein und wo bekomme ich den andeen Wert her? Den Rolling_Code haebich auch.

    Du hast geschrieben
    im Shutter Control die Regvar als Sendeinstanz auswählen
    meinst du hier die Variable oder das Script?

    Danke für deine Hilfe.

    Gruß
    cervicor
    IP Symcon 5.1 auf RaspBerry 3; RaZberry 2; Homematic CCU2; CUNX; ModbusTCP Energiezähler; SMA-Wechselrichter; IPS-868 LAN Gateway mit I/O-Modul für Wasser, Gas und Wärmezähler; IPSStudio

  5. #25
    Registriert seit
    Sep 2016
    Ort
    Oberbayern
    Beiträge
    77

    Standard Fast geschafft

    Hallo,

    Ich habe es geschafft, dass meine Rollladen prinzipiell funktionieren.

    • Ich habe Die "RegisterVariable" als Sendeinstanz eingesetzt,
    • den Key habe ich fix auf A0 gesetzt (so war das auf der CCU auch programmiert),
    • die Adresse habe ich auch in den Scipts gefunden,
    • den Rolling Code aus der CCU habe ich noch in Hex umgerechnet


    Nun kann ich über das "Shutte Control" die Rolladen steuern. Soweit so gut.

    Wenn ich aber nun den Rolladen eine Zeit nicht bediene, reagiert er nicht auf den ersten Befehl.
    Ich habe herausgefunden, dass bei ersten Befehl erstmal Müll gesendet wird und so eine FEhlermeldung ausgelöst wird.
    Code:
    19.01.2017 18:48:13*| CUL*| MSG:? (`É?YsA01006ADA00000 is unknown) Use one of A B b C e F G h i K k L l M m N R T t U u V W X x Y Z
    19.01.2017 18:48:13*| VariableManager*| [Geräte\CUL\Register Variable\AuxMessage] = ? (`É?YsA01006ADA00000 is unknown) Use one of A B b C e F G h i K k L l M m N R T t U u V W X x Y Z
    19.01.2017 18:48:13*| CUL*| Err:1 MSG:? (`É?YsA01006ADA00000 is unknown) Use one of A B b C e F G h i K k L l M m N R T t U u V W X x Y Z
    19.01.2017 18:48:13*| VariableManager*| [Geräte\CUL\Register Variable\Errors] = 1
    Ist da noch ein Pufferspeicher nicht gelöscht oder bearbeitet?

    Ich habe noch 4 Stück FHT80b in Betrieb, die sofor automatisch eingebunden wurden und auch munter ihren Status melden.
    Das Problem tritt aber auch auf, wenn zwischen den Somfy-Kommandos keine FHT-Meldung empfangen wird.

    Kennt jemand das Problem? Oder besser, hat jemand einen Hinweis für mich wo das Problem liegen könnte?

    Danke und Gruß
    cervicor
    IP Symcon 5.1 auf RaspBerry 3; RaZberry 2; Homematic CCU2; CUNX; ModbusTCP Energiezähler; SMA-Wechselrichter; IPS-868 LAN Gateway mit I/O-Modul für Wasser, Gas und Wärmezähler; IPSStudio

  6. #26
    Registriert seit
    May 2017
    Beiträge
    90

    Hallo,

    kannst du mal versuchen, den Befehl einfach 2x zu schicken? Ich hatte ein ähnliches Verhalten in FHEM.

    Ich bin neu in Symcon und versuche mich auch gerade an der Anbindung meiner Raffstores über den CUL-Stick.
    In FHEM hat das alles prima geklappt, hier kann ich auch die Adressen, Rolling Codes usw auslesen.

    Ich habe das Action Skript 1:1 rauskopiert, allerdings wird es mir als fehlerhaft in Zeile 3 angezeigt.

    Wo ist denn der Fehler?

    Code:
    <? 
    
    if($_IPS['SENDER']*!=*"ShutterControl") 
    ****die("This*script*can*only*be*started*by*the*ShutterControl*Module"); 
    
    $Adress='000001'; 
    $IDs=IPS_GetChildrenIDs(IPS_GetParent*(*$_IPS['SELF'])); 
    
    $Direction=$_IPS['DIRECTION']; 
    $Duration=$_IPS['DURATION']; 
    
    for*($i*=*0;*$i<=count($IDs)-1;*$i++)*{ 
    ****if*(IPS_GetName*($IDs[$i])=='Key')*{ 
    ****$ID_Key=$IDs[$i]; 
    ****$Key=GetValue*(*$IDs[$i]*); 
    }*elseif*(IPS_GetName*($IDs[$i])=='Rolling_code')*{ 
    ****$ID_Rolling_Code=$IDs[$i]; 
    ****$Rolling_Code=GetValue*(*$IDs[$i]*); 
    } 
    } 
    
    
    IPS_RunScriptEx(*30978*/*[CUL\Somfy_Send]*/*, 
    Array( 
    "Adress"*=>*$Adress, 
    "ID_Key"*=>*$ID_Key, 
    "Key"*=>*$Key, 
    "ID_Rolling_Code"*=>*$ID_Rolling_Code, 
    "Rolling_Code"*=>*$Rolling_Code, 
    "Direction"*=>*$Direction, 
    "Duration"*=>*$Duration)); 
    
    
    ?>
    Die Adresse muss in Zeile 6?
    Wohin mit Key und Rolling Code?

    Danke!

  7. #27
    Registriert seit
    May 2017
    Beiträge
    90

    Hat sich erledigt, irgendwo hatte sich im Send_Script ein Fehler eingeschlichen. Der geht :-)

  8. #28
    Registriert seit
    May 2017
    Beiträge
    90

    Hab jetzt aber doch noch ein Problem.

    Ich kann die Raffstores grundsätzlich steuern, und habe die Einstellmöglichkeiten "Geöffnet 25 % 50 % 75 % und geschlossen".

    Erwartet hätte ich, das der Raffstore bei 50% auf die My-Position fährt, aber leider bewegt er sich wahllos immer nur ein Stück.

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 16.03.16, 00:57
  2. Lirc und USBTOY V2 auf Raspberry Pi 2 mit IPS ?
    Von drapple im Forum Allgemeine Diskussion
    Antworten: 10
    Letzter Beitrag: 24.11.15, 15:02
  3. mit IPS 4.0 auf einem Raspberry SMS Versenden
    Von PaulG4H im Forum Allgemeine Diskussion
    Antworten: 4
    Letzter Beitrag: 18.11.15, 19:51
  4. CUL/CUN mit IPS auf dem Raspberry schon möglich?
    Von PumpkinEater im Forum Allgemeine Diskussion
    Antworten: 0
    Letzter Beitrag: 29.12.14, 16:38
  5. Busware CUL als HMLAN Ersatz mit IPS möglich?
    Von aghira im Forum HomeMatic
    Antworten: 2
    Letzter Beitrag: 29.07.13, 20:26