Ankündigung

Einklappen
Keine Ankündigung bisher.

Verbindung zum KNX Bus mit VB.net über falcon

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

    Verbindung zum KNX Bus mit VB.net über falcon

    Hallo zusammen,

    da ich bisher viele Kommentare aus dem Forum nutzen und damit auch Probleme lösen konnte, hielt ich mich bisher sehr zurück. Jetzt bin ich aber an einem Punkt, wo ich Hilfe brauche.

    Ich habe seit ca. zwei Jahren mein eigenes Häuschen selbst mit KNX ausgestattet und programmiert, was auch alles prima funktioniert.
    Da ich auch seit längerem schon (privat und beruflich) mit Programmierung unter VB.net zutun habe, möchte ich dies jetzt gerne kombinieren. Ich möchte meine eigene kleine Visu programmieren und dazu mit VB.net auf den Bus Befehle senden und empfangen.

    Ich habe bereits viel im Internet gestöbert und gesucht. Bin im Moment auf dem Stand das Ganze über den Falcon zu lösen hängen geblieben. Vielleicht macht die viele Suche aber auch blind und hier stoße ich an meine Grenzen. Bereits an der Verbindung zu meinem KNX/IP Router (Merten 680329) scheitert es. Hier fehlt mir ein bisschen die
    Dokumentation
    für VB.net. Der Ansatz (vielleicht auch das Verständnis) für den Verbindungsaufbau bekomme ich nicht hin. Ein Sample-Code in C# konnte ich finden, komme damit aber nicht wirklich weiter.

    Hat jemand da ein Beispiel oder eine Link, wo ich was dazu in vb.net finden kann? Vielleicht auch eine andere Möglichkeit, eine Visu über VB.net zu programmieren.

    Vielen Dank schon mal
    Grüße Daniel

    #2
    Es gibt eine Reihe von Online C#->VB Convertern, z.B. http://converter.telerik.com/ (oder nach "C# VB Converter" googeln) , damit kannst du die C# Beispiele in VB-Beispiele umwandeln.

    Kommentar


      #3
      Hallo Klaus,

      danke für die schnelle Antwort.

      Habe zwar gehofft, dass jemand schon mal da gleiche Problem hatte und erfolgreich was erstellt hat, aber werde dann mein Glück mal versuchen.

      Grüße Daniel

      Kommentar


        #4
        Hallo nochmal,

        habe die Verbindung jetzt stehen, kann auch Werte schreiben und Status auslesen.
        Jetzt möchte ich aber gerne auch automatische Befehle (Telegramme) vom Bus auswerten und dementsprechend Aktionen ausführen lassen . Nach vielem Suchen denke ich läuft dies über die 'event' Funktion.
        Mit der Event Funktion habe ich aber noch nie gearbeitet und kenne den Aufbau nicht genau. Kann in meinen Büchern und im Netz keine genaue Beschreibung dieser Funktion finden.

        Anhand von Beispielen in C-Sharp kann ich die Funktion nicht verständlich umwandeln.

        Hat jemand für mich ein Link wo beschrieben wird, wie eine komplette Event Funktion in VB.NET aufgebaut ist (Public event, eventArgs, Inherits, usw).

        Danke

        Kommentar


          #5
          Folgendes habe ich mal zusammen gestellt auf Umwandlung von C# und weiteren Sucherfolgen. Funktionieren will es aber nicht.
          Die Event Funktion ist mir auch noch fremd und bin daher nicht sehr überrascht das es nicht funktioniert.
          Es werden keine Telegramme erkannt bzw. diesen Teil des Codes nicht gestartet.

          Vielleicht sieht jemand auf Anhieb den Fehler bzw. kann sagen was fehlt.


          Code:
          Public Event GroupValueReceived As Action(Of GroupValueEventArgs)
          
          Private Sub BusOnGroupValueReceived(GroupValueReceived As Object, ReceivedValue As GroupValueEventArgs)
                  Dim ResultText As String = ""
                         ResultText = "GA:" & ReceivedValue.Address.ToString & "Sender PA: " & ReceivedValue.IndividualAddress.ToString & "Priority: " &        ReceivedValue.TelegramPriority.ToString & "Value: " & ReceivedValue.Value.ToString
                  
          End Sub

          Kommentar


            #6
            Bin nicht so der VB-Experte, aber ich denke
            • Das event braucht du nicht zu deklarieren, das ist ja im Falcon-Bus-Objekt und nicht in deinem Code
            • In deinem BusOnGroupValueReceived muss der erste Parameter weg

            Code:
            Private Sub BusOnGroupValueReceived(ReceivedValue As GroupValueEventArgs)
                Dim ResultText As String
                ResultText = "GA:" & ReceivedValue.Address.ToString & "Sender PA: " & ReceivedValue.IndividualAddress.ToString & "Priority: " &        ReceivedValue.TelegramPriority.ToString & "Value: " & ReceivedValue.Value.ToString
            End Sub
            Und du musst die Methode beim Falcon registrieren, nachdem du das Bus-Objekt erzeigt hast:
            Code:
            bus = new Bus(...)
            AddHandler bus.GroupValueReceived, AddressOf BusOnGroupValueReceived
            Gruß, Klaus
            Zuletzt geändert von Klaus Gütter; 11.09.2019, 11:23. Grund: AddressOf ergänzt

            Kommentar


              #7
              Hallo Klaus,

              danke für die schnelle Antwort.

              Zitat von Klaus Gütter Beitrag anzeigen
              Das event braucht du nicht zu deklarieren, das ist ja im Falcon-Bus-Objekt und nicht in deinem Code
              Sowas in der Art hatte ich auch schon, dann bekomme ich die Fehlermeldung

              --> Für den Parameter "ReceivedValue" von Private Sub BusOnGroupValueReceived(ReceivedValue As GroupValueEventArgs)" wurde kein Argument angegeben.

              Das war auch der Grund warum ich den Event nochmals deklariert habe, da ich mir nicht sicher war.

              Gruß Daniel

              Kommentar


                #8
                Ich hatte ein AddressOf vergessen, ist jetzt ergänzt.

                Kommentar


                  #9
                  Danke, funktioniert!

                  Jetzt hab ich erstmal bisschen Arbeit.

                  Grüße Daniel

                  Kommentar


                    #10
                    Hallo Daniel,

                    ich hab vor einiger Zeit mal eine .Net KNX Bibliothek geschrieben, Solltest du Interesse an einer Alternative zu Falcon haben, findest du den source code hier: https://github.com/toolsfactory/Tiveria.Home.Knx

                    Gruß
                    Michael

                    Kommentar


                      #11
                      Zitat von tiveria Beitrag anzeigen
                      Hallo Daniel,

                      ich hab vor einiger Zeit mal eine .Net KNX Bibliothek geschrieben, Solltest du Interesse an einer Alternative zu Falcon haben, findest du den source code hier: https://github.com/toolsfactory/Tiveria.Home.Knx

                      Gruß
                      Michael
                      Hallo Michael,

                      danke schon mal für dein Angebot.

                      Bis jetzt habe ich mit Falcon noch keine Probleme. Habe aber auch die letzten drei Wochen nicht weiter programmiert. War erstmal in Urlaub und möchte jetzt nochmal weiter machen.

                      Wenn ich nicht weiter kommen sollte, oder Falcon dich nicht die endgültige Lösung sein, komme ich gerne auf dich zurück.

                      Viele Grüße
                      Daniel

                      Kommentar

                      Lädt...
                      X