Posts mit dem Label Sonos werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Sonos werden angezeigt. Alle Posts anzeigen

Freitag, 6. Januar 2017

Umzug von FHEM

Die alte Hardware ist zu schwach, defekt oder warum auch immer - das System soll neu gemacht werden!?
Ausgangszustand:
  • Raspberry Pi2, 
  • Raspbian Wheezy, 
  • Probleme mit der SSL Lib beim https Zugriff (SSL Version SSLv2 not supported), ist mit jessie behoben.
Zielzustand:
  • Raspberry Pi3
  • Raspbian Jessie Lite

Geht relativ einfach, wenn man einige Vorbereitungen trifft. Der grobe Fahrplan sieht so aus:
  1. Auf neuer Hardware ein neues System installieren.
  2. Alle benötigten Tools und Module (debian Pakete) nachinstallieren.
  3. FHEM als Grundlage installieren, eventuell Details testen (z.B. SSL).
  4. Backup und shutdown aktuelles FHEM System auf Pi2
  5. Transfer der Backupdatei auf Pi3
  6. Restore und Start von FHEM auf dem Pi3
  7. Test ob System einwandfrei läuft, wenn ja alles gut, wenn nein eventuell erstmal Restart FHEM auf Pi2 und in Ruhe untersuchen -> nochmal ab Schritt 4 bis alles läuft.

Schritt 1-3 

habe ich hier ausführlich beschrieben, das dauert je nach dem was man im Schritt 2 alles benötigt alles in allem keine 20 min. Dieser Artikel wird von mir laufend aktualisiert. Zu dem Wissen zu gelangen was man alles benötigt, kann allerdings wesentlich länger dauern, wenn man sich nichts aufgeschrieben hat. Im Zweifelsfall sollte man ein Paket/Tool mehr als eines zu wenig installieren. Die empfohlene Liste auf debian.fhem.de ist sicher ein guter Kompromiss.  Ich habe angefangen eine Liste zu erstellen, welches FHEM Modul welche cpan Module bzw. debian Pakete benötigt. Die werde ich noch veröffentlichen.

Schritt 4 und 6 

kann man nach seinen persönlichen Vorlieben gestalten. Normalerweise sollte das in wenigen Minuten abgeschlossen sein.
In der Regel sollte alles was FHEM betrifft in diesem Pfad liegen /opt/fhem/. Dieser Pfad muss auf das neue System und muss die richtigen Berechtigungen erhalten. Ich habe das hier schon mal im Detail beschrieben und es genauso gemacht:

Pi2 in der FHEM Oberfläche 
backup
warten bis backup fertig -> Log oder Eventmonitor
shutdown
  • mit winscp die aktuelle Sicherung ins zentrale Sicherungs-Share auf den Server kopieren
  • und in  einer zweiten Sitzung gleich wieder auf den Pi3 ins /home/pi/ Verzeichnis kopieren
Pi3 als User Pi im putty Terminal
sudo systemctl stop fhem
sudo tar -xvzf /home/pi/FHEM-201xxxxx_xxxxxx.tar.gz -C /opt/fhem/
sudo systemctl start fhem

Schritt 7

  • FHEM Web erreichbar?
  • Log File kontrollieren!!!

Wenn bis hier grobe Fehler vorhanden sind am Besten erstmal den Pi3 wieder beenden und alles auf dem Pi2 wieder starten. In Ruhe Fehler suchen.

  • Schalter betätigen
  • Sonderfunktionen kontrollieren (Sound und Sprachausgabe usw)

Nützliche Hinweise und Befehle

Umfangreiche Manipulation müssen nicht zeileweise mit sudo gemacht werden, sudo su schaltet den sudo Modus ein bis zum exit.

Es kann immer mal passieren, dass die Rechte im fhem Verzeichnis falsch sind. Dies kann man relativ einfach beheben in dem man den Eigentümer aller Dateien setzt:
sudo chown -R fhem:dialout /opt/fhem/
Manchmal muss die Rechte einzelner Dateien setzen, z.B. ausführbar machen:
sudo chmod +x /home/pi/shutdown.py
In besonderen Fällen muss das UID Bit gesetzt werden:
chmod u+s /usr/bin/dfu-programmer
Oder ganz brutal, einfach Rechte auf Alles:
sudo chmod 777 /etc/systemd/system/pishutdown.service
Ein paar Beispiele für User und Gruppen Mitgliedschaften:
useradd -m test
passwd test
gpasswd -a test users
gpasswd -a pi pulse-access
gpasswd -d pi audio
gpasswd -d test audio
groups test
getent group test
cat /etc/group
Samba Freigabe für Sonos einrichten:
sudo mkdir /mnt/SonosSpeak
sudo chmod 777 /mnt/SonosSpeak/
sudo nano /etc/samba/smb.conf
am Ende folgendes einfügen:
[SonosSpeak] comment = Audio-Files for SonosPlayer to Speak
read only = false
path = /mnt/SonosSpeak
guest ok = yes
anschließen den Service neu starten
sudo systemctl restart smbd.service
Zusatzinfo

Das Verhalten/der Syntax in der smb.conf hat sich offenbar bei Jessie etwas geändert! Nutzt man die Originale smb.conf von Raspbian muss man nur den Abschnitt des Shares (siehe oben) einfügen.
Die Anonyme Zugriff auf Shares wird durch die Standard Einstellung im Abschnitt
   [global]
   security = user
   map to guest = bad user
ermöglicht. Die erste Zeile ist die Standardeinstellung und ist in der smb.conf nicht extra gesetzt. Die zweite Zeile steht so in der Original smb.conf schon drin.

Sonntag, 19. Juli 2015

Es ist Sommer

Ich habe eine Bose Mini Soundlink und die will natürlich mit Musik gefüttert werden. Vor allem wenn man irgendwo im Indischen Ozean am Pool liegt ...
Vielleicht ist der Artikel nicht ganz so technisch wie die Anderen, er hat auch nicht Anspruch auf Vollständigkeit und Werbung für irgendetwas will ich schon gar nicht machen, aber wie gesagt: es ist Sommer...
Also ich habe alles mit: Soundbox, Smartphone, Ultrabook. Internet ist vor Ort, alles ist einfach vernetzt. Ich habe etwas von meiner Lieblingsmusik dabei, aber wollen die anderen die auch hören? Und vor Ort gibt es doch ganz andere Musik. Also vielleicht Internetradio streamen?
Naja, die Begeisterung ist schnell an der Grenze. Internetradios haben überall auf der Welt das Problem, dass der Stream immer mal abbricht. Das hat mit Wlan oder der Bandbreite wenig zu tun. Ist das eventuell Methode. Und dann die Werbung! Als erstes kommt jeden Tag die gleiche Werbung, wenn man den Stream startet und neuerdings auch dann, wenn man mal Pause drückt - das nervt! Und die meisten Stationen haben eh bloß eine Playlist, die eine Stunde reicht, danach geht es wieder von vorne los. Da hat dann auch die Musik des Sega oder Seggae relativ schnell den exotischen Bonus verloren.

Ein Kumpel hatte mir vor einiger Zeit gesagt: Ich kaufe keine CDs mehr, ich habe jetzt ein Spotify Abo - für 10 € im Monat kann man immer hören was man will. Genau, das wollte ich doch auch mal probieren! Und jetzt ist die Zeit!

In unserem schöne Ferienhaus gab es noch folgende technische Herausforderung: Der Internetanschluss lag im Wohnzimmer, 5 meter und 3 Wände weiter war die Küche, da war dann Wlan an einer gaaanz ausgesuchten Stelle. An der Stelle wo man die Box gut hören konnte jedenfalls nicht. Also bildete das Smartphone mittels Bluetooth die Brücke zwischen Wlan und Box. Das Smartphone hat offenbar keine so weitreichende Blauzahn Antenne - immer wenn einer durch die Küche lief, blubberte es in der Box.
Der Pool lag noch weiter weg als die Küche, wenn ich den Router aus dem Fenster etwas zweckentfremdet auf ein ansonsten unnützes Stilmöbel aus dem Vorraum stellte, gab es eine Stelle im Garten an der ich das Smartphone als Brücke zur Box in hörbarer Nähe zum Pool platzieren konnte.
Schau an: Das Notebook hat bessere Antennen, kein Wunder, ist ja auch größer.

Übrigens: Dass die Internetbandbreite auch im Indischen Ozean für Streaming nicht das primäre Problem darstellt, habe ich anhand vom Streamingdienst Deezer mitbekommen. Da gab es nämlich die Musik des dortigen großen internationalen Musikfestivals "Sakifo" zum Probe hören, das funktionierte astrein! Also die Internetradios wollen das so! Nach dem Abbruch kommt immerhin die "täglich grüßt das Murmeltier" Werbung.

Weil das Notebook die besser Antenne hat, bin ich also in den Windows App Store und habe gesucht. Siehe da: eine Musik App ist schon vorinstalliert --> xbox music. Wie alle Namen von Microsoft - verwirrend. Nein man braucht keine xbox, der Dienst heißt einfach so. Einfach: Probeabo für 30 Tage, einen MS Account habe ich sowieso schon, also einfach los geht's!
Was wollt ihr hören? Suche, Auswahl, Musik läuft.
Radio - was verbirgt sich hinter dieser Funktion? Welche Sender gibt es da? Hmmm...
Coole Sache: Man nimmt einfach einen Titel den man jetzt gerne hören möchte, startet die Radiofunktion und er spielt diesen Titel und danach immer weiter, irgendwie nach einem hinterlegten Schema, aus dieser Musik oder Interpreten Richtung, ohne Ende. Wenn einem die Richtung nicht gefällt, dann ein neuer Versuch. Das ist eigentlich die Revolution der Radiomusik: keine Werbung, ich muss nicht lange suchen, meine Stimmung entscheidet die Musik und nicht der Sender. Ich finde das wirklich genial.

