Ankündigung

Einklappen
Keine Ankündigung bisher.

Enertex Appliance mit SV3.1

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

    Enertex Appliance mit SV3.1

    Guten Morgen

    Seit vielen Jahren gibt es ja in der smartVISU etwas versteckt in der Doku ein Beispiel für die Abfrage eines Enertex Routers.
    Ich habe zwar ein IP Secure Interface 1168, aber die entscheidenden Telnet Befehle etc. sind IMHO identisch. Ich habe zumindest nichts gefunden, was händisch nicht genauso geht, wie man es in ..\smartVISU\lib\appliance\enertex.iprouter.php findet. Die Verbindung ist normales Telnet auf Port 23. Die Firmware Version des Enertex ist 1.039.

    Das Widget sieht so aus:

    Code:
    {{ appliance.iprouter('iprouter1', '192.168.xxx.xxx', 'totalgeheimespasswort') }}
    Das sollte so eigentlich passen. Im Beispiel in der Doku steht da zwar keine IP und kein Passwort, aber das lässt sich aus dem Widget-Code rauslesen.
    Ohne das kommt auch sofort ein Kommunikationsfehler.
    Mit IP und Passwort kommt erst mal gar nichts, dann ein Timeout Fehler. Dass irgendeine Verbindung zu dem Interface aufgebaut wird, sieht man daran, dass ich mich dann für einige Zeit nicht per Putty direkt mit dem Interface verbinden kann.

    Die enertex.iprouter.php verstehe ich ganz gut und alles sieht plausibel aus. Dort wird wohl auch includes.php und service.php includiert, aber das habe ich noch nicht richtig durchschaut.
    Den JS Code im Widget blick ich kaum, eher gar nicht. Das sieht mir aber danach aus, dass dort erstmal nur die enertex.iprouter.php aufgerufen wird und der Rest ist wohl nur Formatierung und Ausgabe der Antwort.
    Mit dem Browser-F12 Zeug komme ich auch nicht weiter. Das erschlägt mich nur und ich weiß nicht wo genau ich suchen soll.

    Ich habe auch das Forum schon durchsucht und einiges gefunden, aber das bestätigt eigentlich alles nur, dass es klappen müsste. Die Treffer sind aber auch ziemlich alt, noch aus Apollo Zeiten.

    Hat das irgendwer mit der SV3.1 am laufen und könnte mir helfen?

    Gruß, Martin

    #2
    Hast Du speziell Probleme unter SV3.1 oder ganz allgemein mit dem Widget? Zur SV3.1 kann ich noch nichts sagen, da ich noch 3.0 einsetze.
    Bei mir ist das Widget folgendermaßen für die automatische Generierung konfiguriert:
    Code:
        sv_widget: "{% import 'appliance.html' as appliance %} {{ appliance.iprouter('MYEnertex', '10.0.0.135', '') }}"
    Ich habe auf dem Router noch die Firmware 1.036 laufen. In der Visu siehr das dann folgendermaßen aus:
    Enertex Router Widget.jpg
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Ich verwende zwar die Autogenerierung von SHNG nicht, aber der Rest sieht bei mir auch nicht viel anders aus, nur dass ich noch das Passwort drin habe.
      Du bekommst die Daten ohne Passwort? Wusste gar nicht dass das geht, also dass man die Enertex Interfaces ohne Passwort für Telnet betreiben kann.

      Das Problem habe ich auch schon in älteren Versionen gehabt. Da ist aber glaube ich auch nichts verändert worden.
      Es passiert nichts für ein paar Sekunden und dann kommt ein Connection Timeout.

      EDIT: Man kann tatsächlich das Passwort im Interface löschen. Aber auch ohne Passwort kommt das Timeout.
      Zuletzt geändert von Sipple; 03.08.2021, 10:24.

      Kommentar


        #4
        Hi Martin,

        Ruf den Service mal mit Debug-Option auf:
        Code:
        <DeineSmartVisuIP>/smartVISU/lib/appliance/enertex.iprouter.php?server=192.168.xxx.xxx&pass=totalgeheimespasswort&debug=1
        Server und Passwort kannst Du auch mit den Variablennamen manuell in die config.ini eintragen, anstatt sie im Aufruf anzugeben:
        Code:
        config_appliance_iprouter_server = "192.168.xxx.xxx"
        config_appliance_iprouter_pass = "totalgeheimespasswort"
        Bekommst Du dann Daten vom Interface angezeigt?

        Gruß
        Wolfram

        Kommentar


          #5
          Telnet geht aber nur, wenn Secure am ENERTEX deaktiviert ist.
          Mfg Micha
          Ich sage ja nicht, das wir alle dummen Menschen loswerden müssen, aber könnten wir nicht einfach alle Warnhinweise entfernen und den Dingen ihren Lauf lassen?

          Kommentar


            #6
            Ich versuch's mal, danke.

            Secure ist bei mir im Interface NICHT aktiv.

            Kommentar


              #7
              Also:

              In einem neuen Browser TAB eingegeben:

              Code:
              http://192.168.xxx.xxx/smartvisu/lib/appliance/enertex.iprouter.php?server=192.168.xxx.xxx&debug=1
              Das Visu Vezeichnis ist bei mir alles klein geschrieben. Das Passwort ist zu Testzwecken momentan gelöscht, der Aufruf stimmt dann so denke ich.

              Es dauert dann eine gefühlte Ewigkeit, dann kommt folgendes im Fenster raus:

              Code:
              /*******************************************************************************
              data
              --------------------------------------------------------------------------------
              Array
              (
              )
              
              *******************************************************************************/
              
              []
              Es kommt also irgendwas zurück, nur was da so lange dauert, dass die Visu ein Timeout anzeigt und warum die Antwort mehr oder weniger leer ist, ist die Frage.

              Über Telnet (Putty direkt) verhält sich das Interface wie erwartet. Keinerlei Auffälligkeiten.

              Kommentar


                #8
                Gibt es irgendwelche php-Fehlermeldungen im error.log des Webservers?

                Wenn Du Zeile 30 in der enertex.iprouter.php ersetzt durch
                Code:
                parent::init($request);
                dann sollten Fehlermeldungen auch auf der Debug-Seite (s. oben) angezeigt werden. Die Änderungen in der service.php von v3.0 auf v3.1 betreffen alle nur das Error-Reporting. Das sollte auf die Funktion des Enertex-Services keinen Einfluss haben.

                Übrigens verwendet der Service den Port 23. Passt das?

                Kommentar


                  #9
                  Der Port 23 passt.

                  Im error.log des Apache steht nur das:

                  Code:
                  192.168.178.109 - - [03/Aug/2021:13:25:48 +0200] "GET /smartvisu/lib/appliance/enertex.iprouter.php?server=192.168.178.69&debug=1 HTTP/1.1" 200 468 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90$
                  192.168.178.109 - - [03/Aug/2021:13:26:48 +0200] "GET /favicon.ico HTTP/1.1" 404 496 "http://192.168.178.95/smartvisu/lib/appliance/enertex.iprouter.php?server=192.168.178.69&debug=1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv$
                  192.168.178.109 - - [03/Aug/2021:13:49:56 +0200] "GET /smartvisu/lib/appliance/enertex.iprouter.php?server=192.168.178.69&debug=1 HTTP/1.1" 200 468 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90$
                  192.168.178.109 - - [03/Aug/2021:13:50:56 +0200] "GET /favicon.ico HTTP/1.1" 404 496 "http://192.168.178.95/smartvisu/lib/appliance/enertex.iprouter.php?server=192.168.178.69&debug=1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv$
                  FYI: Firefox und Edge verhalten sich gleich.

                  Kommentar


                    #10
                    Anbei eine etwas erweiterte Version der Enertex Appliance. Die Endung muss in '.php' umbenannt werden. Damit wird die Debug-Seite etwas auskunftsreudiger.
                    Angehängte Dateien

                    Kommentar


                      #11
                      Code:
                      /*******************************************************************************
                      data
                      --------------------------------------------------------------------------------
                      Array
                      (
                          [0] => Array
                              (
                                  [title] => enertex IP-Router
                                  [text] => Connection timed out (110)
                              )
                      
                      )
                      
                      *******************************************************************************/
                      
                      [{"title":"enertex IP-Router","text":"Connection timed out (110)"}]
                      Deckt sich mit der Fehlermeldung, die in der Visu oben rechts über den status.notify kommt.

                      Kommentar


                        #12
                        Zum Test habe ich den Enertex Service einfach mal auf das CLI von smarthomeNG losgelassen. (CLI Plugin aktiviert, shNG-IP verwendet, in der enertex.iprouter.php in Zeile 64 den Port von 23 auf 2323 umgebogen. Die Verbindung kommt sofort zustande (siehe unten). Mit entsprechenden Änderungen im weiteren Code lassen sich auch die Anweisungen des CLI übertragen und ausführen.
                        Code:
                        /*******************************************************************************
                        Received file pointer
                        --------------------------------------------------------------------------------
                        Resource id #10
                        *******************************************************************************/
                        /*******************************************************************************
                        TELNET response
                        --------------------------------------------------------------------------------
                        SmartHomeNG v1.8.2.master (5c3f6d20) Enter 'help' for a list of available commands. CLI >
                        *******************************************************************************/
                        Aus meiner Sicht ist der Service deshalb in Ordnung. Du könntest das auch mal testen, um sicher zu gehen, dass Deine php-Version vollständig / in Ordnung ist.
                        Wenn sich das bestätigt, muss man - denke ich - weiter untersuchen, warum der Enertex-Router auf den Verbinduntgsversuch nicht antwortet.

                        Gruß
                        Wolfram

                        Kommentar


                          #13
                          Servus Wolfram

                          Ich habe das wie du getestet, mit dem CLI und das klappt genauso.

                          Code:
                          /*******************************************************************************
                          Received file pointer
                          --------------------------------------------------------------------------------
                          Resource id #10
                          *******************************************************************************/
                          
                          /*******************************************************************************
                          TELNET response
                          --------------------------------------------------------------------------------
                          SmartHomeNG v1.8.2.master (0f462a1e)
                          ��Password:
                          *******************************************************************************/
                          
                          /*******************************************************************************
                          data
                          --------------------------------------------------------------------------------
                          Array
                          (
                          )
                          
                          *******************************************************************************/
                          
                          []
                          Die Schnittstelle verschluckt sich beim Verbindungsaufbau durch die smartVISU.
                          Mit Putty aber nicht. Was ist also anders? Irgendein Timing? Schwierig.
                          "Normalerweise", wenn ich versuche über die smartVISU Daten zu bekommen, ist die Schnittstelle dann eine Weile blockiert, reagiert dann auch nicht mehr auf einen Putty Verbindungsaufbau. Gestoppt habe ich die Zeit nicht, aber wird so um eine Minute sein.
                          Gestern dann, nach einigen Tests, war sie irgendwann dermaßen beleidigt, dass sie gar nicht mehr wollte. Also das Telnetinterface war dauerhaft blockiert. Nur ein Reset hat geholfen.

                          Ich habe mir jetzt das gute alte Wireshark genommen und werde das mal tracen. Mit Putty und mit dem PHP. Ob man da was sieht weiß ich nicht, aber einen Versuch ist es wert.

                          Evtl. mal mit Enertex kommunizieren.

                          Msinn kannst du den genauen Typ deines Enertex Routers posten?
                          Meine ist wie gesagt kein Router, sondern das Enertex KNX IP Secure Interface mit der Artikel-Nummer 1168. Mit AUSGESCHALTETER Security.

                          Kommentar


                            #14
                            Moin Martin,

                            der Timeout ist in Zeile 64 auf 3 Sekunden eingestellt (letzter Parameter im Aufruf @fsocketopen). Das sollte normalerweise reichen, sofern nicht andere Clients auch noch am IP-Interface Schlange stehen. Vielleicht hilft es, den Timeout zu verlängern?

                            Gruß
                            Wolfram
                            Zuletzt geändert von wvhn; 04.08.2021, 10:13.

                            Kommentar


                              #15
                              Hi Wolfram

                              Kann ich auch noch versuchen, aber ich habe jetzt erst mal die Verbindung von meinem Desktop über Putty zum Interface und vom smartVISU Server über PHP zum Interface getraced.

                              Putty (funktioniert):

                              Putty to Interface.png

                              Paket 68: Putty TCP Connection establish request zum Interface
                              Paket 70: Acknowledge vom Interface
                              Paket 71: Acknowledge vom Putty
                              Paket 73: Hier wird's interessant. Putty schickt die erste TELNET Nachricht mit mehreren WILL und DO Kommandos.
                              Paket 75: Interface antwortet mit WILL Suppress Go Ahead und Will Echo.
                              Paket 76: Acknowledge vom Putty
                              Paket 78: Login Meldung vom Interface

                              Von hier an triviale Kommunikation im Klartext, sprich, man sieht den Text den die Partner austauschen, z.b. Eingabe des Interface Kommandos "stats" und die Antwort.

                              PHP (geht nicht):

                              PHP to Interface.png
                              Die ersten drei Pakete (428, 429, 430) sind quasi identisch zu den ersten drei über Putty.

                              Dann passiert 60s lang gar nichts und dann schickt das PHP Script ein LOGOUT (Paket 1613). So etwas wie oben im Paket 73 kommt vom PHP nicht. Könnte das das Problem sein? Worauf wartet das PHP Script?
                              Nach dem Logout wird die TCP Connection zugemacht und auch vom Interface bestätigt. Warum das Interface dann noch ein TCP Reset hinterher schickt weiß ich nicht.

                              Bin leider mit bei TCP/Telnet nicht fit. Wenn's SCTP/DIAMETER/M3UA/LDAP/SOAP/MAP/SCCP oder sowas wäre, könnte ich es wahrscheinlich ziemlich genau sagen. Ist also nur eine Vermutung, dass die fehlende WILL und DO Kommunikation das Problem ist. Vielleicht ist da mein Enertex Interface etwas zickig. Mich wundert nur, warum das PHP Script 60s schlicht nix macht und dann mit einem LOGOUT abbricht. Ich schätze, das Script wartet auf den "Prompt" vom Interface.

                              Gruß, Martin
                              Zuletzt geändert von Sipple; 04.08.2021, 11:12.

                              Kommentar

                              Lädt...
                              X