Ankündigung

Einklappen
Keine Ankündigung bisher.

Russound C3/C5 RIO over TCP Plugin

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

    #31
    Russound C3/C5 RIO over TCP Plugin

    Das freut mich zu hören.

    Wegen ekey, ich hab einfach eine Logik so definiert:

    Code:
    [fingerprint']
          filename = 'fingerprint.py'
          nw = yes
          nw_udp_listen = 51000
    Und hier Auszüge aus der fingerprint.py:

    Code:
    DELIMITER = '_'
    
    if not trigger['source'] == '192.168.178.18':
        logger.info("logic called from an invalid ip adress ({0})".format(trigger['source']))
        exit()
    
    # retrieve the payload
    payload = trigger['value']
    
    # split the payload
    parts = payload.split(DELIMITER)
    
    # assign the single values
    user = int(parts[1])
    finger = parts[2]
    serial = parts[3]
    action = int(parts[4])
    relais = parts[5]
    Danach kannst du das nach Belieben auswerten. Der ekey UDP Converter muss natürlich an die IP des Pi senden auf den Port 51000. Außerdem musst du das Protokoll auf (ich glaube) "home" stellen und den Delimiter entsprechen deiner Logik anpassen oder das "_" übernehmen.

    EDIT: okay, dass es ein ekey Multi ist habe ich überlesen. Dann musst du dir das Protokoll nochmal anschauen. Sollte aber so ähnlich funktionieren.
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #32
      Auch das geht

      ... vielen Dank noch einmal.
      Mit dieser Anleitung (eher Template) bekomme sogar ich es hin.
      wie von Dir vermutet sind es bei dem Protokoll Multi einfach ein paar Felder mehr.
      Falls außer mir noch jemand Multi im Einsatz hat nachfolgend die Felder.. Will aber diesen Fred hier nicht kapern. Geht ja um RIO.
      Code:
      # assign the single values
      userid = (parts[1])
      username = (parts[2])
      userstatus = (parts[3])
      fingerid = (parts[4])
      key = (parts[5])
      serialfs = (parts[6])
      namefs = (parts[7])
      action = (parts[8])
      inputid = (parts[9])
      Grüße
      Sven

      Kommentar


        #33
        Hast du was im Plugin verändert ? Ich hatte es auch versucht, aber nicht hinbekommen.

        Kommentar


          #34
          ekey oder RIO?

          Du meinst jetzt schon das Russound Plugin (ursprünglicher Thread), oder?

          Nein, AFAIR habe ich nichts geändert.
          .conf und Screenshots der Taster-Parameter hänge ich gerne heute abend von zu Hause aus ein.

          Griuß
          Sven

          Kommentar


            #35
            Das wäre total klasse .-). Ja, ich meine C5 mit langen und kurzem Tastendruck ansteuern.

            Kommentar


              #36
              Kurzer und langer Tastendruck ist ja nicht das Problem, solange du deinen Taster auf zyklisch Senden während des langen Tastendrucks stellen kannst. Dann kannst du einfach relativevolume nehmen. Problematisch sind nur DPT3 KOs fürs relative Dimmen. Wie hast du es gelöst Sven (DPT1 oder DPT3)?
              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar


                #37
                hallo,
                erstmal sorry für die Funkstille.
                nachfolgend meine Konfig:

                /etc/plugin.conf
                Code:
                [russound]
                   class_name = Russound
                   class_path = plugins.russound
                   host = hier könnte Ihre IP stehen ;-)
                #   port = 9621
                /items/items.conf
                Code:
                [[[audio]]]
                            type=bool
                            rus_path=1.4.status
                            knx_dpt=1
                            knx_send=8/1/125
                            knx_listen=8/1/125
                                [[[[volume]]]]
                                    type=bool
                                    rus_path=1.4.relativevolume
                                    knx_dpt=1
                                    knx_listen=8/3/125
                            enforce_updates=true
                                [[[[bass]]]]
                                    type=num
                                    rus_path=1.4.bass
                                 [[[[treble]]]]
                                   type=num
                                    rus_path=1.4.treble
                                [[[['turnonvolume']]]]
                                    type=num
                                    rus_path=1.4.turnonvolume
                                [[[['source']]]]
                                    type=num
                                    rus_path=1.4.currentsource
                                [[[['mute']]]]
                                    type=bool
                                    rus_path=1.4.mute
                                [[[['channelup']]]]
                                    type=bool
                                    rus_path=1.4.channelup
                                    knx_dpt=1
                                    knx_listen=8/5/125
                                    enforce_updates=true
                                [[[['loudness']]]]
                                    type=bool
                                    rus_path=1.4.loudness
                                [[[['partymode']]]]
                                    type=str
                                    rus_path=1.4.partymode
                                [[[['donotdisturb']]]]
                                    type=str
                                    rus_path=1.4.donotdisturb
                für mich waren nur die Einträge an/aus / lauter/leiser wichtig. channelup habe ich noch nicht verknüpft.
                Die Taster liefern bei der Konfig (siehe Bild) einfach 1.001.
                Für die zweite Taste gelten natürlich dieselben Einstellungen nur mit "ein"
                Für Stufenweise lauter oder leiser muss man eben mehrmals kurz drücken. Für mich ist das aber genau die gewünschte Funktion.

                Grüße
                Sven
                Angehängte Dateien

                Kommentar


                  #38
                  Russound C3/C5 RIO over TCP Plugin

                  Zitat von valleyman Beitrag anzeigen
                  Für Stufenweise lauter oder leiser muss man eben mehrmals kurz drücken. Für mich ist das aber genau die gewünschte Funktion.
                  So habe ich es auch gemacht. Das schöne ist ja, dass durch ein Volume Up eine inaktive Zone auch eingeschaltet wird. Dadurch braucht man das an nicht extra noch mit ner Taste versehen. AUS mache ich über nen langen Tastendruck.

                  Btw.: das knx_send bei volume kann eigentlich weg und generell ist es meistens unüblich bei knx_listen und knx_send die gleiche GA zu haben.
                  Mit freundlichen Grüßen
                  Niko Will

                  Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                  - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                  Kommentar


                    #39
                    wieder zwei Dinge gelernt

                    Code habe ich oben (und bei mir) gemäß Empfehlung angepasst (geht immer noch ;-))
                    und zudem noch gelernt dass ich mir die Lang-Taste für "ein" sparen und stattdessen für Channelup verwenden kann. Danke dafür

                    Gruß
                    Sven

                    Kommentar


                      #40
                      ... nahe der Verzeiflung

                      Hallo zusammen,

                      nach meinem Umstieg auf SH 1.0 und SV2.7 will die Maschinerie nicht mehr so richtig laufen. (obwohl vorher nachweislich alles funktionierte).
                      evals laufen nach kurzer Zeit nicht mehr, wenn ich über einen Taster die Lautstärke regeln will hängt isch der eibd auf, ...

                      Ich konnte durch diverse Suchmaßnahmen (von synolgoy zurück auf PI Standard Image, SD Karten Tausch, und jetzt die Reduktion auf einen Raum mit wenigen items) den Fehler (glaube ich) auf das Russound plugin zurückführen und würde mich über eine kurze Bestätigung (oder eben auch nicht) freuen.

                      1.) Auszug aus dem Log mit einer Fehlermeldung die ich nicht zuordnen kann:
                      Code:
                      2013-11-20 05:39:21,473 ERROR    Connections  Method Connections exception: [Errno 9] Bad file descriptor -- scheduler.py:_task:348
                      Traceback (most recent call last):
                        File "/usr/smarthome/lib/scheduler.py", line 344, in _task
                          obj()
                        File "/usr/smarthome/lib/connection.py", line 84, in check
                          obj.connect()
                        File "/usr/smarthome/lib/connection.py", line 386, in connect
                          self._connected()
                        File "/usr/smarthome/lib/connection.py", line 217, in _connected
                          self.handle_connect()
                        File "/usr/smarthome/plugins/russound/__init__.py", line 239, in handle_connect
                          self._watch_system()
                        File "/usr/smarthome/plugins/russound/__init__.py", line 170, in _watch_system
                          self._send_cmd('WATCH System ON\r')
                        File "/usr/smarthome/plugins/russound/__init__.py", line 180, in _send_cmd
                          self.send(cmd)
                        File "/usr/smarthome/lib/connection.py", line 351, in send
                          self._poller.trigger(self.socket.fileno())
                        File "/usr/smarthome/lib/connection.py", line 88, in trigger
                          self._epoll.modify(fileno, self._rw)
                      IOError: [Errno 9] Bad file descriptor
                      2.)Auszug aus dem Log die Verbindung zum Russound wird alle paar Sekunden auf und wieder abgebaut- Früher war das all 2 Stunden.
                      Code:
                      2013-11-20 21:06:39,519 DEBUG    Main         Russound: closing socket 10.10.0.10:9621 -- connection.py:close:302
                      2013-11-20 21:06:50,064 DEBUG    Connections  Russound: connected to 10.10.0.10:9621 -- connection.py:connect:385
                      2013-11-20 21:06:50,067 DEBUG    Connections  Sending request: WATCH System ON
                       -- __init__.py:_send_cmd:173
                      2013-11-20 21:06:50,070 DEBUG    Main         Russound: closing socket 10.10.0.10:9621 -- connection.py:close:302
                      2013-11-20 21:07:00,108 DEBUG    Connections  Russound: connected to 10.10.0.10:9621 -- connection.py:connect:385
                      2013-11-20 21:07:00,111 DEBUG    Connections  Sending request: WATCH System ON
                       -- __init__.py:_send_cmd:173
                      2013-11-20 21:07:00,114 DEBUG    Main         Russound: closing socket 10.10.0.10:9621 -- connection.py:close:302
                      2013-11-20 21:07:10,155 DEBUG    Connections  Russound: connected to 10.10.0.10:9621 -- connection.py:connect:385
                      2013-11-20 21:07:10,158 DEBUG    Connections  Sending request: WATCH System ON
                       -- __init__.py:_send_cmd:173
                      2013-11-20 21:07:10,161 DEBUG    Main         Russound: closing socket 10.10.0.10:9621 -- connection.py:close:302
                      meine pluigin.conf
                      Code:
                      # plugin.conf
                      
                      [knx]
                         class_name = KNX
                         class_path = plugins.knx
                      #   host = 127.0.0.1
                      #   port = 6720
                      #   send_time = 600 # update date/time every 600 seconds, default none
                      #   time_ga = 1/1/1 # default none
                      #   date_ga = 1/1/2 # default none
                      
                      #[ow]
                      #    class_name = OneWire
                      #    class_path = plugins.onewire
                      #    host = 127.0.0.1
                      #    port = 4304
                      
                      [cli]
                          class_name = CLI
                          class_path = plugins.cli
                          ip = 0.0.0.0
                          update = True
                      
                      [visu]
                          class_name = WebSocket
                          class_path = plugins.visu
                      	acl=rw
                      #   ip='0.0.0.0'
                      #   port=2424
                          smartvisu_dir = /var/www/smartvisu
                      
                      [sql]
                          class_name = SQL
                          class_path = plugins.sqlite
                      
                      [rrd]
                          class_name = RRD
                          class_path = plugins.rrd
                          step = 300
                      
                      
                      [russound]
                         class_name = Russound
                         class_path = plugins.russound
                         host = 10.10.0.10
                      #   port = 9621
                      
                      [nw]
                          class_name = Network
                          class_path = plugins.network
                          # ip = 0.0.0.0
                          # port = 2727
                          tcp = yes
                          tcp_acl= 127.0.0.1, 10.10.0.88
                          udp = yes
                          # udp_acl= *
                      meine (inzwischen auf ein Minimum reduzierte) item.conf
                      Zentralfunktionen (items/09zentral.conf)
                      Code:
                      [anwesen]
                          [[gesamtstatus]]
                      		[[[lichter]]]
                      			name = Status Lichter gesamtes Haus
                      			type = bool
                      			eval = or
                      			eval_trigger = *.statuus.lichter
                      			knx_dpt = 1
                      			knx_send = 1/2/0
                      			knx_init = 1/2/0
                      			knx_reply = 1/2/0
                      		[[[praesenz]]]
                      			type = bool
                      			name = Bewegung im Haus
                      			eval = or
                      			eval_trigger = *.statuus.prasenz
                      der eine Raum mit dem ich teste (/items/02eg.conf)
                      den Russound spreche ich schon gar nicht mehr an.
                      Code:
                      [eg]
                          [[statuus]]
                      		name = Geschossstatus EG
                      		[[[tempavg]]]
                      			name = Durchschnittstemperatur EG
                      			type = num
                      			visu = yes
                      			eval = avg
                      			eval_trigger = eg.*.status.temp
                      		[[[lichter]]]
                      			name = Status Lichter EG
                      			type = bool
                      			eval = or
                      			eval_trigger = eg.*.licht.*
                      			knx_dpt = 1
                      			knx_send = 1/2/2
                      			knx_init = 1/2/2
                      			knx_reply = 1/2/2
                      		[[[praesenz]]]
                      			name = Praesenz im EG
                      			type = bool
                      			eval = or
                      			eval_trigger = eg.*.status.praesenz
                      	[[arbeit]]
                      		name = Arbeit
                              sv_page = room
                              sv_img = scene_office.png
                      		[[[status]]]
                      			name = Raumstatus Arbeitszimmer
                      			[[[[temp]]]]
                      				name = Temperatur Arbeitszimmer
                                      type = num
                                      visu = yes
                                      knx_dpt = 9
                                      knx_listen = 7/6/125
                      			    knx_init = 7/6/125
                      			[[[[helligkeit]]]]
                      				name = Helligkeit Arbeitszimmer
                                      type = num
                                      visu = yes
                                      knx_dpt = 9
                                      knx_listen = 2/6/125
                      			    knx_init = 2/6/125
                      			[[[[praesenz]]]]
                      				name = Praesenz Arbeitszimmer
                      				type = bool
                      				visu = no
                      				knx_dpt = 1
                      				knx_listen = 5/1/125
                      				knx_init = 5/1/125
                              [[[licht]]]
                      			name = Lichter
                      			sv_widget = "{{ basic.flip('item.decke', 'item.decke') }}"
                      			[[[[decke]]]]
                      				name = Licht Decke
                      				type = bool
                      				visu = yes
                      				knx_dpt = 1
                      				knx_send = 1/1/125
                      				knx_listen = 1/2/125
                      				knx_init = 1/2/125			
                      		[[[orientierung]]]
                      			name = Orientierungslicht Arbeitszimmer
                                  type = bool
                                  visu = no
                                  knx_dpt = 1
                                  knx_send = 1/6/125
                      			knx_listen = 1/6/125
                              [[[rollo]]]
                      			name = Rollos
                      			sv_widget = "{{ device.shutter('item.fenster', 'Fenster', 'item.fenster.move', 'item.fenster.stop', 'item.fenster.pos', '', '') }}"
                      			[[[[fenster]]]]
                      				name = Arbeit
                      				[[[[[move]]]]]
                      					type = num
                      					visu = yes
                      					knx_dpt = 1
                      					knx_send = 2/1/125
                      				[[[[[stop]]]]]
                      					type = num
                      					visu = yes
                      					enforce_updates = yes
                      					knx_dpt = 1
                      					knx_send = 2/2/125
                      				[[[[[pos]]]]]
                      					type = num
                      					visu = yes
                      					knx_dpt = 5
                      					knx_listen = 2/4/125
                      					knx_init = 2/4/125
                      Sieht jemand den Fehler den ich mache und kann mir einen Tip geben?
                      Oder gibt es vergleichbare Fehlerbilder?

                      Danke vorab
                      Sven

                      Kommentar


                        #41
                        Wäre gut möglich, dass im Russound Plugin auch noch das ein oder andere .encode fehlt, da sich mit Python 3 da was geändert hat. Aus Zeitmangel bin ich immer noch auf sh.py 0.9 und das wird sich leider auch so schnell noch nicht ändern. Daher kann ich es bei mir nicht debuggen.
                        Mit freundlichen Grüßen
                        Niko Will

                        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                        Kommentar


                          #42
                          OK, danke für die Einschätzung.
                          Ich werde das Plugin dann mal deaktivieren und den Rest wieder schrittweise in Betrieb nehmen. Mal sehen ob es dann tut, oder ob sonst noch etwas bleibt.
                          Grüße
                          Sven

                          Kommentar


                            #43
                            Hallo Nico, Hallo Sven,

                            ich habe die gleichen Probleme mit dem Russound-Plugin. Hab mich mal hingesetzt und den Code mit Nico's Hinweis untersucht.

                            Es fehlt ein "encode" in Zeile 180.

                            Code:
                            def _send_cmd(self, cmd):
                                    logger.debug("Sending request: {0}".format(cmd))
                            
                                    # if connection is closed we don't wait for sh.con to reopen it
                                    # instead we reconnect immediatly
                                    if not self.connected:
                                        self.connect()
                            
                                    self.send(cmd.[COLOR=Red]encode()[/COLOR])
                            
                                def found_terminator(self, resp):
                                    resp = resp.decode()
                            Mit dieser kleinen Änderung funktioniert die Steuerung bei mir wieder. Müßte nun halt auch noch ins Repository.

                            Gruß,
                            David

                            Kommentar


                              #44
                              Hallo David,
                              hat bei mir augenscheinlich auch sämtlich Probleme behoben.
                              Ich fahren inzwischen wieder mit "Vollkonfig" und lass jetzt mal eine
                              Zeit die raspberry Installation bis ich mich wieder an die Synology Migration mache.

                              Danke für die Hilfe / Lösung
                              Grüße
                              Sven

                              Kommentar


                                #45
                                Marcus hat das in develop gefixt.
                                Mit freundlichen Grüßen
                                Niko Will

                                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                                Kommentar

                                Lädt...
                                X