Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

  • Msinn
    antwortet
    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?

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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: ''

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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....

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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?



    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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.

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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?

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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"

    Einen Kommentar schreiben:

Lädt...
X