Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

    pfischi Vergess meinen Kommentar zu den Logiken
    Hab deine Grundlage für die YAML übernommen und die erste Ebene SonosNew dort nicht angepasst.

    Die fehlerhafte UID ist eigentlich in der neuen yaml drinn. Jetzt bräuchte ich doch einen neuen "UID-Scanner"

    Kommentar


      Hmm, bzgl. Logiks doch ne Frage:
      Code:
      2017-03-11 21:18:49 ERROR    scheduler    sonos_schlafzimmer Logic: sonos_schlafzimmer, File: /usr/local/smarthome/logics/sonos_schlafzimmer.py, Line: 7, Method: <module>, Exception: 'SmartHome' object has no attribute 'SonosNew' -- scheduler.py:_task:367
      Traceback (most recent call last):
        File "/usr/local/smarthome/lib/scheduler.py", line 355, in _task
          exec(obj.bytecode)
        File "/usr/local/smarthome/logics/sonos_schlafzimmer.py", line 7, in <module>
          if sh.SonosNew.Schlafzimmer.play() :
      AttributeError: 'SmartHome' object has no attribute 'SonosNew'
      Idee was da falsch ist?

      Kommentar


        Mal ein Schuss ins Blaue:

        muss das nicht
        Code:
         
         if sh.sonos_new.Schlafzimmer.play():
        heissen?

        Ich meine, da müsste der Name der Plugin Instanz (also der Sektion aus der plugin.conf) stehen und nicht der Name der Plugin Klasse.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          Zitat von Msinn Beitrag anzeigen
          Mal ein Schuss ins Blaue:

          muss das nicht
          Code:
          if sh.sonos_new.Schlafzimmer.play():
          heissen?

          Ich meine, da müsste der Name der Plugin Instanz (also der Sektion aus der plugin.conf) stehen und nicht der Name der Plugin Klasse.
          Richtig.

          Thema Uid-Finder: reiche ich morgen nach.


          Gruss,

          Stefan

          Sonos

          Kommentar


            Warum muss es
            Code:
            sh.sonos_new.Schlafzimmer.play()
            heißen?
            Wenn doch in der yaml steht:
            Code:
            SonosNew:
                Schlafzimmer:
                    sonos_uid: rincon_000xxxxxxxxxxxxxx

            Kommentar


              Ich prüfe das dann mal bei mir. Deine Version ist richtig. Ändere doch mal zum Test in der yaml die Bezeichnung des Root-Items.

              Im Wiki von SmarthomeNG hab ich folgendes gefunden, was ich bisher auch immer aussen vor gelassen habe:

              Code:
              [B]Namensvergabe[/B]
              
              Bei der Wahl von Itemnamen ist folgendes zu beachten:
              
              Plugin-Instanzen und Items der obersten Ebene (Top-Level) teilen sich den Namensraum. Es sollte vermieden werden, Top-Level Items einen Namen zu geben, der in etc/plugin.yaml (bzw. etc/plugin.conf) bereits für eine Plugin-Instanz gewählt wurde. Dieses kann zu unvorhergesehenen Problemen führen. (z.B.: Wenn ein Plugin Funktionen implementiert hat, wird dies beim Aufruf dieser Funktionen zu Problemen führen, da SmartHomeNG dann versucht auf eine (nicht existierende) Methode des Items zuzugreifen, statt auf das Plugin.)
              Zuletzt geändert von pfischi; 12.03.2017, 09:44.
              Sonos

              Kommentar


                Das könnte einen Namensraum Konflikt sein, wenn ein Root-level Item den Namen einer Klasse trägt. Bei Items und Logiken führt das auf jedem Fall zu einem Namensrum Konflikt, da shng dann prüft, ob das Item die entsprechende Methode hat (was natürlich nicht der fall ist) und dann eine Exception schmeißt.
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  Auch mit umbenennen... bekomm den Fehler nicht weg.
                  Wenn ich SmarthomeNG mit CLI mal anschau, dann find ich alle Items die in den CONF-Files stehen, die YAML aber nicht.
                  Kann es sein, dass gemischt nicht geht und ich die Conf-Sachen dann auch auf YAML umstellen muss?

                  Kommentar


                    Zitat von RoyalTS Beitrag anzeigen
                    Auch mit umbenennen... bekomm den Fehler nicht weg.
                    Wenn ich SmarthomeNG mit CLI mal anschau, dann find ich alle Items die in den CONF-Files stehen, die YAML aber nicht.
                    Kann es sein, dass gemischt nicht geht und ich die Conf-Sachen dann auch auf YAML umstellen muss?
                    Hm, komisch. Nach dem Familienausflug schau ich mir das mal an. Bis dahin kannst du die yaml auh einfach in das alte Formt überführen. Dem Plugin ist es egal.


                    Ich habe derweil hier eine neue Version -->HIER<--
                    Hinzugekommen ist Mute- und Volume-Steuerung. Im Verzeichnis des Plugins liegt eine Datei
                    Code:
                    search_uids.py
                    .
                    Mit
                    Code:
                    python3 search_uids.py
                    kann man jetzt alle UIDs im Netzwerk unabhägig vom Plugin auflisten lassen.

                    Gruss,

                    Stefan
                    Zuletzt geändert von pfischi; 12.03.2017, 16:42.
                    Sonos

                    Kommentar


                      RoyalTS

                      Ich habe das versucht nachzustellen. Bei mir funktioniert alles. Hier kurz mein Setup: Klassen-Name SonosNew, wie gehabt. Mein Item ist nun folgendermaßen aufgebaut (so habs ichs auch in der verlinkten Datei geändert):

                      Code:
                      MySonos
                          Kueche:
                              sonos_uid: rincon_000e58c3892e01400
                      
                              mute:
                                  type: bool
                                  sonos_recv: mute
                                  sonos_send: mute
                      
                      ....
                      Danach habe ich einen Trigger in der logic.conf für dieses Item gesetzt:

                      Code:
                      [Sonos]
                          watch_item = MySonos.Kueche.mute
                          filename = sonos_new.py
                      Der Inhalt der sonos_new.py:
                      Code:
                      if sh.MySonos.Kueche.mute():
                          print("++++++++++++++++++++++++++++++++")
                      Wenn ich jetzt den mute-Status ändere, wird korrekt das "+" in der Konsole geprinted.
                      Irgendwas muss also an deiner Einstellung noch nicht ganz stimmen.

                      Gruss,

                      tefan
                      Zuletzt geändert von pfischi; 12.03.2017, 16:57.
                      Sonos

                      Kommentar


                        Zitat von RoyalTS Beitrag anzeigen
                        Auch mit umbenennen... bekomm den Fehler nicht weg.
                        Wenn ich SmarthomeNG mit CLI mal anschau, dann find ich alle Items die in den CONF-Files stehen, die YAML aber nicht.
                        Kann es sein, dass gemischt nicht geht und ich die Conf-Sachen dann auch auf YAML umstellen muss?
                        SmartHomeNG liest ab Version 1.3 die Item Definitionen alle r .conf und aller .yaml Dateien aus dem items Verzeichnis ein. Diese müssen dann auch im CLI oder Backend sichtbar sein.

                        Trägt die Datei auch die Endung .yaml?



                        Viele Grüße
                        Martin

                        There is no cloud. It's only someone else's computer.

                        Kommentar


                          Also ich versteh es nicht.
                          Hab meine Conf auch zu YAML umgeschrieben und ja, alle beiden (hab grad nur 2 Dateien in items) haben die Endung yaml und es sind auch keine TABs mehr in den Dateien.
                          Aber mit CLI werden nur "env.*" items angezeigt.

                          Zum verrückt werden....

                          Kommentar


                            Hänge dich mal dein yaml hier als zip ran, dann schaue ich die mal an. Achja, pyyaml installiert?
                            Sonos

                            Kommentar


                              Alles zu Conf wieder umgeschrieben und es geht in CLI und Co.

                              Code:
                              smarthome@raspberrypi:/usr/local/smarthome/plugins$ sudo pip install pyyaml
                              Requirement already satisfied: pyyaml in /usr/local/lib/python3.5/site-packages
                              smarthome@raspberrypi:/usr/local/smarthome/plugins$
                              Scheint da zu sein, aber tut als yaml nicht

                              Ansonsten gibt es im Log nun (über Conf eingerichtet) noch Fehler wie z.B.:
                              Code:
                              2017-03-12 20:57:03 ERROR    item         sonos_schlafzimmer Item MySonos.Schlafzimmer.play: problem running <bound method SonosNew.update_item of <plugins.sonos_new.SonosNew object at 0x76386f90>>: '' -- item.py:__update:479
                              Traceback (most recent call last):
                                File "/usr/local/smarthome/lib/item.py", line 477, in __update
                                  method(self, caller, source, dest)
                                File "/usr/local/smarthome/plugins/sonos_new/__init__.py", line 803, in update_item
                                  sonos_speaker[uid].set_play()
                                File "/usr/local/smarthome/plugins/sonos_new/__init__.py", line 569, in set_play
                                  if not sonos_speaker[self.coordinator].soco.play():
                              KeyError: ''

                              Kommentar


                                Wenn Du nur die env Items im CLI siehst, klingt das nach danach, dass Deine yaml Dateien nicht richtig interpretiert wurden. Hast Du dazu irgendwelche Meldungen im smarthome.log? Kannst Du die item Dateien mal hochladen?
                                Viele Grüße
                                Martin

                                There is no cloud. It's only someone else's computer.

                                Kommentar

                                Lädt...
                                X