Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
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?
-
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$
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:
-
Hänge dich mal dein yaml hier als zip ran, dann schaue ich die mal an. Achja, pyyaml installiert?
Einen Kommentar schreiben:
-
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:
-
Zitat von RoyalTS Beitrag anzeigenAuch 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?
Trägt die Datei auch die Endung .yaml?
Einen Kommentar schreiben:
-
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 ....
Code:[Sonos] watch_item = MySonos.Kueche.mute filename = sonos_new.py
Code:if sh.MySonos.Kueche.mute(): print("++++++++++++++++++++++++++++++++")
Irgendwas muss also an deiner Einstellung noch nicht ganz stimmen.
Gruss,
tefanZuletzt geändert von pfischi; 12.03.2017, 16:57.
Einen Kommentar schreiben:
-
Zitat von RoyalTS Beitrag anzeigenAuch 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?
Ich habe derweil hier eine neue Version -->HIER<--
Hinzugekommen ist Mute- und Volume-Steuerung. Im Verzeichnis des Plugins liegt eine DateiCode:search_uids.py
MitCode:python3 search_uids.py
Gruss,
Stefan
Zuletzt geändert von pfischi; 12.03.2017, 16:42.
Einen Kommentar schreiben:
-
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:
-
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:
-
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:
-
Warum muss es
Code:sh.sonos_new.Schlafzimmer.play()
Wenn doch in der yaml steht:
Code:SonosNew: Schlafzimmer: sonos_uid: rincon_000xxxxxxxxxxxxxx
Einen Kommentar schreiben:
-
Zitat von Msinn Beitrag anzeigenMal ein Schuss ins Blaue:
muss das nicht
Code:if sh.sonos_new.Schlafzimmer.play():
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.
Thema Uid-Finder: reiche ich morgen nach.
Gruss,
Stefan
Einen Kommentar schreiben:
-
Mal ein Schuss ins Blaue:
muss das nicht
Code:if sh.sonos_new.Schlafzimmer.play():
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:
-
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'
Einen Kommentar schreiben:
Einen Kommentar schreiben: