Ankündigung

Einklappen
Keine Ankündigung bisher.

Vorstellung: KNX-Lens

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

    #46
    irgendwie ist bei mir der Wurm drin.

    Hab Python 3.9.13 runter geschmissen und 3.13.5 neu installiert. Zwischendurch vorsichthalber Neustart.

    KNX-Lens neu geladen und ausgepackt. Anleitung Schritt für Schritt abgearbeitet.

    Das Setup Script funktioniert und das Logger Script jetzt auch. Zeigt auch hübsch alle Telegramme.

    Dafür geht jetzt das Lens Script nicht mehr, was vorher ging.

    C:\Program Files\knx-lens-main>python knx-lens.py
    Traceback (most recent call last):
    File "C:\Program Files\knx-lens-main\knx-lens.py", line 26, in <module>
    from dotenv import load_dotenv, set_key, find_dotenv
    ModuleNotFoundError: No module named 'dotenv'
    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

    Kommentar


      #47
      pip install python-dotenv, meine ich
      oder
      pip install -r requirements.txt

      Kommentar


        #48
        In die Richtung hab ich auch überlegt.
        Requirements hab ich installiert, ohne Fehler.
        werd nachher dotenv noch mal manuell hinterher installieren
        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

        Kommentar


          #49
          so...
          Nachdem ich dotenv einzeln nachinstalliert habe, war der Fehler weg. Dafür kam ein Fehler wegen "textual", ein weiterer Eintrag aus Requirements. Also noch mla "pip install -r requirements.txt​".

          Jetzt sind alle Fehler weg. Eigentlich bin ich mir sicher, dass ich die requirements nach Installation der aktuellen Python wieder installiert habe. Den Fehlermeldungen nach, spricht aber alles dafür, dass das nicht der Fall war.

          Egal. Allen vielen Dank für alle Tips. Jetzt kann ich testen.
          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

          Kommentar


            #50
            Zitat von henfri Beitrag anzeigen
            KNX routing wird schon unterstützt.
            Hätte ich jetzt so direkt nicht aus dem Code herauslesen können. Wie wähle ich das vor?
            xknx unterstützt Routing, aber in Lens gibt es keine Einstellung dafür.

            Wo siehst du die Vorteile eines Containers?
            Wenn man die letzten 2 Seiten mit Installationsproblemen hier verfolgt, würde ein fertiges Image im Dockerhub vermutlich zu weniger Problemen führen

            Kommentar


              #51
              Zitat von philipp900 Beitrag anzeigen
              Hätte ich jetzt so direkt nicht aus dem Code herauslesen können. Wie wähle ich das vor?
              xknx unterstützt Routing, aber in Lens gibt es keine Einstellung dafür.
              Es sollten alle (Schnittstellen und Router) gefunden werden. Dann wählst du einfach den Router.

              Zitat von philipp900 Beitrag anzeigen
              Wenn man die letzten 2 Seiten mit Installationsproblemen hier verfolgt, würde ein fertiges Image im Dockerhub vermutlich zu weniger Problemen führen
              Oder zu anderen...
              Und bisher haben wir Installationsprobleme nur von einem User. Die lagen teilweise an mir, da ich nicht die nötige Python-Version angegeben habe.
              Aber prinzipiell ist die Installation doch nur ein
              pip install -r requirements.txt
              und wenn man es ganz sauber haben will vorher ein venv erzeugen.

              Wenn man jetzt vorher kein Python hat.... hat man möglicherweise vorher auch kein Docker.
              Und wenn doch, kann man sich auch einen Docker-Container mit Python schnappen und dort obiges Kommando eingeben.

              Wie gesagt: Ich nutze auch fast alles im Docker-Container. Aber gerade bei KNX ist das manchmal nicht einfach (Multicast); der KNXD geht z.B. auch nur mit net=host.

              Gruß,
              Hendrik
              Zuletzt geändert von henfri; 01.07.2025, 08:23.

              Kommentar


                #52
                Zitat von henfri Beitrag anzeigen
                Installationsprobleme nur von einem User
                ja, hier ;-)

                Zitat von henfri Beitrag anzeigen
                Wenn man jetzt vorher kein Python hat.... hat man möglicherweise vorher auch kein Docker.
                richtig. Also MIR hätte ein Container vermutlich nicht geholfen. In Windows und der Hardware bin ich zuhause, Linux, Docker, Python ist leider alles nicht mein Fachgebiet. Fehlt einfach die Zeit sich damit ausreichend zu beschäftigen.
                ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                Kommentar


                  #53
                  Multicast in Docker is auch ned ganz trivial. Zur leichteren Installation könnte man aber Tools wie `uv` benutzen - die kümmern sich dann um die passende Python Version und die requirements. https://docs.astral.sh/uv/guides/scr...t-dependencies
                  Dafür muss man das halt vorher installieren... einen Tod muss man sterben.

                  Kommentar


                    #54
                    Zitat von Uwe! Beitrag anzeigen
                    Jetzt kann ich testen.
                    erste Ergebnisse, ich schreib mal alles, was mir auffällt, ist aber bisher alles nur Optik oder Sonderwünsche. Also bitte nicht als (negative) Kritik verstehen, das Teil sit in Summe SUPER.
                    • bei der Auswahl eines anderen Farbschemas (wer hat sich die Namen ausgedacht…) wird die Hintergrundfarbe im Hauptfenster bei der ersten Aktion auf einen anderen Wert geändert und bleibt dann so.
                    • in "Gebäude" und "Phy. Adresse" würde ich mir die Möglichkeit wünschen, die GA-Bezeichnungen optional mit anzeigen zu lassen. Wenn's mehrere GA je Objekt sind, wird natürlich schwierig. Evtl. müsste man das dann (oder generell) als eigene Zeile je GA darstellen
                    • wenn man "Maximize" auswählt, hab ich keinen Weg zurück gefunden.
                    • gleiches beim Einblenden der Tastenkombinationen rechts. Kann man die wieder ausblenden?
                    • die Linien werden teilweise mit (glaube ich) den falschen Zeichen dargestellt (sieht für mich nach falschem Zeichensatz aus).
                      image.pngimage.png
                    • ​Wo kommen die Objektbezeichnungen her?
                      ETS:
                      image.png
                      image.png

                      KNX-LENS:
                      image.png
                      image.png
                    • ​​
                    ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                    Kommentar


                      #55
                      Hallo Uwe,

                      vielen Dank für dein Feedback.
                      Ich wusste gar nicht, dass man das Farbschema ändern kann - das bringt das textual-framework mit und ich habe es nicht implementiert.


                      Zitat von Uwe! Beitrag anzeigen
                      [*]in "Gebäude" und "Phy. Adresse" würde ich mir die Möglichkeit wünschen, die GA-Bezeichnungen optional mit anzeigen zu lassen. Wenn's mehrere GA je Objekt sind, wird natürlich schwierig. Evtl. müsste man das dann (oder generell) als eigene Zeile je GA darstellen
                      Ja, da kommt man an die Grenze eines Kommandozeilen-Tool (und die Web-Version ist ja wirklich nur eine 1:1 Repräsentation). In einem richtigen GUI würde man das einfach in einem Tooltip anzeigen können.
                      Als eigene Zeile pro GA ginge (könnte man ja als weitere Baumebene machen), aber das wird (mir) dann auch irgendwann zu komplex.

                      Zitat von Uwe! Beitrag anzeigen
                      [*]wenn man "Maximize" auswählt, hab ich keinen Weg zurück gefunden.[*]gleiches beim Einblenden der Tastenkombinationen rechts. Kann man die wieder ausblenden?
                      Da kann ich gerade nicht folgen.

                      Zitat von Uwe! Beitrag anzeigen
                      zz0.a2tal4sq4nzz[*]die Linien werden teilweise mit (glaube ich) den falschen Zeichen dargestellt (sieht für mich nach falschem Zeichensatz aus).
                      image.png
                      ja... Das wundert mich aber. Ich habe in Windows und Linux getestet und hatte den Effekt noch nicht.


                      Zitat von Uwe! Beitrag anzeigen
                      ​​[*]​Wo kommen die Objektbezeichnungen her?
                      Aus der ETS. Für viele Geräte passt dieser Eintrag. Es gibt aber noch einen Zweiten, siehe hier ("name", "text" und "function_text").
                      Irgendwie muss die ETS ja auch wissen, wann welcher angezeigt werden muss. Das muss ich mir nochmal ansehen.

                      Aktuell nutze ich diese Funktion:
                      https://github.com/henfri/knx-lens/b...nx-lens.py#L80
                      • channel.get("function_text"):
                        Wenn das Dictionary channel einen Schlüssel "function_text" hat und dessen Wert nicht leer bzw. nicht None oder False ist, wird dieser Wert zurückgegeben.
                      • Falls "function_text" fehlt oder leer ist, wird channel.get("name") versucht.
                      • Falls auch "name" fehlt oder leer ist, wird der Fallback-String f"Kanal-{ch_id}" zurückgegeben (also z. B. "Kanal-3" bei ch_id = 3).
                      Damit könnt ihr gerne mal rumspielen und schauen, was zu den Besten Ergebnissen führt.
                      ​Und ihr könnt mal in eurer knxproj.cache (liegt neben eurer knxproj) schauen, was da in den Feldern steht:
                      image.png



                      Gruß,
                      Hendrik

                      Kommentar


                        #56
                        Zitat von henfri Beitrag anzeigen
                        Da kann ich gerade nicht folgen.
                        da war Nutzung dieser zwei Befehle/Optionen gemeint. Aber das kommt dann vermutlich auch aus dem Textual, ohne dass Du da was ändern kannst.
                        image.png
                        ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                        Kommentar


                          #57
                          Zitat von henfri Beitrag anzeigen
                          Und ihr könnt mal in eurer knxproj.cache (liegt neben eurer knxproj) schauen, was da in den Feldern steht:
                          Meinst Du die xyz..knxproj.cache.json?

                          Sieht bei mit z. B. so aus:
                          Code:
                          "1.0.30/O-1_R-10003": {
                          "name": "Object 1",
                          "text": "Aussentemperatur",
                          "function_text": "",
                          "channel": null,
                          "1.0.30/O-2_R-10009": {
                          "name": "Object 2",
                          "text": "WW Hysterese",
                          "channel": null,
                          "1.0.30/O-4_R-10021": {
                          "name": "Object 4",
                          "text": "WW Temp Max",
                          "function_text": "",
                          "channel": null,
                          Da wäre "text" also sinnvoller als "name", aber beides ist gefüllt.

                          gleiches bei der Enertex Spannungsversorgung:
                          Code:
                                "1.0.255/O-139_R-58": {
                                  "name": "sEnergyOutLifetimeGO",
                                  "text": "Total emitted energy lifetime",
                                  "function_text": "Energy meter",
                                  "channel": "CH-6",
                                "1.0.255/O-140_R-59": {
                                  "name": "sEnergyOutPowerResetGO",
                                  "text": "Total emitted energy since power-on",
                                  "function_text": "Energy meter",
                                 "channel": "CH-6",
                                "1.0.255/O-141_R-60": {
                                  "name": "sEnergyOutAnalysisResetGO",
                                  "text": "Total emitted energy since last analysis reset",
                                  "function_text": "Energy meter",
                                  "channel": "CH-6",
                            ​
                          Oft ist "name" und "text" gleich gefüllt. Wenn nicht ist meistens "text" sinnvoller. Leider aber manchmal auch umgekehrt.

                          Code:
                               "1.2.10/O-30_R-109": {
                                  "name": "Windgeschwindigkeit",
                                  "text": "Limiting value 1",
                                  "function_text": "Wind speed",
                                  "channel": null,
                            ​
                          Schwer zu sagen, wie man das sinnvoll lösen kann. Interessanterweise sehe ich in der ETS für die entsprechenden Objekte eine deutsche Übersetzung der hier englischen Bezeichnungen

                          Nachtrag: Beim letzten Beispiel (Wetterstation) braucht man eigentlich beide Texte um zu verstehen, was das für ein Objekt ist. In der ETS steht da unter "Name" 'Grenzwert 1' und unter "Objektfunktion" 'Windgeschwindigkeit'. Erst beides zusammen macht das Objekt eindeutig. Sowohl Grenzwert 1 als auch Windgeschwindigkeit gibt es innerhalb des Gerätes mehrfach.

                          Wenn ich es machen müsst (oder könnte) würde ich wohl "name" und "text" mit einem Trennzeichen aneinanderreihen, sofern die beiden Werte unterschiedlich sind.
                          Wo man die deutschen Bezeichnungen her bekommen würde, weiß ich nicht.
                          Zuletzt geändert von Uwe!; 01.07.2025, 15:37.
                          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                          Kommentar


                            #58
                            henfri und Uwe!,

                            ich hab auch mal geschaut.
                            "name" scheint der interne Name in der knxprod zu sein, den die Entwickler als Objektreferenz verwenden. Dieser Name erscheint nirgendwo in der ETS und sollte auch in knx-lens nicht verwendet werden.
                            Ich stimme aber Uwe! zu, dass man in einigen Fällen mehr als einen Begriff zur Indentifizierung braucht. IMO sind das "text" und "function_text", das sind die beiden Spalten "Text" und "Objektfunktion" in der ETS.

                            Gruß, Waldemar

                            P.S.: Das obige Beispiel "Wetterstation" würde dann auch noch funktionieren...
                            OpenKNX www.openknx.de

                            Kommentar


                              #59
                              Danke, das lässt sich leicht umsetzen

                              Kommentar


                                #60
                                Zitat von mumpf Beitrag anzeigen
                                MO sind das "text" und "function_text", das sind die beiden Spalten "Text" und "Objektfunktion" in der ETS.
                                würde passen. Weißt Du, warum das in der json in Englisch steht und die ETS es deutsch anzeigt?
                                ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                                Kommentar

                                Lädt...
                                X