Ankündigung

Einklappen

PLUGINS

Bitte im Titel immer zuerst den Namen des Plugins hinschreiben
Mehr anzeigen
Weniger anzeigen

Plugin: Any-Plugin für LoxBerry

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

  • #76
    Wo kann ich Scripte oder Programmdateien, die nicht zu einem Plugin gehören am LB speichern, dass sie bei einem LB oder Plugin Update nicht verloren gehen?

    Kommentar


    • #77
      Irgendwo, zb /opt/meinedateien/

      Die RAM-Disk wurde beim Backup der Commands voll. Deswegen hat er nicht alles kopiert.
      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

      Kommentar


      • iselo
        iselo kommentierte
        Kommentar bearbeiten
        Danke

      • iselo
        iselo kommentierte
        Kommentar bearbeiten
        muss ich den Ordner dann als root anlegen?

      • Christian Fenzl
        Christian Fenzl kommentierte
        Kommentar bearbeiten
        Wenn du als loxberry keine Rechte hast, dann Ja.
        Mit chmod kannst du natürlich dem loxberry-User Rechte geben.

    • #78
      Hallo Zusammen,
      ich steh grad vor einem kleinen Problem.

      Ich möchte gerne einen Teil der Benachrichtigungen an einen externen Chat leiten.
      Hierzu nutze möchte ich die Chat Funktion des Synology NAS / NVS benutzen.

      Ziel soll sein, die Texte (Nachricht, Anhänge, etc.) über einen Statusbaustein zu generieren.

      Die API des Synology Chats lautet

      Code:
      curl -X POST \ --data-urlencode 'payload={"text": "This is a test"}' \ https://DS_IP/webapi/entry.cgi?api=SYNO.Chat.External&XXXXX
      Quelle: https://kb.synology.com/de-de/DSM/tu...at_Integration

      Umformatiert für das AnyPlugin müsste der Code wie folgt lauten.

      Code:
      CHAT off command curl -X POST "https://ADRESSE.synology.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=XXXXX" -H "Content-Type: application/x-www-form-urlencoded" -d "payload=%7B%22text%22%3A%20%22Hallo%22%7D"
      Über einen einfachen Virtuellen Ausgang mit dem oben genannten Code als Befehl bei Ein funktioniert es. Und der Text wird in den Kanal gepostet.


      Für die dynamik ist der Code aber unpraktisch, wegen dem urlencode/urldecode. "Hallo" kann so nicht z.b. durch <v1> ersetzt werden, um dort den Text des Statusbausteins einzufügen.

      Man kann den Code jedoch auch mit folgender Änderung absenden.
      Code:
      CHAT off command curl -X POST "https://ADRESSE.synology.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&v ersion=2&token=XXXXX" -H "Content-Type: text/plain" -d "payload={\"text\": \"Hallo\"}"
      Getestet mit Windows CMD sowie https://reqbin.com/req/zvtstmpb/post-request-example

      Jedoch machen dann beim Einbau von <v1> die \ anscheinend beim AnyPlugin Probleme.

      Jemand eine Idee, wie man das ganze umsetzten könnte?
      Bash gehört noch nicht zu meinen Kompetenzen.


      Meine letzte Idee wäre der Weg über die AnyPlugin Makro Funktion und in diese dann eine urlencode Funktion zu integrieren.
      Code:
      CHAT off synologychat "Hier steht dann die Nachricht"

      Vielleicht überseh ich auch etwas....

      Viele Grüße
      Zuletzt geändert von SvBo; 30.12.2021, 18:53.

      Kommentar


      • #79
        Hier ein einfaches Beispielscript für LoxBerry XL:
        https://github.com/mschlenstedt/Loxb...ology_chat.php

        Hinein damit ins /opt/loxberry/webfrontend/html/XL/user/ Verzeichnis, und aufrufen vom Miniserver per
        HTTP-Ausgang: http://loxberry
        HTTP Ausgangs-Befehl: /XL/user/synology_chat.php?text=Hier steht mein Text.

        Nicht getestet, hab keine Synology.
        Du kannst es vorher vom Browser aus testen, ob es korrekt funktioniert.

        Wenn du einen Fehler findest, übernehme ich deine Weiterentwicklung gerne zurück ins LoxBerry-Repo.

        lg, Christian

        PS: Was LoxBerry XL ist und wie das funktioniert, findest du im Wiki.
        Zuletzt geändert von Christian Fenzl; 30.12.2021, 22:16.
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar


        • SvBo
          SvBo kommentierte
          Kommentar bearbeiten
          Hallo Christian,
          LoxBerr XL kannte ich leider nicht .... aber der Weg über PHP Skripte macht vieles natürlich einfacher.
          Dein Beispielcode funktioniert perfekt.


          Vielen Dank für die Hilfestellung.

      • #80
        Hallo Zusammen und vielen Dank für Euren Einsatz. Ich bin am herumprobieren mit dem AnyPlugin.

        Ich hoffe, das ich das Plugin richtig verstanden habe:
        Meine Anforderung:

        Ich möchte einen Record einer Web Datenbank in der Loxone auslesen. Die Datenbank übergibt Json und ist mit einem Bearer Token gesichert.
        - Also ich stelle in der config einen Virtuellen http Ausgang auf die IP der Loxberry mit dem Port der AnyPlugin.
        - Dann sende ich den Befehl (bei EIN) zum Plugin und sollte als Antwort den request der Anfrage im konfigurierten (AnyPlugin) UDP Virtuellen Eingang erscheinen (wenn dien Befehlserkennung stimmt.
        -Die GET Anfrage ist nicht lokal sondern geht auf das WEB.

        Würde das so funktionieren oder habe ich ein Verständnisproblem?

        Wenn das so funktioniert habe ich die Shell Anfrage im Virtuellen Ausgang Folgendermaßen zusammengebaut:

        Test{Parameter1 Name} udp{parameter2} command curl -X GET "https://api.adalo.com/v0/apps/{APPID}/collections/{collectionID}/{RECORDID}" -H "Content-Type: application/json" -H "Authorization: Bearer {TOKEN}"

        -Die Anfrage funktioniert un CURL wenn ich z.B. auf REQBIN teste.
        -Das Schreib ich in der Config in Befehl bei ein (header brauch ich keinen das das bereits im Befehl steht)

        Nach dem absetzten des Befehls in der Config bekomme ich folgendes im Log von ANYPlugin:

        ####### New Connection ### 122-8-7 9:27:14 LOCAL TIME ######
        Remote: {IP Miniserver}
        New guest connection accepted from {IP Miniserver}.
        GUEST: GET Test%20udp%20command%20curl%20-X%20GET%20%22https://api.adalo.com/v0/apps/{APPID}/collections/{collectionID}/{RECORDID}/{RECORDID}%22%20-H%20%20%22Content-Type:%20application/json%22%20-H%20%20%22Authorization:%20Bearer%{TOKEN}%22 HTTP/1.1Host: {IPLoxberry}:9095
        User-Agent: [en]
        Content-Type: application/json" -H "Authorization: Bearer {TOKEN}"; charset=utf-8
        Connection: close
        Test udp command curl -X GET "https://api.adalo.com/v0/apps/{APPID}/collections/{collectionID}/{RECORDID}" -H "Content-Type: application/json
        Authorization: Bearer {TOKEN}
        1. Parameter (Name) is GET
        2. Parameter undefined - set to rc
        3. Parameter is undefined - QUITTING guest
        Argument "adalo.com/v0/apps/{APPID}/c..." isn't numeric in numeric lt (<) at /opt/loxberry/webfrontend/cgi/plugins/anyplugin/bin/tcp2shell2.pl line 289.
        ERROR: Given number of Miniserver (adalo.com/v0/apps/{APPID}/collections/{collectionID}/{RECORDID}%22%20-h%20%20%22content-type:%20application/json%22%20-h%20%20%22authorization:%20bearer%{TOKEN}) does not exist - QUITTING guest
        Doing nothing, client good bye!​

        Kann mir eventuell jemand sagen wo ich was falsch mache - oder bin ich total auf dem Holzweg? Vielen dank für eure Hilfe. und Liebe Grüsse



        Kommentar


        • #81
          Kannst du bitte Screenshots von virtuellem Ausgang und Virtuellem Ausgangsbefehl machen.

          Das Plugin empfängt
          GET Test%20….

          sollte aber empfangen
          Test udp command curl -X …

          Sendest du wirklich an
          tcp://loxberry:9095

          und nicht etwa an
          http://loxberry:9095
          Zuletzt geändert von Christian Fenzl; 07.09.2022, 15:21.
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar


          • #82
            Hallo Christian.
            Danke für die Antwort. Ich glaube der Screenshot ist nicht Notwendig, da ich natürlich auf http://loxberry:9095​ und nicht auf TCP gesendet habe.
            Da sieht man mal wieder das man sich Beschreibungen durchlesen sollte - Das habe ich leider nur überflogen.
            Das heißt aber im Umkehrschluss, dass es eigentlich schon alles so funktionieren sollte?

            ich teste das mal gleich und melde gleich mich zurück. Danke für die Hilfe

            Kommentar


            • #83
              Hallo Miteinander - Hat alles perfekt funktioniert vielen dank - jetzt gehts an die Befehlserkennung Das Plugin hat die Werte zurückgesendet. in der Config ist noch keine Ausgabe da. Das werde ich jetzt weiter testen. Super und vielen Dank!!!

              Kommentar


              • #84
                Hallo Danke nochmal für die Hilfe aber ich habe jetzt eine Verständnis Frage Vielleicht kann mir da noch jemand auf die Sprünge helfen:

                Ich bekomme Folgendes im Log zurück:

                {"id":2,"tes34":"5656","Imagephoto":{"url":"htt ps://adalo-uploads.imgix.net/XXX.jpeg","size":2150703,"width":4032," height":3024,"filename":"2022-02-25 14-25-03.jpeg"},"created_at":"2022-09-01T09:28:58.088Z","updated_at":"2022-09-01T09:28:58.088Z"}
                SEND via UDP to MS1: "Test": % Total % Received % Xferd Average Speed Time Time Time Current
                Dload Upload Total Spent Left Speed

                Grün sind die Richtigen Werte aber an den Miniserver wird das Orangene gesendet hier finde ich keine Werte die ich ich Erkennen kann. Im Udp Monitor finde ich dann auch den orangen Text.
                Muss ich hier noch etwas einstellen oder verstehe ich es nicht?​

                Kommentar


                • #85
                  Probier mal zusätzlich den Parameter -s
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar


                  • #86
                    Hallo Miteinander,
                    Rückmeldung
                    Christian - Vielen Dank. Und danke für das AnyPlugin - läuft tadellos - somit kann man mit dem Miniserver jede Rest "anzapfen" und Kommunizieren - wenn man den entsprechenden Token hat

                    Ich habe es so gemacht:
                    Parameter 1: Name (ist zum Identifizieren welche Antwort man bekommen hat - wenn mehr als eine Anfrage zum UDP gesendet wir.
                    Parameter 2: Ich habe rcudp benutzt - udp würde auch laufen.
                    Parameter 3: in meinem Fall der Curl Befehl
                    Parameter 4: das "-s" damit auch die abgefragten werte zum udp gelangen

                    UDP Eingang Mit der IP Adresse der Loxberry versehen und die Sendeadresse eingeben - entsprechende Befehlserkennung - und schon hat man den Wert den man von der API Request braucht.
                    AnyPlugin ist echt genial. Vielen Dank

                    Kommentar


                    • #87
                      Hallo Christian,

                      Klasse Plugin.

                      Ich frage alle 10 Sec eine Webpage ab und über nehme dann die Werte im Miniserver, klappt auch alles wunderbar.
                      Nur quillt so langsam dann das Logfile über, nach 2 Tagen (nach einem Loxberry Neustart) sind es nun schon 20 MB. Kann man irgendwie die Ausgabe ins Logfile unterdrücken? in den Einstellungen im Anyplugin ist ja nicht, auch in der Pluginverwaltung ist nix. Oder irgendwie alle x Tage die Log löschen/archivieren?

                      Beste Grüße Dirk

                      Kommentar


                      • #88
                        Welche Logfiles hast du denn?
                        Weil das Plugin imho gar keine separaten Logfiles schreibt, sondern alles nach STDERR piped.
                        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                        Kommentar


                        • #89
                          Na, es schreibt doch nach /opt/loxberry/log/ramlog/log/plugins/anyplugin das tcp2shell.log. Ist auch in der Config des Anyplugin anklickbar.

                          Kommentar


                          • #90
                            Könntest du mal an der Shell als root anmelden und machen:
                            chown loxberry:loxberry /opt/loxberry/log/plugins/anyplugin/tcp2shell.log

                            und dann mal ein bisschen über eine Stunde warten, ob das File dann vom LoxBerry zusammengeräumt wird.
                            Ich glaube, die LoxBerry Aufräumroutine hat keine Rechte auf das File.

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

                            Kommentar


                            • Sunny
                              Sunny kommentierte
                              Kommentar bearbeiten
                              Ok, hab ich gemacht. Das File gehörte vorher root:root.
                              Ich beobachte...

                              Update: OK. funktioniert! Danke!
                              Zuletzt geändert von Sunny; 09.11.2022, 15:18.
                          Lädt...
                          X