Kleines Beta-Release-Update (v0.8b1):
- kleinere Updates
- Deezer-Titel werden jetzt korrekt angezeigt (da hatte Sonos was geändert)
- Sonos-Kommandozeilen-Tool kann jetzt mit Parametern gestartet werden ("sonos_cmd -h" für Hilfe)
HIER gibts die neue Version.
Grüsse,
Stefan
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
Ist schon wirklich verlockend...
Den Raspberry behalten, Sonos, Logitech Harmoney, etc. sind bei openHAB mittlerweile auch dabei.
Bei Callidomus kommt halt auch noch die Anschaffung neuer Hardware dazu. Nochmal 300 Euro +/- für einen NUC o.ä.
Haaach....
Einen Kommentar schreiben:
-
Zitat von RoyalTS Beitrag anzeigen
Ich bin gerade hin und her gerissen, ob ich auf Callidomus oder doch gleich komplett auf OpenHAB wechsel.
Grüße
Thorsten
Stehe auch grade vor dieser Qual der Wahl.....eigentlich mag ich ja mein Sh.py.
So wie ich das sehe, wird es woh openHAB werden.
Aber wenn ich sehe, was openHAB alles schon mitbringt..... hätte ich wohl früher etwas mehr Schlaf haben können.
mhh, mal sehen, wo die Reise hingeht.
Daher hab ich mein kleines "sonos discover Problemchen" momentan mal etwas weiter hinten angesiedelt....
Gruß
AXL
Einen Kommentar schreiben:
-
Ich bin in Kontakt mit Marcus. Nach der L+B weiß ich auch mehr. Prinzipiell kann das Grundgerüst so bleiben, der Broker ist ja Plattform unabhängig. Jedoch weiß ich nicht, wie weit der Broker als eigener Daemon auf dem gleichen System laufen kann. Jedenfalls ist eine Umsetzung fest geplant. Im schlimmsten Fall kann der Broker auf einem Raspi laufen.
Grüsse,
Stefan
Zuletzt geändert von pfischi; 11.03.2016, 11:29.
Einen Kommentar schreiben:
-
Hallo Stefan!
Hast du dir schon Gedanken bzgl. Port zum "neuen" Callidomus gemacht?
Ich bin gerade hin und her gerissen, ob ich auf Callidomus oder doch gleich komplett auf OpenHAB wechsel.
Grüße
Thorsten
Einen Kommentar schreiben:
-
In dem dev-branch des Brokers gibt es wieder ein relativ großes Update des Brokers. Wie immer bleibt es ca. 3-4 Wochen im Developer-Zweig, danach gibt es ein Release.
Hier kurz die Änderungen neben zahlreichen Bugfixes:- GoogleTTS neu implementiert, funktioniert nun zuverlässig ohne nervige Captchas
- nur noch der "locale"-Mode wird unterstützt, d.h. es muss ein entsprechender Pfad für den Broker vorhanden sein, wo dieser die lokal gespeicherten mp3 abruft (siehe Doku)
- Playlisten wurden nun komplett auf die sogenannten "Sonos-Playlists" umgestellt
- neues Sonos_item-Attribute "sonos_playlists", damit erhält man alle Playlisten durch ',' getrennt (diese Listen muss man noch auf einem entsprechenden Sonos-Client, wie z.B. iPad erstellen, hier überlege ich mir noch was)
- neue Funktion "load_sonos_playlist" zum Laden einer Playlist hinzugefügt (siehe Doku zur Implementation)
- die alten Aufrufe "set_playlist" und "get_playlist" wurden entfernt
Ich habe die entsprechenden Beispiele der Items bereinigt und ergänzt. Bei Fragen zur Implementation stehe ich gerne mit Rat und Tat zur Seite.
Sonos Broker v0.8b
sh-Plugin v1.8b
Grüsse,
StefanZuletzt geändert von pfischi; 06.03.2016, 16:30.
Einen Kommentar schreiben:
-
Zitat von Astrafahrer Beitrag anzeigenHallo zusammen,
ich habe heute mit der Sonoseinbindung weitergemacht. Play, Stopp und Mute funktioniert schon mal. Bei play_snippet verstehe ich die Syntax nicht wirklich. Ich bekomme mit sonos_cmd und track_url leider nur immer einen leeren Eintrag.
Hat jemand ein Beispiel aus der Praxis mit play_snippet für mich?
Dankeschön!
Grüße
Dieter
1. direkt als Links aus dem Netz oder von einem deiner Server (z.B. als vordefinierte Ansage. Beispiel: http://192.168.178.2/snippets/Warnung.mp3)
2. als Sonos-spezifischer Link. Den kann man nur bekommen, wenn man einen entsprechenden Titel sich normal anhört (z.B. von Deezer) und sich den entsprechenden Link aus dem Attribute "track_url" notiert (z.B. x-sonos-spotify:spotify%3atrack%3a3xCk8npVehdV55KuPdjrmZ?s id=9&flags=3
"play_snippet" und "play_tts" setzen nach Abspielen des Samples die vorhergespielte Playlist / Musik an der Stelle fort, wo sie unterbrochen wurde. "play_uri" (von den Parameter identisch zu "play_snippet", tut das nicht.
Grüße,
Stefan
- Likes 1
Einen Kommentar schreiben:
-
Astrafahrer Ein Beispiel für play_snippet ist in der Doku: https://github.com/pfischi/shSonos#p_snippet. Den Zusammenhang mit sonos_cmd bzw. track_url verstehe ich leider nicht.
pfischi Hast du eine Idee, was mein Problem beim Cover auslösen könnte?
Danke!
Grüße,
Thomas
Einen Kommentar schreiben:
-
Hallo zusammen,
ich habe heute mit der Sonoseinbindung weitergemacht. Play, Stopp und Mute funktioniert schon mal. Bei play_snippet verstehe ich die Syntax nicht wirklich. Ich bekomme mit sonos_cmd und track_url leider nur immer einen leeren Eintrag.
Hat jemand ein Beispiel aus der Praxis mit play_snippet für mich?
Dankeschön!
Grüße
Dieter
Einen Kommentar schreiben:
-
Zitat von DerTomsn Beitrag anzeigenHallo liebes Forum,
die Sonos Anbindung läuft bei mir mit Smarhome.py und SmartVISU super.
Lediglich das Album Cover will nicht.
Ich habe alles installiert und konfiguriert wie beschrieben (kann jeder sagen)
Das SmartVISU Widget will aber irgendwie das Album nicht auflösen.
Diese Zeile im sonos.html
{{ sonos.cover(id~'cover', gad_cover) }}
wird bei mir in ein broken Image mit der Adresse "http://<IP>/smartVISU/SONOS_Testboard.track_album_art" aufgelöst.
Wenn ich gad_cover im sonos.html testweise per {{ basic.value(id~'test',gad_cover) }} ausgebe, bekomme ich die richtige Cover URL.
Hat jemand eine Ahnung woran das liegen kann?
Vielen lieben Dank,
Thomas
Gruss,
Stefan
Einen Kommentar schreiben:
-
Hallo liebes Forum,
die Sonos Anbindung läuft bei mir mit Smarhome.py und SmartVISU super.
Lediglich das Album Cover will nicht.
Ich habe alles installiert und konfiguriert wie beschrieben (kann jeder sagen)
Das SmartVISU Widget will aber irgendwie das Album nicht auflösen.
Diese Zeile im sonos.html
{{ sonos.cover(id~'cover', gad_cover) }}
wird bei mir in ein broken Image mit der Adresse "http://<IP>/smartVISU/SONOS_Testboard.track_album_art" aufgelöst.
Wenn ich gad_cover im sonos.html testweise per {{ basic.value(id~'test',gad_cover) }} ausgebe, bekomme ich die richtige Cover URL.
Hat jemand eine Ahnung woran das liegen kann?
Vielen lieben Dank,
Thomas
Einen Kommentar schreiben:
-
Hi Stefan,
bin seit dem Wochenende auch dabei, mir deine Sonos Integration anzusehen - super Sache.
Bei play_tts ist mir allerdings wieder das capcha von Google dazwischen gekommen - kein Feedback von Google Seite und damit kein mp3 file. Die Anpassung mit dem User-Agent hat bei mir nicht gewirkt, Google war wohl der Meinung, ich wär ein Robot...
Hatte ein wenig mit Alternativen experimentiert und bin auf gTTS (https://pypi.python.org/pypi/gTTS) gestossen und das Paket dann installiert. Habe mal quick and dirty in utils.py die Erzeugung des files geändert:
Code:from gtts import gTTS ... try: tts = gTTS(text=(tts_string), lang=tts_language) tts.save(abs_fname) except Exception as e: raise ("Couldn't obtain TTS from Google.\nError: {}".format(e.errno))
Gruss
Holger
Einen Kommentar schreiben:
-
@blutwurst
würde es dir etwas ausmachen mir deinen kompletten smarthome Ordner zukommen zu lassen (gerne auch als PM). Dann kopier ich den mal in meine Entwicklungsumgebung, dann finde ich den Fehler schneller.
Gruss,
Stefan
Einen Kommentar schreiben:
-
Zitat von pfischi Beitrag anzeigen
Kannst du mal den class_name in der plugin.conf auf "Sonos" (Großbuchstabe am Anfang) setzten.
Gruss,
Stefan
scheint nun zu klappen, hab nur den Anfangsbuchstaben geändert.
Wenn das weiter stabil läuft, bist Du unser Februarheld ...... Danke, DANKE
....was war ich am verzweifeln.
Verdammt und es steht sogar noch so in Deinem read.me.
(nee,nee,nee.......)
...nächste mal wird kopiert...
Sorry!
ich beobachte es mal und nochmals Danke
Gruß
Axl
kleiner Nachtrag:
leider zu früh gefreut.....Problem besteht weiterhin.
Das Ursprungsproblem, das der Broker einen restart braucht, besteht leider auch noch.
Ich werde es aber mal auf einem frisch installierten System testen.
Es scheint wohl nur bei längeren spannungslosen Phasen der Sonos Lautsprecher aufzutreten.
anbei noch das erzeugte Log:
Code:[FONT=Menlo][SIZE=14px]_SmartHome__children[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_SmartHome__event_listeners[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_SmartHome__item_dict[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_SmartHome__items[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_SmartHome__logs[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__class__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__delattr__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__dict__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__doc__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__eq__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__format__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__ge__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__getattribute__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__gt__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__hash__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__init__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__iter__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__le__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__lt__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__module__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__ne__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__new__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__reduce__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__reduce_ex__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__repr__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__setattr__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__sizeof__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__str__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__subclasshook__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]__weakref__[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_cache_dir[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_elev[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_env_dir[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_env_logic_conf[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_excepthook[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_garbage_collection[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_items_dir[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_lat[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_log_buffer[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_logfile[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_logic_conf[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]2016-02-03 21:26:41,150 DEBUG Main knx: 1.1.106 set 1/3/98 to 01 -- __init__.py:parse_telegram:181[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_logic_dir[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_logics[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_lon[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_maintenance[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_object_refcount[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_plugin_conf[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_plugins[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_starttime[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_tzinfo[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]_utctz[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]add_event_listener[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]add_item[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]add_log[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]alive[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]aussen[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]base_dir[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]carport[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]cli[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]connections[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]denon[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]dreambox[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]eg[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]ema[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]env[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]example[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]find_children[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]find_items[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]fritzbox[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]funk[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]garage[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]heizung[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]irtrans_senden[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]item_count[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]jalousie[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]knx[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]log[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]mail[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]match_items[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]moon[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]myradio[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]netzwerk[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]now[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]object_refcount[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]og[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]ow[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]pushbullet[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]reload_logics[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_event_listeners[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_item[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_items[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_logic[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_logics[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_logs[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]return_plugins[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]rrd[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]runtime[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]scheduler[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]sonos[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]sonos_thread_lock[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]sql[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]start[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]steuer[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]stop[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]string2bool[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]sun[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]tools[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]trigger[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]tz[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]tzinfo[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]ug[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]utcinfo[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]utcnow[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]uzsu[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]version[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]visu[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]wp[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]ws[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]2016-02-03 21:26:41,255 DEBUG sonos_bad_an On_Off triggered by sonos.bad.on_off -- sonos_pending_bad.py:<module>:51[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]Exception in thread Thread-8:[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]Traceback (most recent call last):[/SIZE][/FONT] [FONT=Menlo][SIZE=14px] File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner[/SIZE][/FONT] [FONT=Menlo][SIZE=14px] self.run()[/SIZE][/FONT] [FONT=Menlo][SIZE=14px] File "/usr/lib/python3.2/threading.py", line 693, in run[/SIZE][/FONT] [FONT=Menlo][SIZE=14px] self._target(*self._args, **self._kwargs)[/SIZE][/FONT] [FONT=Menlo][SIZE=14px] File "/usr/smarthome/logics/sonos_pending_bad.py", line 25, in discover[/SIZE][/FONT] [FONT=Menlo][SIZE=14px] getattr(sh, plugin_name).discover()[/SIZE][/FONT] [FONT=Menlo][SIZE=14px]AttributeError: 'Item' object has no attribute 'discover'[/SIZE][/FONT]
Zuletzt geändert von blutwurst; 03.02.2016, 21:30.
Einen Kommentar schreiben:
-
Zitat von mwagner Beitrag anzeigen
Das klingt super!
Mittlerweile habe ich per sh.py Logic den SoCo separat angesprochen und aktiviere direkt die auf dem Sonos hinterlegten Playlisten. Funktioniert gut, vielleicht ist das auch eine schöne Funktion für den Broker (clear_queue(), add_to_queue(playlist)).
Ehrlich gesagt, ist das sogar eher die Funktion die ich suche: Bearbeiten von Playlists über die vorhandenen Sonos Apps, danach brauche ich nur die gewünschten Playlists über einen Taster im Raum laden und los gehts. Beispiel: Unterschiedliche Playisten für Männlein und Weiblein für's Bad morgens...
VG,
Marcus
Gruss,
Stefan
Einen Kommentar schreiben:
Einen Kommentar schreiben: