Plugin: Any-Plugin für LoxBerry

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11218

    Plugin: Any-Plugin für LoxBerry

    Hallo und guten Tag!

    Hier stelle ich das Any-Plugin für LoxBerry vor.
    Warum Any? Weil man damit - vom Loxone Miniserver aus - beliebige Sachen am LoxBerry machen kann, und das Plugin Daten an den Miniserver zurückliefert.

    Info und Download:
    http://www.loxwiki.eu:80/x/7wBmAQ sowie


    Zielgruppe
    Erfahrene "Linuxer"

    Was kann das Plugin
    • Per TCP (Virtueller Ausgang und Virtuelle Ausgangsbefehle) können Linux-Shell-Kommandos aufgerufen werden.
    • Darüber hinaus kann das Plugin das Ergebnis an den Miniserver zurücksenden:
      • Der Exit-Code ("Errorlevel") des Kommandos kann in einen Virtuellen Eingang geschrieben werden
      • Der Output des Kommandos kann per UDP an den Miniserver gesendet werden. Mittels Virtuellen UDP Eingang Befehl kann der Output in Variablen geschrieben werden.
      • Die jeweilige Ausgabemethode kann pro Befehl mitgegeben werden (aus, nur Exitcode, nur UDP oder beides).
    • Sicherheitsmäßig lässt sich der Verbindungsaufbau einschränken nur auf Geräte des gleichen Subnetzes (Standard), oder auf einzelne IP-Adressen. Die Sicherheitsfunktionen werde ich - entsprechend der Interaktionsmöglichkeiten mit dem Miniserver - noch erweitern.
    Einsatzzweck

    Die Möglichkeiten gehen über das ledigliche Kommunizieren und Interagieren mit dem LoxBerry weit hinaus.
    Klassisches Problem mit dem Loxone Miniserver ist heute, dass der Loxone Miniserver etliche Standardprozeduren zur Kommunikation oder Authentifizierung mit Drittsystemen nicht unterstützt. Oft kann das schon mit einfachsten Mitteln, z.B. per Shell-Script unter Linux, realisiert werden. Diese Shell-Scripts (oder jedes andere Programm, das am LoxBerry läuft) kann nun aufgerufen, und dessen Output zurück an den Miniserver gesendet werden. Eine Neuentwicklung von speziellen Plugins kann damit vielleicht entfallen.

    Unterstützung
    Ideen suche ich für die Möglichkeit, eine Authentisierung zu implementieren, ohne dass in Loxone für jeden Befehl komplizierte Logiken notwendig werden. Vielleicht hat jemand eine coole Idee, wie man eine halbwegs sichere Authentisierung realisieren könnte.

    Fehler am besten im Repository melden: https://github.com/christianTF/LoxBe...gin-Any/issues

    lg, Christian
    Zuletzt geändert von Christian Fenzl; 14.08.2018, 20:19.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine
  • Prof.Mobilux
    Supermoderator
    • 25.08.2015
    • 4640

    #2
    Genial!
    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


    LoxBerry - Beyond the Limits

    Kommentar

    • tholle
      MS Profi
      • 26.08.2015
      • 829

      #3
      Geiles Ding! Das lässt sich wunderbar ausbauen. Wo nimmst du nur die Zeit immer her, für solche Sachen. Ich schaffe es nicht mal, meine eigenen Entwicklungen aus dem Betastatus zu bringen.

      Respekt und vielen Dank für deine Arbeit!

      Gruss,
      tholle

      Kommentar


      • svethi
        svethi kommentierte
        Kommentar bearbeiten
        Da hast Du Recht. Ich komme hier zur Zeit zu gar nichts und müsste mich um so viele Dinge kümmern
    • Chris8519
      Extension Master
      • 19.12.2015
      • 106

      #4
      Genial .. Vielen Dank .... Endlich Xiaomi Produkte ohne große umwege schalten und auslesen :-)))

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11218

        #5
        Das Plugin habe ich seit einem Jahr in der "Queue". Ein Jahr lang musste ich bei jedem Filmabend eine Taste am Glastaster drücken, um Leinwand, Rolläden und Licht in den Kino-Modus zu versetzen, und dann am Handy eine SSH-Verbindung mit dem Loxberry aufbauen, um Kodi zu starten. Jetzt hat's mir endgültig gereicht ;-)

        Der aktuelle Zustand war ein Sonntag Nachmittag+Abend. In Perl haben wir für den LB in der Zwischenzeit einen coolen Plugin-Baukasten (das Sample-Plugin, die Perl-Module), und ich hab den Code für die Kommunikationsabwicklung schon fixfertig aus dem Squeezelite Player Plugin (Gateway zwischen MS und Logitech Media Server).
        Nur beim Webinterface dauert's immer länger, weil ich so ein schlechter HTML-Designer bin, und man bei Benutzereingaben so viel aufpassen/abprüfen muss.

        Wenn ihr das testet's, freu ich mich über eure Rückmeldungen, wie ihr zurecht gekommen seid!

        lg, Christian
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Peter B
          MS Profi
          • 29.08.2015
          • 537

          #6
          Ich habe einen virtuellen Ausgang angelegt tcp://xxxxxxxx:9095 im Ausgangsverbinder LB_Hostname rcudp command hostname eingetragen
          einen UDP Eingang angelegt mit Empfangsport 9095 ohne Senderadresse aber Ich bekomme nichts zurück im Monitor

          Hab auch das Beispiel von Dir mit den GPIOS probiert kein Schalten und keine Rückmeldung

          Was mach Ich falsch?

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11218

            #7
            Kannst du bitte Troubleshooting nach dem Artikel durchführen: http://www.loxwiki.eu/display/LOXBER...+Alpha-Version

            Rebootet hast du nach der Installation?

            Ich Danke fürs Feedback! Jegliche Instabilität korrigiere ich sofort, wenn wir herausfinden, was Schuld ist.

            lg, Christian
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar

            • Peter B
              MS Profi
              • 29.08.2015
              • 537

              #8
              ps aux | grep tcp2shell
              root 1604 0.0 0.2 6536 2740 ? S 13:24 0:00 su - root -c /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl
              root 1612 0.0 1.6 19664 15724 ? Ss 13:24 0:02 /usr/bin/perl /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl
              loxberry 6224 0.0 0.2 4756 1908 pts/0 S+ 14:23 0:00 grep --color=auto tcp2shell



              /opt/loxberry/system/daemons/plugins/anyplugin
              chmod: cannot access ‘/opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/kill_tcp2shell.sh’: No such file or directory
              chmod: cannot access ‘/opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/kill_tcp2shell2.sh’: No such file or directory
              Password: "hab Ich eingegeben"
              LoxBerry home was statically set to /opt/loxberry as no home directory could be found. at /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl line 9.
              Global variables from LoxBerry::System
              Homedir: /opt/loxberry
              Plugindir: anyplugin
              CGIdir: /opt/loxberry/webfrontend/cgi/plugins/anyplugin
              HTMLdir: /opt/loxberry/webfrontend/html/plugins/anyplugin
              Templatedir: /opt/loxberry/templates/plugins/anyplugin
              Datadir: /opt/loxberry/data/plugins/anyplugin
              Logdir: /opt/loxberry/log/plugins/anyplugin
              Configdir: /opt/loxberry/config/plugins/anyplugin
              Restricted IPs (0):
              Any-Plugin mode is UNSECURE
              server waiting for tcp client connection on port 9095
              Created udp out socket to 10.0.0.77 on port 9096
              Can't call method "peerhost" on an undefined value at /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl line 198.


              echo Dirlisting rcudp command ls -l | nc loxberry 9095
              nc: getaddrinfo: Name or service not known


              echo Dirlisting rcudp command ls -l | nc 10.0.0.83 9095
              keine Ausgabe

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11218

                #9
                Danke!

                Kannst du bitte mal machen:
                apt-get install libio-socket-ip-perl

                Das sollte es beheben. Das Paket scheint im apt zu fehlen.

                lg, Christian
                Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                Kommentar

                • Peter B
                  MS Profi
                  • 29.08.2015
                  • 537

                  #10
                  da kommt die selbe Fehlermeldung installiert wurde es und neu gestartet hab Ich auch

                  Kommentar

                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11218

                    #11
                    Machst du das als root?
                    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                    Kommentar

                    • Peter B
                      MS Profi
                      • 29.08.2015
                      • 537

                      #12
                      bin mit user loxberry im putty

                      Kommentar

                      • Christian Fenzl
                        Lebende Foren Legende
                        • 31.08.2015
                        • 11218

                        #13
                        Das musst du mit root machen, wie man's in den Beispielen sieht.
                        Ich weiß nicht, ob der normale User einfach eine Remote-Netzwerkverbindung annehmen darf (dort schlägts nämlich auf).
                        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                        Kommentar

                        • Peter B
                          MS Profi
                          • 29.08.2015
                          • 537

                          #14
                          OK hab su eingegeben dann das passwort und den Befehl neu ausgeführt ändert aber nichts

                          root@Wohnzimmer:/opt/loxberry/webfrontend/cgi/plugins/sms# /opt/loxberry/system/daemons/plugins/anyplugin
                          chmod: cannot access ‘/opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/kill_tcp2shell.sh’: No such file or directory
                          chmod: cannot access ‘/opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/kill_tcp2shell2.sh’: No such file or directory
                          LoxBerry home was statically set to /opt/loxberry as no home directory could be found. at /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl line 9.
                          Global variables from LoxBerry::System
                          Homedir: /opt/loxberry
                          Plugindir: anyplugin
                          CGIdir: /opt/loxberry/webfrontend/cgi/plugins/anyplugin
                          HTMLdir: /opt/loxberry/webfrontend/html/plugins/anyplugin
                          Templatedir: /opt/loxberry/templates/plugins/anyplugin
                          Datadir: /opt/loxberry/data/plugins/anyplugin
                          Logdir: /opt/loxberry/log/plugins/anyplugin
                          Configdir: /opt/loxberry/config/plugins/anyplugin
                          Restricted IPs (0):
                          Any-Plugin mode is UNSECURE
                          server waiting for tcp client connection on port 9095
                          Created udp out socket to 10.0.0.77 on port 9096
                          Can't call method "peerhost" on an undefined value at /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl line 198.

                          Kommentar

                          • Christian Fenzl
                            Lebende Foren Legende
                            • 31.08.2015
                            • 11218

                            #15
                            Ok, muss ich daheim nochmal probieren...
                            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                            Kommentar

                            Lädt...