Ankündigung

Einklappen
Keine Ankündigung bisher.

Russound per EibPC über TCP

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

    Russound per EibPC über TCP

    Hallo,

    ich versuche meinen Russound C5 über EibPC zu steuern. Aber nicht über RS232 sondern über Ethernt.
    Dazu verwende ich
    sendtcp(9621u16,192.168.32.21,$EVENT C[1].Z[4]!ZoneOn$c22)

    oder auch
    stringEIN=$EVENT C[1].Z[4]!ZoneOn$
    result=size(stringEIN)
    sendtcparray(9621u16,192.168.32.21,stringEIN,resul t)

    wenn ich zuerst eine Verbindung mit
    connecttcp(9621u16,192.168.32.21)
    aufbaue, bekomme ich als Return Wert 0.

    Es wird aber nichts eingeschalten.
    Auch mit Wireshark sehe ich nicht das ein TCP Befehl gesendet wird.

    Sende ich den selben Befehl mit Putty (RAW Mode) schaltet sich die Zone ein und Wireshark zeichnet den Befehl auf.

    Hat jemand eine Idee warum es nicht funktioniert wie gewünscht?



    #2
    ich würde den Code aus der Enertex-Lib nehmen....
    zb in der Lib schauen wie Steffie den String gebaut hat

    Eventuell fehlt die Checksumme
    EPIX
    ...und möge der Saft mit euch sein...
    Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

    Kommentar


      #3
      Dort arbeitet sie mit UDP bzw. Moxa.
      Aber das mit der Checksumme könnte was sein... nur fehlt mir hier gerade der Durchblick wie sich die zusammensetzt.

      Kommentar


        #4
        da gibt es ein Tool von Russound - (RStool) oder so ähnlich - da kannst du jeden Parameter veränern und senden
        Und du siehtst die Checksumme bzw siehst wie sich die zusammensetzt....

        Die Parameter bleiben übrigens gleich, egal ob RS232, UDP, TCP oder whatever
        EPIX
        ...und möge der Saft mit euch sein...
        Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

        Kommentar


          #5
          ich komme hier einfach nicht weiter!
          Habe auch schon Steffi angeschrieben aber noch keine Antwort erhalten.
          kann mir vielleicht ein Experte helfen wie ich diesen Befehl sende:
          EVENT C[1].Z[4]!ZoneOn

          Kommentar


            #6
            Zitat von meinHaus Beitrag anzeigen
            Habe auch schon Steffi angeschrieben aber noch keine Antwort erhalten.
            Sie hat noch bis Dienstag Urlaub und wird dann sicherlich antworten.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Hallo,

              sorry für die lange Antwortzeit...

              Man muss immer die Checksumme versenden.
              Mit der EnertexRussound.lib solltest du eigentlich eine gute Vorlage haben. Hier werden auch upd-Telegramme aufgebaut und versendet.
              Im Makro:
              SetStateRussoundToggle

              wir eine Zone ein/bzw. ausgeschaltet.
              Dort siehst du auch, wie sich die Checksumme berechnet.
              Bei Dir:
              ControllerNumber = 1
              ZoneNumber = 4
              StateChecksumme@=getChecksumForSet(0xf0,Controller Number,0x00,0x7f,0x00,0x00,0x70,0x05,0x02,0x02,0x0 0,0x00,0xf1,0x23,0x00,0x01,0x00,ZoneNumber,0x00,0x 01);
              sendudp(ServerPort,ServerIP,0xf0,ControllerNumber, 0x00,0x7f,0x00,0x00,0x70,0x05,0x02,0x02,0x00,0x00, 0xf1,0x23,0x00,0x01,0x00,ZoneNumber,0x00,0x01,Stat eChecksumme@,0xf7)

              vg
              Zuletzt geändert von SteffiEnertex; 08.04.2015, 16:27.
              Enertex Bayern GmbH - www.eibpc.com

              Kommentar


                #8
                Danke für den Input, aber soweit war ich schon..
                wenn ich sendudp verwende sehe ich über Wireshark: ...port nicht gefunden....
                mit sendtcp sehe ich überhaupt keine Reaktion über Wireshark.

                wenn ich connecttcp(9621u16,192.168.32.21) schreibe baut er laut Wireshark die Verbindung auf und schließt sie nach 30 Sekunden wieder (sollte also funktionieren)


                //Russound

                ControllerNumber = 1
                ZoneNumber = 4
                StateChecksumme=getChecksumForSet(0xf0,ControllerN umber,0x00,0x7f,0x00,0x00,0x70,0x05,0x02,0x02,0x00 ,0x00,0xf1,0x23,0x00,0x01,0x00,ZoneNumber,0x00,0x0 1);

                if event("Licht Schalten Küche Arbeitsfläche-1/0/4") and "Licht Schalten Küche Arbeitsfläche-1/0/4" == EIN then {
                connecttcp(9621u16,192.168.32.21);
                sendtcp(9621u16,192.168.32.21,0xf0,ControllerNumbe r,0x00,0x7f,0x00,0x00,0x70,0x05,0x02,0x02,0x00,0x0 0,0xf1,0x23,0x00,0x01,0x00,ZoneNumber,0x00,0x01,St ateChecksumme,0xf7);
                }endif


                //ENDE Russound
                was mache ich falsch?

                Kommentar


                  #9
                  kannst Du mal die fertigen Makros aus der Russound.lib nehmen.
                  Die verwenden auch nur UDP-Telegramme.
                  Sollte eigentlich funktionieren
                  An sonsten müsste ich Deinen ganzen Code sehen (am besten per Mail an eibpc@enertex.de)
                  Enertex Bayern GmbH - www.eibpc.com

                  Kommentar


                    #10
                    zuerst habe ich versucht die fertigen Makros zu verwenden, jedoch ohne Erfolg. Daraufhin habe ich versucht den Code selbst zu definieren. (möchte ich ohnehin, da die Makros für meinen Anwendungsfall nicht 100% passen).

                    was nun funktioniert:
                    connecttcp(9621u16,192.168.32.21); ..... und nach 30 Sekunden wird wieder getrennt.
                    nun habe ich festgestellt ich muss einen Timer verwenden bevor ich sendtcp machen kann. EDIT: bin mir nicht sicher ob der Timer notwendig ist

                    sendtcp(9621u16,192.168.32.21,0x65,0x76,0x65,0x6e, 0x74,0x20,0x63,0x5b,0x31,0x5d,0x2e,0x7a,0x5b,0x34, 0x5d,0x21,0x7a,0x6f,0x6e,0x65,0x6f,0x6e,0x0d,0x0a) ;
                    dies sende ich für event c[1].z[4]!zoneon
                    habe ich von Wireshark nach einem Putty Befehl abgeschrieben (ist eigentlich genau was bei einer ASCII Hex Umrechnung entsteht.)

                    sieht ganz anders aus als aus dem Makro!?
                    Zuletzt geändert von meinHaus; 13.04.2015, 20:14.

                    Kommentar

                    Lädt...
                    X