Seite 2 von 4

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 30. November 2016 14:04
von user303
Hallo Zusammen,

für diejenigen die gerne ihre Dect 200 von AVM mit der Logitech Harmony Ulimate Hub integrieren möchten, wollte ich euch folgenden Lösungsansatz vorstellen:

Mit einigen Codeschnipseln aus dem Netz und der AVM API habe ich ein serverseitiges PHP skript gebastelt, welches auf einem internen Webserver läuft und mit dem man folgende Aktionen per Aktor(Fritz Dect 200)
- An
- Aus
- Toggle
schalten lassen kann.

Aufruf schaut folgendermaßen aus:

Code: Alles auswählen

http://server:port/fritz.php?actname=MediaCenter&action=on

actname = Name des Aktors wie in der FB definiert (Achtung keine Leerzeichen erlaubt, Aktoren müssen einen eindeutigen namen haben)
action = on, off, toggle   (toggle schaltet von on->off oder off->on)

Damit könnte man bereits mit dem JB Media Light Manager loslegen und auf bestimmte IR oder Funk Befehle die WebRequest triggern.

Einzige Konfiguration im Skript: User und Passwort für die Fritz!box.
Ich Empfehle einen eigener User in der Fritzbox zu konfigurieren und die Rechte nur auf Smarthome zu beschränken. (User und Password stehen klartext im PHP Skript)

Um die Fritz Aktoren mit der Harmony zu verwenden brauchen wir einen zusätzlichen Service:
Die Software "Home Automation Bridge" ha-bridge (https://github.com/bwssytems/ha-bridge) gaukelt der Harmony eine Philips Hue Bridge vor.
In der ha-bridge müssen jetzt nur noch die Fritz Aktoren als Bridge Devices hinzugefügt werden.

Bsp.
Für On:
http://server:port/fritz.php?actname=MediaCenter&action=on

Für Off:
http://server:port/fritz.php?actname=MediaCenter&action=off

Das wars.


Sobald die Harmony den Hue Bridge eingerichtet hat, tauchen die Aktoren unter Geräten im Bereich Beleuchtung auf.

Wenn interesse besteht kann ich gerne genauere Infos dazu schreiben.

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 30. November 2016 15:19
von Hoffi
Das hört sich klasse an. Ich hab nen Raspberry und ein QNap aktiv, da ist Platz.

Aber was ist, wenn man schon eine Hue Bridge hat? Oder hat man damit dann zwei?

Würdest du das PHP Script zur Verfügung stellen?

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 30. November 2016 20:03
von user303
Hi,

ich habe leider kein physiches Hue Gerät zuhause. Deswegen, kann ich nicht sagen, ob es einen Effekt hat.
Im Internet liest man aber Berichte von Leuten die 2 Hue Bridges im Einsatz haben.

Gerne schicke ich Dir den Code, da es noch nicht gesäubert wurde, schicke ich es Dir per PN wenn Du möchtest.

Edit:
aus dem HA-Bridge How To - Somit sollte es mit physischen Hues funktioneren.
Hue Names and IP Addresses

Provide IP Addresses of your Hue Bridges that you want to proxy through the bridge. Also, give a meaningful name to each one so it is easy to decipher in the helper tab. When these names and IP's are given, the bridge will passthru the call it receives to the target Hue and device you configure.

Don't forget - You will need to push the link button when you got to the Hue Tab the first time ater the process comes up. (The user name is not persistent when the process comes up.)

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 1. Dezember 2016 19:39
von user303
Anbei der Code

Code: Alles auswählen

<?php 

// User defined (only part where something needs to be changed)
$fritzbox_User = 'user';
$fritzbox_Password = 'pass';

/*
AVM Fritz!Box Dect 200 actuator set script
user303 on http://www.harmony-remote-forum.de/

Parameters used fpr request in URL
http://nas:800/fritz.php?actname=Media&action=on
actname = <name of the AVM DECT actor as defined in the Fritz!Box GUI>
action = on | off | toggle | poll    (poll checks the current state of the actuator  0=off 1=on)

Ressources
https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AHA-HTTP-Interface.pdf

Commands are sent via HTTP GET Request to the following URL
http://fritz.box/webservices/homeautoswitch.lua?ain=<ain>&switchcmd=<cmd>&sid=<sid>
(!) https was not used on purpose, as the Fritz!Box was blocking access

Used commands:
getdevicelistinfos
setswitchon
setswitchoff
setswitchtoggle
getswitchstate

Stream infos
getdevicelistinfos:
text/xml; charset=utf­8

all others:
text/plain; charset=utf­8





*/




//Parse Arguments
$actuatorname = htmlspecialchars($_GET["actname"]);
$actuatoraction = htmlspecialchars($_GET["action"]);


// Connect to FritzBox for SID
$ch = curl_init('http://fritz.box/login_sid.lua?username=' . $fritzbox_User);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$login = curl_exec($ch);
$session_status_simplexml = simplexml_load_string($login);

if ($session_status_simplexml->SID != '0000000000000000')
{
        echo "Already logged on with SID " . $SID . "\n" ;
   $SID = $session_status_simplexml->SID;
}
else
// Calculate Session ID with Challenge, Password and MD5-Encoding
{
   $challenge = $session_status_simplexml->Challenge;
   $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $fritzbox_Password, "UCS-2LE", "UTF-8"));
   curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua");
   $sendlogin = curl_exec($ch);
   $session_status_simplexml = simplexml_load_string($sendlogin);
   if ($session_status_simplexml->SID != '0000000000000000'){
       $SID = $session_status_simplexml->SID;
   }
   else{
       //echo "Error: Cannot connect to Fritz!Box";
       http_response_code(403);
       return;
   }
       
}