Nach dem Urlaub sind natürlich die 30 Tage irgendwann um, ich will Nägel mit Köpfen machen. Welchen Dienst von den vielen nimmt man denn nun? Appel kündigt gerade seinen Streaming Dienst an, noch einer...
Welches ist mein Kriterium? Ach ja, zu Hause steht ja Sonos. Da sollte der Dienst natürlich auch gehen! Xbox Music und Sonos? Fehlanzeige, offenbar können die sich nicht leiden, kein xbox music auf der Sonos, gar nicht! Also? Spotify, Probeabo 60 Tage. Und? Sonos? Geht, aber auch Radiofunktion? Ne, das was da in Sonos mit Spotify geht, ist sehr dürftig. OK, nächstes Kriterium, was habe ich schon, wo bin ich schon? Android! Google Music ist schon da. App, Account alles vorhanden. Also Probeabo, in Sonos aktivieren - und? Radio? Geht! Aus meiner Sicht geht auf dem Handy und in der Sonos ziemlich das Gleiche, super!
Und nun? Ich bin ja fair, teste alles noch etwas zu Ende. Xbox music ist storniert, das war ganz easy. Es gab 'ne faire vorab Info, dass es in ein paar Tagen kostenpflichtig wird. Bei Google gab es die Info, dass es jetzt kostet, zu spät für Storno. Bei Spotify gefällt mir die App unter Windows, aber unter Android finde ich sie doof und ganz mickrig unter Sonos.
Es wird wohl bei Google Music bleiben, gute App unter Android, gute Integration in Sonos.
Und welche Musik ist vorhanden? Ich habe bisher bei allen alles gefunden und jede Menge neu kennengelernt. Das ist wirklich 'ne geile Sache!

Montag, 19. Januar 2015

FHEM Sprachausgabe über Sonos

FHEM bietet ein ziemlich gutes Sonos Modul an. Sprachausgabe ist eine tolle Sache, vor allem Textmeldungen die gesprochen werden.
Die Einrichtung lief per Wiki Eintrag
Zur Sprachausgabe ist es wichtig ein paar Attribute im Sonos Modul zu setzen:

  • targetSpeakDir
  • targetSpeakURL

Nach ersten Tests fällt auf, das offenbar jedesmal die Text2Speech Engine bemüht wird, auch wenn man immer wieder den gleichen Text ausgibt. Dabei ändert sich das MP3 File, was einmal erzeugt wurde nicht.

Offenbar muss das Caching aktiviert werden, dass ist kurz und knapp im Wiki mit zwei weiteren Einträgen beschrieben. So sieht es am Ende aus:


Dazu muss laut Wiki noch ein Perl Modul installiert werden
sudo cpan install Digest::SHA1

Macht man es mit der cpan Methode sagt mir die Installationsroutine zwischendurch mal:

  New CPAN.pm version (v2.05) available.
  [Currently running version is v1.960001]
  You might want to try
    install CPAN
    reload cpan

Das bedeutet wohl, man sollte cpan aktualisieren. Wie war mir nicht sofort klar, funktioniert aber im Prinzip so:
Es gibt zunächst mal eine cpan Shell, also ssh auf den Raspberry und dann

cpan
install cpan
reload cpan

Allerdings bekomme ich weitere Fehler und denke mir: Man muss nicht immer das neueste haben...
_____________________________

Nachgedacht:

Irgendwie ist mir das mit cpan immer unsympathisch und ich habe noch ein bisschen nach Hintergründen gesucht.

Das SHA1 Modul wurde aus den Paketen der Linux Distis entfernt, warum auch immer. Das aktuelle Modul nennt sich SHA.pm, dass kann mit dem üblichen Paketmanager apt-get installiert werden

sudo apt-get install libdigest-sha-perl

Danach steht /usr/lib/perl5/digest das Modul SHA.pm.
Die cpan Methode bringt eine Datei in /usr/local/lib/perl/5.14.2/Digest mit dem Namen SHA1.pm.

Ich habe hier einen Workaround gefunden, wie man eine Art Wrapper von SHA1 nach SHA schreiben kann. 
Reiner hat aber im Sonos Modul aber einen Fallback eingebaut. Es funktioniert mit SHA und SHA1.

Vielleicht sehe ich das wieder mal zu kompliziert, ich hätte aus Sicht des einfachen Anwenders nur gerne eine klare Methode, und die Installation mit apt-get erscheint mir als nicht Linux Freak irgendwie komfortabel, logisch und einfach...