Ankündigung

Einklappen
Keine Ankündigung bisher.

SCN-IP000.03 aus PHP per WebRequest ansteuern für KNX-Telegramme lesen und absetzen?

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

    [PHP] SCN-IP000.03 aus PHP per WebRequest ansteuern für KNX-Telegramme lesen und absetzen?

    Hallo Zusammen,

    hier im Forum bin ich neu und dies ist mein erster Beitrag.
    Sowohl im Web als auch auch hier im Forum habe ich alle möglichen Suchabfragen gestartet und stundenlang gelesen...
    Aber leider finde ich seit drei Tagen nicht, was ich suche: SCN-IP000.03 aus PHP per WebRequest ansteuern um KNX-Telegramme zu lesen und abzusetzen?


    Kurz zu mir: ich programmiere seit 33 Jahren in mehreren Programmiersprachen (COBOL, BASIC, Excel-VBA, VBS...) und seit 20 Jahren PHP mit MySQL-Anbindung. Auch WebRequests mit PHP und Excel-VBA sind mir vertraut.

    Die Elektriker haben mir auf meinen Wunsch hin eine coole Deckenbeleuchtung eingebaut und per KNX angeschlossen: 16 Stripes TW (Kalt- und warmweiß) und 16 Stripes TC (Farbe).

    Ansonsten gibt es keine KNX-Endgeräte, die zu steuern wären.

    Es gibt schon ein angeschlossenes und funktionierendes IP-Interface vom Hersteller MDT. Es ist das SCN-IP000.03

    Die ETS ist installiert, startklar und ich kann auf die LEDs zugreifen.

    Nun möchte ich mir eine Intranet-Seite (also eine normale "lokale" Webseite) programmieren, um das Licht per Windows-Tablet zu steuern.
    Von Linux, Unix etc. habe ich keine genügende Ahnung, denn ich bin durch und durch ein Windows-Mensch.
    ​Zusätzlich nehme ich also die ohnehin im Intranet vorhandene XAMPP-Installation (für Windows) als Webserver und für die Datenbankinhalte.

    Soweit meine eigenen Ausgangsvoraussetzungen (an denen sich leider auch nichts ändern lässt).
    Alle vorhandenen anderen Lösungen, die ich im Netz gefunden habe, sind "mit Kanonen auf Spatzen" schießen.

    Denn ich suche "lediglich" die Möglichkeit, von meinem Windows-Tablet per PHP entsprechende WebRequests absetzen zu können, die vom SCN-IP000.03 ins KNX-Netz als Telegramme "übersetzt", bzw. versandt und beantwortet werden. Genau das müssten die Lösungen wie ETS, EDOMI etc. (auf der eigentlichen Programmier-Ebene im Hintergrund) ja auch machen.

    Hat jemand damit Erfahrung?
    Kennt jemand den Befehlsaufbau für den SCN-IP000.03 wie z.B.:

    http: //SCN_INTERFACE:8081/Lese_Farbwert_VomGeraet_1.1.3
    ​oder auch
    http: //192.168.0.250:8084/Lese_Farbwert_VomGeraet_1.1.3
    ​​oder auch
    http: //192.168.0.250:8084/Schreibe_Farbwert_VomGeraet_1.1.3_#660000 (oder auch als RGB-Wert, CMYK-Wert oder oder oder)
    ​​
    Und, bitte: nochmals mein Hinweis an Alle:
    Das Ganze setze ich mit meinen Kenntnissen innerhalb "meines Systems" innerhalb von 2 Stunden um und bin fertig.
    Daher bitte ich höflich darum, zu akzeptieren, dass ich mit "Gibt es doch alles schon mit Edomi, ETS, in Linux-Distributionen etc." nichts anfangen kann.

    Es ist für mich ein endliches und abgeschlossenes System, welches ich selbst zielgenau steuern möchte.

    Alle Vorschläge und auch gerne Links zu Handbüchern, denen ich das entnehmen könnte, sind mir sehr willkommen.


    Vielen herzlichen Dank!

    ThommyH

    #2
    Mal Falcon angeschaut?

    https://support.knx.org/hc/en-us/art...Falcon-NET-SDK
    Gruß Matthias
    EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
    - PN nur für PERSÖNLICHES!

    Kommentar


      #3
      Hallo Matthias,

      vielen Dank für die schnelle Rückinfo.

      Habe gerade mal dort reingesehen und das wäre wieder ein ziemlicher Overhead für ein paar "relativ einfache" Aufgaben (Licht an / aus, Farbe wechseln etc.).
      Von der Falcon-Webseite: "Launch Visual Studio 2017."
      Damit bin ich leider schon wieder raus...

      Tatsächlich suche ich nach "nativem PHP", handgecoded, Wort für Wort und Zeile für Zeile.
      Denn dann weiß ich "genau", was ich tue :-)

      Denn das, was da übertragen wird, ist doch nur ein Minimum an Daten, die von einem "IP-Aufruf" umgewandelt werden müssten in ein "KNX-Telegramm".

      Oder liege ich mit meinem Vorstellungen und meinem Verständnis da so ganz daneben?

      Beste Grüße,
      ThommyH

      Kommentar


        #4
        Umgekehrter Ansatz: Nimm die ETS, lese und schreibe eine GA und beobachte die IP-Seite mit einem wireshark. Mit Glück ist dann zu sehen, welchen Aufwand die ETS dafür treibt.

        Kommentar


          #5
          Wenn Python eine Alternative ist, dann könntest du einen Blick auf xknx werfen. Von einer PHP-Libary für KNX habe ich noch nie etwas gelesen…
          Viele Grüße ... Rudi

          Kommentar


            #6
            Hi 👋!
            Zitat von ThommyH Beitrag anzeigen
            Denn ich suche "lediglich" die Möglichkeit, von meinem Windows-Tablet per PHP entsprechende WebRequests absetzen zu können, die vom SCN-IP000.03 ins KNX-Netz als Telegramme "übersetzt", bzw. versandt und beantwortet werden.
            Ein normales KNX IP Interface versteht leider keine HTTP Requests. Du müsstest es in KNX IP (Tunnelling - weil du keinen Router hast) ansprechen. Weil das nicht ganz trivial ist würde ich dir empfehlen irgend eine bestehende Library dafür zu benutzen, bevor du probierst das Protokoll selbst zu implementieren.
            In PHP kenn ich mich leider nicht aus, da weiß ich auch nicht ob es was gibt. Python, Java, Go, CommonLisp, C# gäbe es auf jeden Fall was zu finden.

            Ansonsten bräuchtest du zB. ein Interface mit "BAOS" Schnittstelle - das würde dann auch mit HTTP umgehen können. Oder irgend einen Server der dir da übersetzen kann.

            Kommentar


              #7
              Hallo Zusammen,

              und vielen Dank für Eure Antworten.
              War nicht untätig und habe die ganze Zeit weiter gesucht...

              @meti: Habe eben was über die goo..-Suche hier im Forum etwas sehr spannendes gefunden, was sich mit Deiner Info deckt:
              https://knx-user-forum.de/forum/%C3%...l-ip-interface
              Dort steht ziemlich weit unten:
              Update: mit dem Weinzierl IP BAOS klappt es wunderbar. Ich musste nicht einmal den aufwendigen Weg über das Binärprotokoll gegen, ein ganz simpler einzeiliger GET-Request auf Port 80 reicht aus, um zum Beispiel eine gewünschte Szene aufzurufen:
              Code: GET /baos/SetDatapointValue?Datapoint=1&Format=RAW&Length=1& Value=1 <Leerzeile>

              Genau SO etwas suche ich für den SCN-IP000.03.
              Schlimmstenfalls muss ich wohl noch mal Geld in Hand nehmen und so ein Gerät mit BAOS-Schnittstelle holen... Wäre auf jeden Fall günstiger, als noch 3 Stunden zu suchen... ;-)

              ​@knxPaul: Ja. Wird aber auch sehr aufwändig (müsste mir dann erst auch noch das wireshark ansehen). Und zwischendurch hatte ich gesehen, dass es da eine sehr umfangreiche Spezifikation gibt (mit Hex-Werten und Schnickschnack), dessen Spezifikation man dann für 1.000,- € offiziell kaufen kann...

              @herr2d2: Auch darüber war ich gestolpert, dass es zwar schon einige PHP-Bibliotheken gibt, die aber dann auch wieder in ein großes Ganzes (und zum Teil zwingend in einer Linux-Distribution) eingebunden werden müssten.

              Von daher würde ich das Thema jetzt erst einmal auf erledigt setzen und mich um ein entsprechendes BASO-fähiges Gerät kümmern...

              Falls noch jemandem oder mir das Ganze für die SC-IP000.03 unterkommt, gerne Bescheid geben.

              Ansonsten vielen Dank an Alle für die schnellen, fundierten, mitdenkenden und hilfreichen Antworten!

              Beste Grüße,
              ThommyH

              Kommentar


                #8
                Zitat von ThommyH Beitrag anzeigen
                Genau SO etwas suche ich für den SCN-IP000.03.
                Das Gerät kann sowas einfach nicht. Entweder du benutzt eine KNX IP Lib, oder du verkaufst es 🤷
                Zitat von ThommyH Beitrag anzeigen
                dessen Spezifikation man dann für 1.000,- € offiziell kaufen kann
                Die Spezifikation gibts umsonst. Das macht sie aber nicht einfacher - insbesondere wenn man Angst vor Hex-Werten hat 😛

                Gira L1 (X1 ohne Visualisierung) wäre noch eine einigermaßen günstige Alternative zu nem BAOS Interface. Das hat ne eigene HTTP API, benutzt hab ich die allerdings noch nie.
                Zuletzt geändert von meti; 29.04.2024, 17:00. Grund: Den Preis vom L1 nochmal nachgesehen

                Kommentar


                  #9
                  @meti: Super. Vielen Dank für alles

                  Und ja, mit den aktualisierten Preisen von GIRA liegen die Weinzierl derzeit (selbst als IP-Router) deutlich drunter

                  Kommentar


                    #10
                    Hallo ThommyH,​

                    das Weinzierl BAOS 777 ist schon ziemlich cool, aber was MatthiasS vorgeschlagen hat, ist eigentlich viel besser. Erstens brauchst du dafür kein neues IP-Gateway und zweitens entfällt die zusätzliche Konfiguration des BAOS für HTTP-Anfragen über die ETS. Außerdem unterstützt das BAOS 777 nicht alle DPTs, während du mit der Falcon SDK komplett frei bist, was du machen möchtest. Scheinbar kennst du dich ja schon mit einigen Programmiersprachen aus und der Syntax von VB sollte dir kein Problem bereiten, um etwas nach deinen Wünschen zu erstellen. Aber letztendlich liegt die Entscheidung bei dir, ob du mehr Geld ausgeben möchtest oder etwas mehr Komfort haben und Zeit in die Einarbeitung in die Falcon SDK investieren möchtest, die im Vergleich zum BAOS nicht viel komplizierter ist.
                    Mit besten Grüßen,
                    Guido

                    Meine Projekte hier : KNX Busmonitor​​ / KNX Schalter mit Audio​ / KNX PiRadio

                    Kommentar


                      #11
                      Hallo Guido,

                      danke für Deinen erneuten Hinweis auf das Falcon.

                      Ich werde mir zunächst das BAOS ansehen wegen dem kurzen Weg, der schnellen Umsetzungsmöglichkeit und "meinem nativem PHP" (und das Falcon als Backup im Hinterkopf behalten)

                      Beste Grüße,
                      ThommyH

                      Kommentar


                        #12
                        Puh, also das das Benutzen eines BAOS Interfaces "nicht viel komplizierter" ist als eine PHP Bridge zu Falcon zu bauen... ich weiß ja ned.

                        Allerdings solltest du dir die BAOS Geschichte vorm Kauf sehr genau ansehen. Nicht das du nochmal Geld für ein Gerät ausgibst das deine Anforderungen nicht erfüllen kann.
                        Zitat von ThommyH Beitrag anzeigen
                        oder auch
                        http: //192.168.0.250:8084/Schreibe_Farbwert_VomGeraet_1.1.3_#660000 (oder auch als RGB-Wert, CMYK-Wert oder oder oder)
                        Insbesondere würd ich drauf achten das es die hier benutzten DPT kann - und natürlich auch alle anderen die du so brauchst für dein TW und Farbspiel.
                        Grade bei Licht gibts ein paar "neuere" DPT die evtl. nicht von allen Geräten verstanden werden. Wenn man allerdings auch Rohwerte senden könnte kannst es in PHP lösen - dazu kenn ich Baos aber zu wenig.

                        Kommentar


                          #13
                          Zitat von meti Beitrag anzeigen
                          Puh, also das das Benutzen eines BAOS Interfaces "nicht viel komplizierter" ist als eine PHP Bridge zu Falcon zu bauen... ich weiß ja ned.

                          Wer hat den was über ein erstellen einer Bridge gesprochen?
                          Mit besten Grüßen,
                          Guido

                          Meine Projekte hier : KNX Busmonitor​​ / KNX Schalter mit Audio​ / KNX PiRadio

                          Kommentar


                            #14
                            Hallo ThommyH,

                            bei einem anderen Projekt musste ich gerade an dich denken und erinnerte mich, dass du Interesse daran hattest, etwas mit PHP zu steuern. Wenn du ja XAMPP oder eine ähnliche Umgebung im Hintergrund laufen hast, könntest du diese dafür verwenden.

                            Falls du noch keine andere Lösung gefunden hast, gib mir einfach Bescheid, und ich helfe dir, eine PHP-Bridge einzurichten.

                            Nachtrag (Ich habe es ebenfalls getestet – nur das Senden aller DPTs und das Lesen möglich)​ :

                            <?php
                            error_reporting(E_ALL);
                            ini_set('display_errors', 1);

                            try {
                            $knxController = new COM("KNXlib.KnxController");

                            $knxController->Connect("192.168.178.42", 3671, false);
                            echo "Verbindung hergestellt !<br><br>";

                            $knxController->WriteBool("1/0/0", true);

                            $value = $knxController->ReadValue("4/1/3", 9, 1);
                            echo "Gelesene Temperatur: " . $value . " <br>";

                            $knxController->Disconnect();
                            } catch (Exception $e) {
                            echo "Fehler : " . $e->getMessage();
                            }
                            ?>
                            Zuletzt geändert von Smart Guido; 14.11.2024, 19:46.
                            Mit besten Grüßen,
                            Guido

                            Meine Projekte hier : KNX Busmonitor​​ / KNX Schalter mit Audio​ / KNX PiRadio

                            Kommentar

                            Lädt...
                            X