//  Get getdevicelistinfos
$opts = array(
    'http' => array(
        'method'  => 'GET',
        'header'  => 'Content­Type: text/xml; charset=utf­8'       
                    )
             );
$context = stream_context_create($opts);

$switchcmd = 'getdevicelistinfos';
$url =  'http://fritz.box/webservices/homeautoswitch.lua?switchcmd='. $switchcmd .'&sid=' . $SID .'';

//retrieving the device list infos in XML structure
$result = simplexml_load_string(file_get_contents($url, false, $context));

//looking for the acutator to retrieve the AIN which is needed for the switching
$count = 0;
foreach ($result->device as $node){
    $tmpname = $node->name;
    if (strcmp ($tmpname ,$actuatorname) == 0 ) {
            //echo $tmpname . "<br>";

        $ain = str_replace(' ', '', $node->attributes()->identifier);
        //echo "retrieved AIN: " . $ain . "<br>";
        $count++;
    }
    
}

//Verifying if more that one actuators have been identified with the same name. Danger of inadvertantly switching the wrong actuator. Use unique names.
if ( $count > 1){
    //echo "More than one actuators found with the name " . $actuatorname . "<br>";
    http_response_code(400);
    return;
}
if ( $count == 0){
    //echo "No actuator was found with the name " . $actuatorname . "<br>";
    http_response_code(400);
    exit ("No actuator was found with the name " . $actuatorname);
}    

    
$opts = array(
    'http' => array(
        'method'  => 'GET',
        'header'  => 'Content­Type: text/plain; charset=utf­8'       
                    )
             );
$context = stream_context_create($opts);

//echo $actuatoraction . "<br>";
switch ($actuatoraction) {
    case "on":
        $switchcmd = 'setswitchon';
        $url =  'http://fritz.box/webservices/homeautoswitch.lua?ain=' . $ain . '&switchcmd='. $switchcmd .'&sid=' . $SID .'';
        //echo $url . "<br>";
        $result=file_get_contents($url, false, $context);
        //echo $result ."<br>";
        http_response_code(200);
        break;
    case "off":
        $switchcmd = 'setswitchoff';
        $url =  'http://fritz.box/webservices/homeautoswitch.lua?ain=' . $ain . '&switchcmd='. $switchcmd .'&sid=' . $SID .'';
        $result=file_get_contents($url, false, $context);
        //echo $result ."<br>";
        http_response_code(200);
        break;
    case "toggle":
        $switchcmd = 'setswitchtoggle';
        $url =  'http://fritz.box/webservices/homeautoswitch.lua?ain=' . $ain . '&switchcmd='. $switchcmd .'&sid=' . $SID .'';
        $result=file_get_contents($url, false, $context);
        //echo $result ."<br>";
        http_response_code(200);
        break;
    case "poll":
        $switchcmd = 'getswitchstate';
        $url =  'http://fritz.box/webservices/homeautoswitch.lua?ain=' . $ain . '&switchcmd='. $switchcmd .'&sid=' . $SID .'';
        $result=file_get_contents($url, false, $context);
        echo $result;
        http_response_code(200);
        break;        
    default:
        http_response_code(400);
        return;
}


