Ankündigung

Einklappen
Keine Ankündigung bisher.

Home-Connect | 2nd

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jonofe
    antwortet
    Das rot habe ich hier im Forum formatiert.
    Das liegt daran, dass du eine Datei mit gleichem Namen hast.
    Mach besser:

    Code:
    ln -s /usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php /usr/local/edomi/www/visu/[COLOR=#FF0000]hc.php[/COLOR]
    Und dann änderst du die Callback URI, so dass sie hc.php aufruft, statt hc_code.php. Dann bleibt deine alte Datei zur Sicherheit bestehen.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Du solltest dir mal anschauen, was in Linux ein symbolischer Link ist, ansonsten wirst du es nicht hinbekommen.
    Ich denke ich habe es verstanden ... In Windows sind das quasi diese Verknüpfungen die man in vielen Verzeichnissen benutzen kann um auf eine Datei in einem bestimmten Verzeichnis zugreifen kann ...

    Ich habe auch das gelesen...
    Create the symlink for alt-example.com with the target of example.com. Be sure to replace the domain names in the example with your own domain names.

    ln -s example.com alt-example.com

    Here's the command breakdown:
    ln - Makes a link.
    -s - Designates a symlink.
    example.com - Your target folder. This is the one that has the content.
    alt-example.com - Your alias. This is the new alternate domain that currently has no content.
    You should now be able to visit http://alt-example.com and see your website content that is also displayed on example.com.

    Jedoch erhalte ich nachdem ich den LBS getriggert habe, folgendes Ergebnis ...
    Code:
    [root@edomi ~]# ls -la /usr/local/edomi/www/visu/hc_code.php
    
    -rw-r--r-- 1 root root 0 11. Okt 18:38 [COLOR=#FF0000]/usr/local/edomi/www/visu/hc_code.php[/COLOR]
    und von der Konsole folgendes Ergebnis ...
    Code:
    [root@edomi ~]# ln -s /usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php /usr/local/edomi/www/visu/hc_code.php
    
    ln: Erzeuge symbolische Verknüpfung „/usr/local/edomi/www/visu/hc_code.php“: Die Datei existiert bereits
    
    [root@edomi ~]# ls -la /usr/local/edomi/www/visu/hc_code.php
    
    -rw-r--r-- 1 root root 0 11. Okt 19:13 /usr/local/edomi/www/visu/hc_code.php

    Wieso kommt bei mir nicht wie bei dir ... in rot, der Pfad auf die EXE ... was mach ich noch immer falsch (oder darf die hc_code.php als Datei gar nicht im genannten Verzeichnis existieren) :-( ?
    Code:
    [root@edomi-development homeconnect]# ls -la /usr/local/edomi/www/admin/include/php/homeconnect/hc.php
    lrwxrwxrwx 1 root root 57 29. Mär 2019 [COLOR=#FF0000]hc.php -> /usr/local/edomi/www/data/liveproject/lbs/EXE19001570.php[/COLOR]

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Wie kann denn dann Homeconnect die Callback URI aufrufen?

    Ich kann nur vermuten, bin ja kein Netzwerker, dass wenn ich die Seite von HC aufrufe, auch die im HC definierte Umleitung zulasse ...

    Einen Kommentar schreiben:


  • jonofe
    antwortet


    Zitat von coliflower Beitrag anzeigen
    Ich würde NEIN sagen, mein komplettes LAN ist hinter einer FW (pfSense) und Edomit + KNX in eigenem VLAN ... Zugriff nur über VPN.

    Wie kann denn dann Homeconnect die Callback URI aufrufen?

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Ich hatte ja extra verlinkt was ein symbolischer Link ist
    Ich habe es eh versucht zu verstehen was Google hergibt, ich gebe es zu, ich habe es nicht verstanden ... werde mal weiter lesen bis es KLICK macht :-)

    Zitat von jonofe Beitrag anzeigen
    Du solltest dir mal anschauen, was in Linux ein symbolischer Link ist, ansonsten wirst du es nicht hinbekommen.
    Werde ich weiter lesen ... nur ... wenn ich den Symlink am Anfang (nach Anleitung) des EXEC Teils erstelle, was mache ich dann noch falsch bzw. verstehe ich zum jetzigen Zeitpunkt noch immer nicht ?

    Zitat von jonofe Beitrag anzeigen
    Ohne Reverse Proxy bedeutet du hast den EDOMI Server offen im Internet?
    Ich würde NEIN sagen, mein komplettes LAN ist hinter einer FW (pfSense) und Edomit + KNX in eigenem VLAN ... Zugriff nur über VPN.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von coliflower Beitrag anzeigen
    OK, hier habe ich verstanden dass ich in der hc.php den symbolischen link reinschreiben muss ... sorry.
    Nein. Ich hatte ja extra verlinkt was ein symbolischer Link ist. Es gibt nur eine einzige Datei, welche irgendeinen Code enthält und dass ist der LBS (EXEC Skript).
    Dein /usr/local/edomi/www/visu/hc_code.php muss ein symbolischer Link sein (DAS IST KEINE DATEI). Du solltest dir mal anschauen, was in Linux ein symbolischer Link ist, ansonsten wirst du es nicht hinbekommen.

    Ohne Reverse Proxy bedeutet du hast den EDOMI Server offen im Internet? Hmm, okay, kann man machen, muss man aber nicht.



    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Danke André für deine Unterstützung und deine Geduld :-)

    Zitat von jonofe Beitrag anzeigen
    Lege einfach einen symbolischen Link hc.php an, welcher auf dein EXEC Skript verweist. Und bei HC trägst du dann die URL zu dem hc.php ein.
    OK, hier habe ich verstanden dass ich in der hc.php den symbolischen link reinschreiben muss ... sorry.


    Zitat von jonofe Beitrag anzeigen
    Der symlink() Befehl stellt am Anfang des LBS sicher, dass dieser symbolische Link existiert
    Das habe ich jetzt gemacht ...

    Hier wird aber nicht wie bei dir der folgende Link ausgegeben ... /usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php
    Code:
    [root@edomi ~]# ls -la /usr/local/edomi/www/visu/hc_code.php
    -rw-r--r-- 1 root root 0 11. Okt 18:38 [COLOR=#0000FF]/usr/local/edomi/www/visu/hc_code.php[/COLOR]


    Im HomeConnect Portal ist dein RedirectURI
    Code:
    http://<deine DynDNS Domain>/homeconnect/hc.php
    Das funktioniert ... der CODE wird von HC übergeben ...
    Code:
    http://10.0.10.3/visu/hc_code.php


    Damit wird von HomeConnect dein EXEC Skript aufgerufen.
    Das funktioniert leider nicht :-(
    Der erste Logeintrag wird nicht ins Log geschrieben ...
    Die hc_tokens.php wird nicht erstellt ...

    ... hier der Zusatzcode am Anfang des EXEC Teils ...
    PHP-Code:
    ###[EXEC]###

    <?
    ///    SYMLINK wird erstellt wenn nicht verfügbar ...
    if (!is_link('/usr/local/edomi/www/visu/hc_code.php')) symlink('/usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php''/usr/local/edomi/www/visu/hc_code.php');

    ///    Dieser Code wird ausgeführt wenn HC (redirect_uri) das EXEC Skript aufruft (symlink) ...

    if (isset($_GET['code']))
    {
        
    LB_LBSID_DEBUG($id$remark.'EXEC (symlink) ............... script triggered',      6$log$llfalse);

        unset(
    $code$trigger);
        
    $code $_GET['code'];
        
    logic_setVar($id1$code);
        
    LB_LBSID_DEBUG($id$remark.'EXEC ($code) ................. '.serialize($code),   6$log$llfalse);

        
    $config['code']    = $code;
        
    LB_LBSID_DEBUG($id$remark.'EXEC ($config) ............... '.serialize($config), 6$log$llfalse);

        
    $client = new HomeConnect\Clients\HcClient($config);
        
    LB_LBSID_DEBUG($id$remark.'EXEC ($client) ............... '.serialize($client), 6$log$llfalse);

        
    $tokens    $client->getAccessTokenFromAuthorizationCode($code);
        
    LB_LBSID_DEBUG($id$remark.'EXEC ($tokens) ............... '.serialize($tokens), 6$log$llfalse);

        
    $pfad_hc_tokens_json    '/usr/local/edomi/www/visu/hc_tokens.json';
        
    file_put_contents($pfad_hc_tokens_jsonjson_encode($tokens));
        
    LB_LBSID_DEBUG($id$remark.'EXEC ($tokens) ............... new tokens were stored in '.$pfad_hc_tokens_json6$log$llfalse);
        
    LB_LBSID_DEBUG($id$remark.'EXEC (SSE) ................... now you can start SSE (trigger = 1)'            6$log$llfalse);
        unset(
    $tokens$code$config$client);
        die();


    Vielleicht liegt das aber daran ...
    Zitat von jonofe Beitrag anzeigen

    Im Reverseproxy leitest du
    http://<deine DynDNS Domain>/homeconnect

    auf
    http://<deine EDOMI-IP>/admin/include/php/homeconnect
    um.
    Reverseproxy ist für mich nur ein Begriff, auch habe ich keinen Proxy bei mir zuhause ...
    Ist das eine Voraussetzung für diese Symlink-Lösung oder interpretiere ich auch das wieder falsch :-( ?

    Nochmal danke vorab.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Wie
    Zitat von jonofe Beitrag anzeigen
    Lege einfach einen symbolischen Link hc.php an, welcher auf dein EXEC Skript verweist. Und bei HC trägst du dann die URL zu dem hc.php ein.

    Wie oben geschrieben. Du brauchst keine hc_code.php. Sondern nur einen sybolischen Link, der auf dein EXEC Skript zeit. Im EXEC Skript machst du den Rest. Der symlink() Befehl stellt am Anfang des LBS sicher, dass dieser symbolische Link existiert.

    Beispiel:

    hc.php ist ein symbolischer Link im Verzeichnis /usr/local/edomi/www/admin/include/php/homeconnect/ und verweisst auf dein EXEC Skript.

    Code:
    [root@edomi-development homeconnect]# ls -la /usr/local/edomi/www/admin/include/php/homeconnect/hc.php
    lrwxrwxrwx 1 root root 57 29. Mär 2019  [COLOR=#FF0000]hc.php -> /usr/local/edomi/www/data/liveproject/lbs/EXE19001570.php[/COLOR]
    Im Reverseproxy leitest du

    Code:
    http://<deine DynDNS Domain>/homeconnect
    auf

    Code:
    http://<deine EDOMI-IP>/admin/include/php/homeconnect
    um.

    Im HomeConnect Portal ist dein RedirectURI

    Code:
    http://<deine DynDNS Domain>/homeconnect/hc.php
    Damit wird von HomeConnect dein EXEC Skript aufgerufen.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Hallo André,

    hättest du für mich noch eine Anregung was ich prüfen könnte ?

    Ich kann in meiner Umsetzung (nach Anleitung) keinen Fehler finden, leider scheint die EXE1900070.php nicht getriggert werden - der CODE wird von HC an die redirec_uri (hc_code.php) zurückgegeben, die hc_code.php hat den oben erwähnten "Inhalt" aber es werden aus der EXE1900070.php keine Logeinträge generiert, auch die hc_tokens.json wird nicht geschrieben ... daraus schließe ich, dass die EXE nicht getriggert wird.

    Nochmals danke vorab für ein paar Ideen :-)

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    OK, entweder übersehe ich etwas oder ich bin zu blöd ... der EXEC Teil wird von der hc_code.php nicht getriggert (kein Eintrag im Log, geschweige die Tokens werden gespeichert) ...

    die hc_code.php sieht folgendermaßen aus:
    PHP-Code:
    <?php
    if (! is_link('/usr/local/edomi/www/visu/hc_code.php'))
    {
        
    symlink('/usr/local/edomi/www/data/liveproject/lbs/EXE19000070.php''/usr/local/edomi/www/visu/hc_code.php');
    }
    ?>

    Und der LBS selbst (EXEC Bereich) wurde folgendermaßen geändert ...
    PHP-Code:
    ###[EXEC]###

    <?
    ///    Dieser Code wird ausgeführt wenn HC (redirect_uri) das EXEC Skript aufruft (symlink) ...
    ///
    if (isset($_GET['code']))
    {
        LB_LBSID_DEBUG($id, $remark.'EXEC (symlink) ............... script triggered', 6, $log, $ll, false);
    ///
        unset($code, $trigger);
        $code = $_GET['code'];
        logic_setVar($id, 1, $code);
        LB_LBSID_DEBUG($id, $remark.'EXEC ($code) ................. '.serialize($code),   6, $log, $ll, false);
    ///
        $config['code']    = $code;                                                                                    //    brauche ich es hier schon überhaupt (übergabe an die KLASSE)?
        LB_LBSID_DEBUG($id, $remark.'EXEC ($config) ............... '.serialize($config), 6, $log, $ll, false);
    ///
        $client = new HomeConnect\Clients\HcClient($config);
        LB_LBSID_DEBUG($id, $remark.'EXEC ($client) ............... '.serialize($client), 6, $log, $ll, false);
    ///
        $tokens    = $client->getAccessTokenFromAuthorizationCode($code);                                                //    wenn $code in $config, bruache ich es hier in () auch ?
        LB_LBSID_DEBUG($id, $remark.'EXEC ($tokens) ............... '.serialize($tokens), 6, $log, $ll, false);
    ///
        file_put_contents($pfad_hc_tokens_json, json_encode($tokens));
        LB_LBSID_DEBUG($id, $remark.'EXEC ($tokens) ............... new tokens were stored in '.$pfad_hc_tokens_json, 6, $log, $ll, false);
        LB_LBSID_DEBUG($id, $remark.'EXEC (SSE) ................... now you can start SSE (trigger = 1)'            , 6, $log, $ll, false);
    ///
        unset($tokens, $code, $config, $client);
    ///
        die();
    }
    ///
    ///
    ///    Dieser Code wird ausgeführt wenn der LBS gettriggert wird ...
    ///
    require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
    require_once(dirname(__FILE__).'/../../../../main/include/php/HOME-CONNECT-API-PHP/scr/HomeConnect/autoload.php');
    set_time_limit(0);
    sql_connect();

    if ($E=logic_getInputs($id))

    ...
    ?>

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ja, das sollte ganz am Anfang stehen .

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Und der Code der mit if (isset($_GET['code'])) beginnt, muss dann am Anfang des EXE Bereichs stehen.
    Nur um sicher zu sein, d.h. vor "require..." ?

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    DANKE, werde es testen :-)

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Das funktioniert nicht. Lege einfach einen symbolischen Link hc.php an, welcher auf dein EXEC Skript verweist. Und bei HC trägst du dann die URL zu dem hc.php ein.
    Und der Code der mit if (isset($_GET['code'])) beginnt, muss dann am Anfang des EXE Bereichs stehen.

    Einen Kommentar schreiben:


  • coliflower
    antwortet
    ... auf die hc_code.php (oben das in HTML eingebetete PHP-Skript)
    Code:
    https://api.home-connect.com/security/oauth/authorize?client_id={KEY}=IdentifyAppliance+MonitorAppliance+Dishwasher+Washer+WasherDryer+Dryer+CoffeeMaker+Hood+FridgeFreezer-Settings+CleaningRobot-Settings+Hob-Settings+Oven-Settings&state=9pfQGTQlhsr7v_3BcP7fQZWv64WsEOv8yDdrRvEWIjgLS9Oy_zHDdQmzKA71kY4f&[COLOR=#FF0000]redirect_uri=http%3A%2F%2F10.0.10.3%2Fvisu%2F[B]hc_code.php[/B][/COLOR]&response_type=code

    Einen Kommentar schreiben:

Lädt...
X