Rademacher RolloTron DECT 1213 / AVM Fritzbox / IP Symcon

Ich kann mir vorstellen, dass noch mehr Leute hier eine Lösung suchen.

Meine Mutter (75) war mit den alten programmierbaren Rademacher Gurtwicklern überfordert. Einige Rolläden in ihrem Haus sind mit Motoren auf der Welle und Homematic Aktoren über IPS gesteuert. Jetzt sollten auch die Gurtwickler mit in IPS.
Da bin ich über die DECT Modelle gestolpert und fand diese mit den zwei großen Tasten schon mal sehr Rentner-freundlich und war mir sicher die auch an IPS dran zu bekommen. Leider war hier im Forum noch nichts fertig, also selbst ist der Mann. Soviel zur Historie.

Umgesetzt habe ich das sicher nicht besonders chic aber meine Mutter hat nur 3 Gurtwickler, daher wollte ich keine Doktorarbeit daraus machen.

Lösung sieht wie folgt aus.

Anzulegen sind die Objekte/Variablen wie in folgendem Screenshot in den Instanzen „AVM-Smarthome“ und „Rolladen_Wohnzimmer“ ersichtlich.

Dann befüllt Ihr die Variabeln in AVM-Smarthome einmalig mit den entsprechenden Werten (Benutzer muss auf der Fritzbox existieren oder angelegt werden).
Ebenso müsst Ihr in der Rolladen Instanz die Variable AIN mit der AIN des entsprechenden Rolladenaktors befüllen (könnt Ihr in der Fritzbox auslesen). Wichtig!!! ist hierbei das „+“ statt Space und am Ende das „-1“ für die Unit.

Danach die drei Skripte:

FritzBox_CmdExec

<?php

// Globale Variablen
$fritz_host = GetValueString(47994);
$fritz_user = GetValueString(41845);
$fritz_pwd = GetValueString(15153);


function Fritzbox_login() {
    global $fritz_host;
    global $fritz_user; //optional 
    global $fritz_pwd;

    $fritz_url = 'http://' . $fritz_host . '/login_sid.lua'; 
    $with_debug_output = false; 
        
    // Get Challenge-String 
    $tmp = simplexml_load_string(file_get_contents($fritz_url)); 
    if ($tmp->BlockTime > 0) { 
        sleep($tmp->BlockTime); 
    $tmp = simplexml_load_string(file_get_contents($fritz_url)); 
    } 
    if ($with_debug_output) { 
    print_r('Got challenge: ' . $tmp->asXML() . PHP_EOL); 
    } 
    $challenge = $tmp->Challenge; 
    
    // Get SID 
    $challenge_str = $challenge . '-' . $fritz_pwd; 
    $md_str = md5(iconv("UTF-8", "UTF-16LE",  $challenge_str)); 
    $response = $challenge . '-' . $md_str; 
    $tmp = simplexml_load_string(file_get_contents($fritz_url . '?user=' . 
    $fritz_user . '&response=' . $response)); 
    if ($with_debug_output) { 
        print_r(' Got session ID: ' . $tmp->asXML() . PHP_EOL); 
    } 
    $sid = $tmp->SID;
    return $sid;
}

function Fritzbox_Cmd($ain, $cmd, $cmd_param) {
    global $fritz_host;
    $SID = Fritzbox_login();
    $string = file_get_contents("http://".$fritz_host."/webservices/homeautoswitch.lua?sid=".$SID."&switchcmd=".$cmd."&ain=".$ain."&".$cmd_param);
    return $string;
}
$ain = $_IPS['AIN'];
$cmd = $_IPS['CMD'];
$cmd_param = $_IPS['CMD_PARAM'];
$return = FritzBox_Cmd($ain, $cmd, $cmd_param);

return $return;

?>

Set_LEVEL

<?php

//Nur Variable setzen

SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

?>

Rolladen_Level_anfahren

<?php

//AVM Dect Rolladen Level anfahren
$target_level = intval(255 / 100 * GetValueFloat(20721));
$ain = GetValueString(42661);
$cmd = "setlevel";
$cmd_param = 'level='.$target_level;

echo IPS_RunScriptWaitEx(22140, Array("AIN" => $ain, "CMD" => $cmd, "CMD_PARAM" => $cmd_param));

?>

Level Variable wie folgt:

das zugehörige Profil:

Dann noch alle IDs auf Eure Werte anpassen uns schon sollte das klappen. Ihr habt den selben Slider wie bei anderen Rolladenaktoren und könnt den Öffnungs/Schliessgrad nach Prozent beliebig einstellen, bzw. durch direktes ändern der Variable Level eine Zielposition vorgeben.

Viel Spaß damit

Quellen:
SID Code
Connair Webapp
AHA-HTTP-API

Hallo und vielen Dank für’s teilen Deiner Skripte! Damit konnte ich bei meiner Mutter ebenfalls 2 Gurtwickler einbinden.
Viele Grüße
Thorsten

1 „Gefällt mir“