// Close Session
curl_close($ch);
?>



Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 6. Januar 2017 23:38
von m4d-maNu
user303 hat geschrieben:Hallo Zusammen,

für diejenigen die gerne ihre Dect 200 von AVM mit der Logitech Harmony Ulimate Hub integrieren möchten, wollte ich euch folgenden Lösungsansatz vorstellen:

Mit einigen Codeschnipseln aus dem Netz und der AVM API habe ich ein serverseitiges PHP skript gebastelt, welches auf einem internen Webserver läuft und mit dem man folgende Aktionen per Aktor(Fritz Dect 200)
- An
- Aus
- Toggle
schalten lassen kann.

Aufruf schaut folgendermaßen aus:

Code: Alles auswählen

http://server:port/fritz.php?actname=MediaCenter&action=on

actname = Name des Aktors wie in der FB definiert (Achtung keine Leerzeichen erlaubt, Aktoren müssen einen eindeutigen namen haben)
action = on, off, toggle   (toggle schaltet von on->off oder off->on)

 
Damit könnte man bereits mit dem JB Media Light Manager loslegen und auf bestimmte IR oder Funk Befehle die WebRequest triggern.

Einzige Konfiguration im Skript: User und Passwort für die Fritz!box.
Ich Empfehle einen eigener User in der Fritzbox zu konfigurieren und die Rechte nur auf Smarthome zu beschränken. (User und Password stehen klartext im PHP Skript)

