Ankündigung

Einklappen
Keine Ankündigung bisher.

Russound <-> KNX

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

    Zitat von Chris M. Beitrag anzeigen
    Gibt's ein Programm das ich zumindest unautomatisiert mal die C3 testen kann?

    Quasi ein "Soft-Bedienpanel"...
    Um mir selbst zu antworten:

    Ja, klar! Nennt sich telnet (oder PuTTY, ...). Einfach auf Port 9621 gehen und die RIO Befehle verschicken. Die sind ja pille palle.

    Wer brauch da noch RNET?!?

    Tja, wie schreibe ich nun möglichst schnell ein WireGate Plugin das die vom russound bekannten GAs in RIO umsetzt?
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      Zitat von Norbe Beitrag anzeigen
      es gibt ne app, kostet halt 7,99
      Schön, es geht in diesem Thread um die Anbidung von Russound an KNX, für irgendwelches Endgerätespezifisches gebastel bitte woanders..

      Zitat von Chris M. Beitrag anzeigen
      Tja, wie schreibe ich nun möglichst schnell ein WireGate Plugin das die vom russound bekannten GAs in RIO umsetzt?
      Garnicht, weil das IMHO zu langsam ist Wenn ich die LS von 15->50% Slide darf das nicht länger als 50ms dauern, sonst hätte ich es nicht schon 3x (HS,Plugin,dieses) neu gemacht.. Die kann nach Doku auch RNET, vielleicht muss man es etwas anpassen, dafür brauchts halt "Paten"..
      (Chris hat mir sep. geschreiben, das wird laufen..)
      Aber damit E5/C5 gehen wirds halt jemand testen müssen, ansonsten ist mir das ehrlichgesagt sekundär weil meine CAA6.6 geht

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        Hallo makki,

        also hab jetzt meinen C5 neu bekommen bekommen, aufm Wiregate
        russconnectd installiert, Einstellungen gemacht (hoffentlich richtig) und den C5 über gekreuzetes RS232 Kabel ans Wiregate abgeschlossen und erst einmal nur eine Gruppenadresse verbunden 10.1.10 (Power ON/Off Zone 1). Leider funktioniert bei mir da gar nix

        Da sich meine Erfahrungen mit dem Wiregate auf Temperatur messen beschränken stehe ich da jetzt etwas aufm Schlauch...
        Hab ich alles richtig installiert? Hab mal die wichtigsten Bilder angefügt.
        Kann man irgenwie sehen (außer auf der RS232 zu lauschen mit einem anderen Rechner ) ob das Wiregate den C5 ansteuert?

        Viel Dank für die Hilfe.

        Gruß Carsten
        Angehängte Dateien

        Kommentar


          Zitat von makki Beitrag anzeigen
          Schön, es geht in diesem Thread um die Anbidung von Russound an KNX, für irgendwelches Endgerätespezifisches gebastel bitte woanders..
          Makki

          er hat nach einem Programm gefragt und ich hab eins genannt.
          Wo liegt das Problem ?
          ____________

          Gruss Norbe

          Kommentar


            WireGate Plugin für RIO

            Ich habe jetzt schnell mal was zusammen geschrieben, da das Teil erst mal laufen muss, bevor ich es in schön hin bekomme. Kein Radio im Bad in der Früh sorgt für freien Fall beim WAF...

            Erst mal hier, bevor's in den SVN und die CodeSchnipsel wandert:
            Code:
            use Net::Telnet ();
            
            ##########
            my $IP_of_Russound = '192.168.0.118';
            my $numzones = 6;
            my $KNX_Start_Address = '10/1/0';
            
            my $debug = 1;
            
            # consts:
            my $MAX_ZONES = 31;
            my $ZONES_PER_CONTROLLER = 6;
            
            ###############################################################################
            
            my $retval = '';
            
            my $destReadable =  $msg{'dst'};
            my $val = hex $msg{'data'};
            
            (my $a,my $b,my $c) = split(/\//, $KNX_Start_Address );
            my $knxstartaddress = (($a << 11) + ($b << 8) + $c);
            
            ($a,$b,$c) = split(/\//, $destReadable );
            my $dest = (($a << 11) + ($b << 8) + $c);
            
            # Eigenen Aufruf-Zyklus ausschalten
            $plugin_info{$plugname.'_cycle'} = 0;
            
            # aboniere alle relevanten GAs
            for (my $zone=0;$zone<$numzones;$zone++) 
            {
              my $ctrl = int($zone/$ZONES_PER_CONTROLLER);
              my $czone = int($zone%$ZONES_PER_CONTROLLER);
              my $base = $knxstartaddress + 10 + ($czone*40) + ($ctrl*256);
              for( my $i = 0; $i < 13; $i++ ) # iterate funcnames
              {
                my $a = $base + $i;
                my $gastr = sprintf "%d/%d/%d", ($a >> 11) & 0xf, ($a >> 8) & 0x7, $a & 0xff;
                $plugin_subscribe{$gastr}{$plugname} = 1;
              }
              for( my $i = 0; $i < 10; $i++ ) # iterate stateames
              {
                my $a = $base + $i + 20;
                my $gastr = sprintf "%d/%d/%d", ($a >> 11) & 0xf, ($a >> 8) & 0x7, $a & 0xff;
                $plugin_subscribe{$gastr}{$plugname} = 1;
              }
            }
            
            $retval .= $msg{'apci'} . '->' . $msg{'dst'} . ';'. $msg{'data'} . ';' if $debug;
            
            ###############################################################################
            # Main function
            if($msg{'apci'} eq "A_GroupValue_Write")
            {
              # Transfere KNX Address to Russound Function similarly
              # to the rusconnectd
              my $func;
              my $zone;
              my $controller;
              {
                use integer;
                $func = ($dest - $knxstartaddress) % 256;
                $zone = ($func - 10) / 40;
                $func = ($func - 10) % 40;
                $controller = ($dest - $knxstartaddress) / 256;
              }
              
              sendrussFunc( $controller, $zone, $func, $val );
              }
            
            return $retval;
            
            ###############################################################################
            # Helper funtions
            sub sendcmd 
            {
              my $cmd = shift;
              my $t = new Net::Telnet (
                Timeout => 10,
                Host => $IP_of_Russound,
                Port => 9621,
                Prompt => '/^/',
                Telnetmode => 0
              );
              $t->open();
              $t->print( $cmd );
              $t->close();
              my $res = $t->getline();
              $retval .= $cmd . '->' . $res if $debug;
              return $res;
            }
            
            sub sendrussFunc
            {
              my $controller = shift;
              my $zone       = shift;
              my $func       = shift;
              my $val        = shift;
            
              my $cz = 'C[' . ($controller+1) . '].Z[' . ($zone+1) . ']';
            
              if( -9 == $func ) #all zones
              {
                return 'Func ' . $func . ' not implemented or known';
              } elsif( 0 == $func ) #power
              {
                sendcmd("EVENT $cz!ZoneOff") if( $val == 0 );
                sendcmd("EVENT $cz!ZoneOn" ) if( $val == 1 );
              } elsif( 1 == $func ) #src
              {
                my $mapped = $val + 1;
                sendcmd("EVENT $cz!SelectSource $val");
              } elsif( 2 == $func ) #volume
              {
                my $mapped = int( $val * 50/255 );
                sendcmd("EVENT $cz!KeyPress Volume $mapped");
              } elsif( 3 == $func ) #bass
              {
                my $mapped = $val > 10 ? $val-256 : $val;
                sendcmd("SET $cz.bass=\"$mapped\"");
              } elsif( 4 == $func ) #treb
              {
                my $mapped = $val > 10 ? $val-256 : $val;
                sendcmd("SET $cz.treble=\"$mapped\"");
              } elsif( 5 == $func ) #loud
              {
                return 'Func ' . $func . ' not implemented or known';
              } elsif( 6 == $func ) #bal
              {
                my $mapped = $val > 10 ? $val-256 : $val;
                sendcmd("SET $cz.balance=\"$mapped\"");
              } elsif( 7 == $func ) #party
              {
                return 'Func ' . $func . ' not implemented or known';
              } elsif( 8 == $func ) #dnd
              {
                return 'Func ' . $func . ' not implemented or known';
              } elsif( 9 == $func ) #turnonvol
              {
                return 'Func ' . $func . ' not implemented or known';
              #TODO: 10 src cmd and 11 keypadcmd
              } elsif( 12 == $func ) #volume relative up/down
              {
                return 'Func ' . $func . ' not implemented or known';
              } else {
                return 'Func ' . $func . ' not implemented or known';
              }
            }
            Todo sind v.a. die ganzen Rückmeldungen an den KNX. Jetzt ist's quasi ein schwarzes Loch dass nur schreibt aber nicht liest.
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              Ui, nächstes Problem:
              Wenn etwas länger (5 Minuten?) keine Zone mehr an ist, scheint sich das Netzwerk-Interface auszuschalten. Es geht kein Ping mehr und es gehen erst recht keine RIO Botaschaften mehr.
              (Auch die Rote Front-LED und die hektische blinkende im Gehäuse verstummen...)

              Weiß jemand, wie man das der C3 austreiben kann?!?
              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

              Kommentar


                Hi Chris,

                laut Seite 49 "Low Power Considerations" der RIO-Dokumentation geht das Gerät in Standby, wenn 5-7 Minuten keine Zone an ist und kein RIO-Kommando geschickt wurde.

                Um das zu vermeiden, sollte ein einfaches <CR> (0x0D) geschickt werden:
                The simplest way to keep a RIO device from entering a standby mode is to send an ʻemptyʼ RIO
                command to the RIO device at a time interval that is shorter than the 5 to 7 minute timeout period. An
                empty RIO command is merely a <CR> (0x0D hex) with no other characters in the message.
                Ich habe auch die Beobachtung gemacht, dass aktive WATCHes den Standby verhindern: In einem kleinen Testprogrämmchen aktiviere ich zeitlich unbegrenzte Watches auf alle Zonen und seither ist mein C5 nicht mehr eingeschlafen. D.h. sobald Du die Zustände der Zonen mit WATCH überwachst um damit Status-Telegramme für KNX zu erzeugen, sollte sich das Problem mit dem Einschlafen erledigt haben.

                HTH, Alex

                BTW: Aus dem Standby soll sich der C3/C5 mit WakeOnLAN wecken lassen.

                Kommentar


                  Zitat von Alex Beitrag anzeigen
                  BTW: Aus dem Standby soll sich der C3/C5 mit WakeOnLAN wecken lassen.
                  Das wäre jetzt für mich auch recht wichtig, um den Stromverbrauch gering zu halten!
                  @ Chris: versteh ich das richtig, dass du den C3 immer aktiv haben möchtest?

                  Gruß Thomas

                  Kommentar


                    Zitat von SirTom Beitrag anzeigen
                    @ Chris: versteh ich das richtig, dass du den C3 immer aktiv haben möchtest?
                    Wenn der einschläft und Strom spart finde ich das toll - aber ich muss ihn halt auch wieder zum Leben erwecken können (An/Aus per Hand zu drücken ist nicht smart...)

                    Aber ein WoL wäre eine geschickte Möglichkeit. Wenn die geht, sollte es passen
                    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                    Kommentar


                      Nun, irgendwo hängt wohl noch aber ich halte das für ein lösbares Problem..

                      @Carsten: kein Nullmodem sondern 1:1 AFAIK, zumindest bei meiner so.. sonst siehts gut aus; keypadid evtl. 0x71

                      Einen Verdacht habe ich, mal alles soweit einrichten inkl. socat, dann auf die ssh-Konsole
                      Code:
                      killall socat
                      printf '%b' '\xF0\x00\x00\x7F\x00\x00\x71\x05\x02\x02\x00\x00\x55\x01\x03\x00\x35\x00\x01\x17\xF7' > /dev/ttyS0
                      Eine minute warten, der socat wird automatisch neu gestartet, sehen ob Zone 1 geht/spricht (das sendet einen Device-reset Event für Controller1/Zone1)
                      Wenn das hilft, kann mans ja in den daemon einbauen.. Ansonsten muss man mal mit RNET-Doku und nem geeigenten Tool ran um zu sehen ob/was nicht klappt..

                      Das Problem am Plugin: um wirklich konsistente Stati zu haben muss man eigentlich ständig pollen (der daemon macht das alle 10s) da ja auch auf anderen Wege wie Bedienpanel, IR, RIO/Apps etc. änderungen stattfinden können.. Geht zwar irgendwie aber man macht sich die arme Kiste reichlich platt..

                      Makki
                      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                      -> Bitte KEINE PNs!

                      Kommentar


                        @ makki
                        Also Kabel habe ich umgebaut auf 1:1 und dran gehängt. Keine Reaktion
                        Keypad ID habe ich eingefügt, Neustart. Keine Reaktion

                        Da sich meine Erfahrung mit dem Wiregate (bis jetzt) auf Temperaturmessungen der einfachten Art beschränkt.....
                        Wie komme ich bitte auf die SSH-Konsole??
                        Bin ich hier richtig -> Modul SSH-/Telnet-Login? Wenn ja wie kann ich mich da anmelden?

                        Hab die Kommandos mal über die Komandozeile eingegeben (hoffe auch OK).
                        Socat wurde neu gestartet. Aber Zone 1 blieb aus.

                        Muss mal, wenn die Feiertage rum sind, des ganze mal per Hand über die RS232 schicken mal sehen ob es grundsätzlich gehen würde.
                        Kannst du mal die aktuelle RNET Doku online stellen oder Link?

                        Ggf. werde ich auch mal die Variante vom Chris M. über RIO ausprobieren...

                        Danke

                        Gruß Carsten

                        Kommentar


                          Zitat von carstentrt Beitrag anzeigen
                          Wie komme ich bitte auf die SSH-Konsole??
                          root-Zungang unter "Globale.." aktivieren, Putty unter Windows, IP-Adresse, ssh, Passwort, fertig.

                          Muss mal, wenn die Feiertage rum sind, des ganze mal per Hand über die RS232 schicken mal sehen ob es grundsätzlich gehen würde.
                          Kannst du mal die aktuelle RNET Doku online stellen oder Link?
                          Das wäre ein zielführender Ansatz, irgendwo hakt es noch..
                          Und nein, kann (darf) ich vermutlich nicht aber ich hab ne eMail-Adresse, der Autoresponder ist ein putziger, netter Kerl, der lümmel leaked manchmal aber auch Sachen die confidential sind, obwohl ich die ja garnicht verschicken will, if you know what I mean

                          Makki
                          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                          -> Bitte KEINE PNs!

                          Kommentar


                            Die RNET Doku gibt es auch direkt bei Russound, wenn Du Dich dort registriert.
                            Auch die Info's über das RIO Protokoll kann man dort runterladen.
                            --Marcus

                            Kommentar


                              Jep, möglicherweise ist das mittlerweile weniger restriktiv, ich musste anno schnuff (2007/8 oder so?) noch in zig eMails vorspielen, das ich ganz krasser Händler wäre, um den Zugang auf 3 blöde PDF zu bekommen

                              Aber deswegen kann ich es auch leider nicht einfach anhängen, ist zwar albern aber..

                              Makki
                              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                              -> Bitte KEINE PNs!

                              Kommentar


                                Hallo Marcus,
                                Ich habe mich bei Russound registriert, finde jedoch die RIO Protokoll-Beschreibung nicht. Könntest Du beschreiben, in welchem Menü/Untermenü/Dokument man die Protokoll-Beschreibung findet?
                                Gruß, Joachim
                                EibPC - Wiregate

                                Kommentar

                                Lädt...
                                X