Um die Fritz Aktoren mit der Harmony zu verwenden brauchen wir einen zusätzlichen Service:
Die Software "Home Automation Bridge" ha-bridge (https://github.com/bwssytems/ha-bridge) gaukelt der Harmony eine Philips Hue Bridge vor.
In der ha-bridge müssen jetzt nur noch die Fritz Aktoren als Bridge Devices hinzugefügt werden.

Bsp.
Für On:
http://server:port/fritz.php?actname=MediaCenter&action=on

Für Off:
http://server:port/fritz.php?actname=MediaCenter&action=off

Das wars.


Sobald die Harmony den Hue Bridge eingerichtet hat, tauchen die Aktoren unter Geräten im Bereich Beleuchtung auf.

Wenn interesse besteht kann ich gerne genauere Infos dazu schreiben.

Ich muss nun mal nachfragen, ob ich das richtig verstehe.

Man benötigt folgendes:
-FritzBox die DECT Fähig ist
-DECT 200
-Ultimate Hub
-Webserver
-und dann das Script
-AVM API


Mehr nicht? Oder ist auch der JB Media Manager wichtig?

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 7. September 2017 15:54
von Satalaner
könnte jemand erklären wie ich das auf der Fritzbox installiere. Benötige ich fhem?

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 7. September 2017 18:23
von Fonzo
Satalaner hat geschrieben: 7. September 2017 15:54 könnte jemand erklären wie ich das auf der Fritzbox installiere. Benötige ich fhem?
Auf der Fritzbox selber wird gar nichts installiert der Aufruf an die Fritzbox erfolgt über Lua. Du brauchst in dem Beispiel ein Webserver, dieser kann Teil eines Gateways sein. Alternativ kann man auch Apache nutzten oder so was wie IP-Symcon da ist der Webserver integriert. Wenn die Harmony Remote über spezielle Gerätetasten verfügt must Du die HA-Bridge nutzen damit ein Hue Device emuliert wird. Sollte die Harmony Remote über keine Spezialtasten verfügen oder Du mit irgendeiner Taste das ausführen wollen brauchst Du z.B. FHEM und Fakeroku.

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 9. März 2018 23:07
von Kat-CeDe
Hi,
das Script hat bis vor ein paar Tagen funktioniert. Ich habe jetzt die interne FritzOS vom 8.3. drauf und es geht nicht mehr. Wer benu8tzt noch das Script eventuell auch mit sehr aktuellen Betas?

Ralf

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 8. April 2018 21:50
von Kat-CeDe
Hi,
mit der aktuellen internen Firmware bekomme ich z.Z.
"No actuator was found with the name"

Mist es lief gerade wieder fast alles so schön rund.

Ralf

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 17. Dezember 2018 18:46
von schubi70
Hallo ins Forum,

bin neu hier und seit kurzem Besitzer einer Harmony Elite mit Hub. Der Großteil meiner Geräte funktioniert
einwandfrei, nur leider lassen sich die AVM DECT Steckdosen nicht einbinden. Deshalb bin ich auf der Suche
hier im Forum fündig geworden. Hab alles installiert (HA-Bridge auf der DSM415+ mit Docker), aber leider
wie der letzte Eintrag hier schon zeigt schalten die Dosen nicht per Weboberfläche der HA-Bridge. Bekomme
nur folgende INFO im Log:

On/off url not available for state change, lightId: 1, userId: wird hier angezeigt,
from IP: 192.168.xxx.xx, body: {"on":false}

Meine Frage gibts denn von den Tüftlern schon ne Lösung? Scheint ja seit Fritz!OS 7.0 zu bestehen.
Kenn mich leider mit PHP nicht so aus.

Gruß Rico

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 17. Dezember 2018 19:09
von Kat-CeDe
Hi,
wie wolltest Du die Steckdosen denn in HA-Bridge einbinden? Für AVM-Dect gibt es bei Alexa einen Skill.

Wenn Du wirklich HA-Bridge benutzen willst wird es etwas komplizierter. Ich benutze Script aus Anhang und in HA-Bridge dann ./schalter.sh AIN-Nummer 0/1. AIN erfährt man im Fritz-Webinterface erfährt. Bei mir gehen so 7-8 200/210 und auch eine 546.

Ralf

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 17. Dezember 2018 19:40
von schubi70
Hallo,

danke für die schnelle Antwort. Besitze keine Alexa und ist erstmal auch nicht geplant,
deshalb ja, ich will alles über die HA-Bridge steuern. Deine schalter.sh werde ich ausprobieren
und dann bescheid geben ob es funktioniert.

Danke Rico

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 17. Dezember 2018 19:46
von schubi70
Hallo noch mal,

eine Frage hätt ich noch. Hab ich das richtig verstanden, die schalter.sh Datei muss
in den Hauptordner der HA-Bridge oder doch in data Ordner abgelegt werden?

Danke Rico

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 17. Dezember 2018 20:18
von Kat-CeDe
Hi,
es müsste wohl bei der Docker-Version nach /config/script da Du ja dieses Script mit 2 Parametern (AIN und 0 für aus oder 1 für an) aufrufen musst. Du musst das Script auch editieren und deine Daten am Anfang eintragen.

Ralf

Re: Harmony Ultimate und AVM Fritz!Dect

Verfasst: 17. Dezember 2018 20:48
von schubi70
Hallo Ralf,

ich glaub ich steh grad auf der Leitung, also ich hab jetzt folgendes gemacht:

schalter.sh --> jetzt couch.sh (user, pw + AIN sind angepasst)
--> config/script gibts nicht // HA-Bridge trotz über Docker installiert nicht in einem Docker Unterordner sondern in nem extra während der
Installation angelegten öffentlichen Ordner // dort gibts dann nur noch nen data Ordner dort liegt die couch.sh jetzt
--> das mit 0 und 1 bei der AIN versteh ich auch wegen ON/OFF -- meinst du so AIN/0 und AIN/1 direkt hinter dem couch.sh

HA-Bridge wäre dann so

Http Verb GET
Content Typ text/plain
Content Body On ./data/couch.sh AIN0
Content Body Off ./data/couch.sh AIN1

--> wie gesagt bin hier absoluter Neuling und Dankbar über jede Hilfe

Rico