[Neues Modul] BOSE SoundTouch

Begonnen von dominik, 05 Januar 2016, 22:28:40

Vorheriges Thema - Nächstes Thema

pernodjaegermeister


dominik

#61
Das "unkown" bei IP sollte nicht sein...funktioniert es dennoch!? Wenn ja, dann habe ich da irgendwo ein Reading Update vergessen.

Die Aktualisierung läuft nicht zyklisch, sondern über den WebSocket sofort :) Das ermöglicht zukünftig auch die Tasten sofort auszuwerten und mit extra Funktionen zu versehen.

//Edit: Stell mir bitte noch das now_playing während des Abspielens von Deezer zur Verfügung, dann kann ich prüfen ob da noch paar Readings fehlen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Theo

Hallo Dominik,

kurz das Feedback zur v0.9.4 mit meinen Banana PI & Debian/Jessie:

- alte Installation wurde zuvor gelöscht
- neue Installation ohne Probleme
- ST 10 (via WiFi) & ST 20 (via Kabel) werden problemlos erkannt
- Steuerung funktioniert

Im Log habe ich diese Warnings bekommen:
PERL WARNING: Use of uninitialized value $ip in concatenation (.) or string at ./FHEM/98_BOSEST.pm line 604.
BOSEST: failed: 500 No Host option provided

Viele Grüße
Theo

pernodjaegermeister

Zitat von: dominik am 07 Februar 2016, 19:23:54
Das "unkown" bei IP sollte nicht sein...funktioniert es dennoch!? Wenn ja, dann habe ich da irgendwo ein Reading Update vergessen.

Die Aktualisierung läuft nicht zyklisch, sondern über den WebSocket sofort :) Das ermöglicht zukünftig auch die Tasten sofort auszuwerten und mit extra Funktionen zu versehen.

//Edit: Stell mir bitte noch das now_playing während des Abspielens von Deezer zur Verfügung, dann kann ich prüfen ob da noch paar Readings fehlen.

Ja, es funktioniert, bis auf die Readings

<nowPlaying deviceID="000C8A9BDB0E" source="DEEZER" sourceAccount="xxx">
<ContentItem source="DEEZER" type="station" location="37151" sourceAccount="xxx" isPresetable="true"><itemName>Hits</itemName></ContentItem>
<track>Can You Feel the Love Tonight</track>
<artist>Elton John</artist>
<album>The Lion King: Special Edition Original Soundtrack</album>
<stationName>Hits</stationName>
<art artImageStatus="IMAGE_PRESENT">http://api.deezer.com/album/301009/image?size=big</art>
<time total="241">38</time>
<rating>NONE</rating>
<skipEnabled/>
<playStatus>PLAY_STATE</playStatus>
<streamType>RADIO_TRACKS</streamType>
<artistID>413</artistID>
<trackID>3117869</trackID>
</nowPlaying>

pernodjaegermeister

#64
die Readings (letzte Aktualisierung gestern Nacht), diesmal auch mit IP :-)

2016.02.07 20:00:18 1: PERL WARNING: Use of uninitialized value $ip in concatenation (.) or string at ./FHEM/98_BOSEST.pm line 588.

dominik

@Sascha, Theo
Bitte mal die Version anbei testen.

Das WARNING sollte weg sein und die Bonjour Suche nach einer IP müsste nun auch immer (egal ob Fehler oder nicht) alle 60s wiederholt werden. Für Deezer hab ich die Readings aus deinem Post ebenfalls alle mit aufgenommen.

Gebt Bescheid wie es läuft.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pernodjaegermeister

Zitat von: dominik am 08 Februar 2016, 18:50:29
@Sascha, Theo
Bitte mal die Version anbei testen.

Das WARNING sollte weg sein und die Bonjour Suche nach einer IP müsste nun auch immer (egal ob Fehler oder nicht) alle 60s wiederholt werden. Für Deezer hab ich die Readings aus deinem Post ebenfalls alle mit aufgenommen.

Gebt Bescheid wie es läuft.

Hallo Dominik,
Modul aktualisiert, bose neu definiert, gleiches Bild ... Readings werden nicht aktualisiert, egal ob Radio oder Deezer, Warning kommt immer noch
PERL WARNING: Timer 6d44d8ab48ce377aa9f486eaf2c8f8b8 failed: Can't locate object method "send" via package "Mojo::Transaction::HTTP" at ./FHEM/98_BOSEST.pm line 123.

Gruß
Sascha

Theo

Hallo Dominik,

erstes Feedback:

- fhem shutdown, Datei getauscht, fhem wieder gestartet: keinerlei Warnings
- alle WebRadio - Funkionen via HTML-Frontend ausprobiert: funktioniert, keine Warnings
- die meisten Readings werden angezeigt und aktualisiert (einige gibt es nicht für Radio, z.B. Artist oder Track)

Ich nutze fast ausschließlich WebRadio, daher habe ich nur dazu Input.

Viele Grüße
Theo

Theo

Hallo Dominik, Sascha,

nur um den Unterschied zu unterstreichen:
Ich habe nicht neu angelernt, die Einstellungen diesmal einfach nur übernommen.

Viele Grüße
Theo

dominik

Danke euch fürs Testen!

@Sascha, kannst du mal dein Log mit Loglevel 5 posten?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pernodjaegermeister

Zitat von: dominik am 08 Februar 2016, 19:41:41
Danke euch fürs Testen!

@Sascha, kannst du mal dein Log mit Loglevel 5 posten?
nach Neustart, bereinigt, mal Channel und Volume geändert

2016.02.08 20:19:27 1: Including fhem.cfg
2016.02.08 20:19:27 3: telnetPort: port 7072 opened
2016.02.08 20:19:27 3: WEB: port 8083 opened
2016.02.08 20:19:27 3: WEBphone: port 8084 opened
2016.02.08 20:19:27 3: WEBtablet: port 8085 opened
2016.02.08 20:19:27 3: TABLETUI: new ext defined infix:ftui: dir:./www/tablet:
2016.02.08 20:19:27 3: Registering HTTPSRV TABLETUI for URL /ftui   and assigned link ftui ...
2016.02.08 20:19:28 2: eventTypes: loaded 2895 events from ./log/eventTypes.txt
2016.02.08 20:19:28 1: HMLAN_Parse: HMLAN1 new condition disconnected
2016.02.08 20:19:28 3: Opening HMLAN1 device 192.168.100.16:1000
2016.02.08 20:19:28 3: HMLAN1 device opened
2016.02.08 20:19:28 1: HMLAN_Parse: HMLAN1 new condition init
2016.02.08 20:19:29 3: AMAD (websTabletWohnzimmer) - defined with host 192.168.100.25 on port 8090 and interval 180 (sec)
2016.02.08 20:19:29 3: AMAD (AMADCommBridge) - defined Bridge with Socketport 8090
2016.02.08 20:19:29 3: AMADCommBridge: port 8090 opened
2016.02.08 20:19:41 0: Server started with 160 defined entities (fhem.pl:10747/2016-02-07 perl:5.014002 os:linux user:fhem pid:8611)
2016.02.08 20:20:40 3: BOSEST: BOSE_000C8A9BDB0E, new IP (192.168.100.13)
2016.02.08 20:20:41 5: BOSEST: parseAndUpdateNowPlaying
2016.02.08 20:20:41 4: BOSEST: BOSE_000C8A9BDB0E, start new WebSocket.
2016.02.08 20:20:41 5: BOSEST: BOSE_000C8A9BDB0E, start WebSocket connection.
2016.02.08 20:20:41 4: BOSEST: BOSE_000C8A9BDB0E, WebSocket connected.
2016.02.08 20:20:44 5: BOSEST: Callback called
2016.02.08 20:21:03 1: PERL WARNING: Timer bfd7d94f1c47e4d76e165f8aef50ea9a failed: Can't locate object method "send" via package "Mojo::Transaction::HTTP" at ./FHEM/98_BOSEST.pm line 123.
2016.02.08 20:22:04 5: BOSEST: set /key => <key state="press" sender="Gabbo">PRESET_5</key>
2016.02.08 20:22:04 5: BOSEST: success: <?xml version="1.0" encoding="UTF-8" ?><status>/key</status>
2016.02.08 20:22:04 5: BOSEST: set /key => <key state="release" sender="Gabbo">PRESET_5</key>
2016.02.08 20:22:04 5: BOSEST: success: <?xml version="1.0" encoding="UTF-8" ?><status>/key</status>
2016.02.08 20:22:34 5: BOSEST: set /volume => <volume>8</volume>
2016.02.08 20:22:34 5: BOSEST: success: <?xml version="1.0" encoding="UTF-8" ?><status>/volume</status>

Theo

#71
Guten Morgen zusammen,

gestern Abend gab es dann doch noch einen anderen Eintrag im Log (nur die deviceID habe ich überschrieben, um diese hier privat zu halten):


2016.02.07 21:20:29 3: BOSEST: Unknown event, please implement:
$VAR1 = {
          'updates' => {
                         'deviceID' => '123456789012',
                         'clockDisplayUpdated' => {
                                                  'clockDisplay' => {
                                                                    'clockConfig' => {
                                                                                     'localTime' => 'Sun Feb  7 08:20:29 GMT 2016',
                                                                                     'syncState' => 'false',
                                                                                     'syncEnable' => 'true',
                                                                                     'timeFormat' => 'TIME_FORMAT_12HOUR_ID',
                                                                                     'systemEnable' => 'false',
                                                                                     'timezoneInfo' => 'GMT',
                                                                                     'clockError' => '0',
                                                                                     'userEnable' => 'true',
                                                                                     'utcTime' => '24247940',
                                                                                     'userDefinedOffset' => '0',
                                                                                     'brightnessLevel' => 'BRIGHTNESS_LEVEL_1_ID'
                                                                                   }
                                                                  }
                                                }
                       }
        };

2016.02.07 21:20:29 3: BOSEST: Unknown event, please implement:
$VAR1 = {
          'updates' => {
                         'clockDisplayUpdated' => {
                                                  'clockDisplay' => {
                                                                    'clockConfig' => {
                                                                                     'timezoneInfo' => 'GMT',
                                                                                     'clockError' => '0',
                                                                                     'systemEnable' => 'false',
                                                                                     'timeFormat' => 'TIME_FORMAT_12HOUR_ID',
                                                                                     'localTime' => 'Sun Feb  7 08:20:29 GMT 2016',
                                                                                     'syncEnable' => 'true',
                                                                                     'syncState' => 'true',
                                                                                     'brightnessLevel' => 'BRIGHTNESS_LEVEL_1_ID',
                                                                                     'userDefinedOffset' => '0',
                                                                                     'utcTime' => '24247940',
                                                                                     'userEnable' => 'true'
                                                                                   }
                                                                  }
                                                },
                         'deviceID' => '123456789012'
                       }
        };



Viele Grüße
Theo

P.S. alles andere funktioniert wie gehabt



Herr Paschulke

Hallo,

nachdem ich zunächst mit dem ursprünglichen Ansatz meine ST10 erfolgreich mit FHEM benutzen konnte, habe ich jetzt auf den aktuellen Stand des Moduls (aus diesem Beitrag) gewechselt.

Die Einbindung passiert minimal mit:
define bose_system BOSEST

define BOSE_507224xxxxxx BOSEST 507224xxxxxx
attr BOSE_507224xxxxxx alias Bad


Bei mir sind zwei Boxen in Betrieb (SoundTouch 10 und SoundTouch 20 II), die beide nach einem Neustart von FHEM gefunden
werden und soweit schon ganz gut laufen. Offensichtlich gibt es aber bei beiden Boxen mit den Readings Probleme.
Der aktuelle Betriebszustand (z.B. Wiedergabe von Preset 3) wird wahrscheinlich nicht richtig verarbeitet. Stattdessen
erscheinen beide Boxen immer in STANDBY, was dazu führt, dass zwar mit "set BOSE_xxx on" das Einschalten (bzw. eigentlich toggle)
gemacht werden kann. Ein "set BOSE_xxx off" aber niemals ausgeführt wird (da die Box ja vermeintlich aus ist).

Anbei mal ein Bild von den Readings beim Abspielen eines Webradios auf P3.
Im Log (log level 3) erscheinen im normalen Betrieb keine Einträge, lediglich nach einem Neustart gibt es folgende Ausgaben:
2016.02.08 23:56:16 3: telnetForBlockingFn_1454972176: port 55490 opened
2016.02.08 23:56:24 3: BOSEST: BOSE_507224xxxxxx, new IP (192.168.40.133)
2016.02.08 23:56:48 1: PERL WARNING: Timer 722e85da3a76e5333de1389ce444ca7a failed: Can't locate object method "send" via package "Mojo::Transaction::HTTP" at ./FHEM/98_BOSEST.pm line 123.
2016.02.08 23:58:58 3: BOSEST: BOSE_000C8Axxxxxx, new IP (192.168.40.132)
2016.02.08 23:59:19 1: PERL WARNING: Timer a83e2b72da619ef28dbd64eb450e3bf9 failed: Can't locate object method "send" via package "Mojo::Transaction::HTTP" at ./FHEM/98_BOSEST.pm line 123.

dominik

#73
@Theo
Diese Meldung ist korrekt. "clockDisplayUpdated" ist im Modul nicht implementiert. Ich werde das in der nächsten Version abfangen.

@Sascha, Pschulke
Ich habe diese Meldung nun auch 1x im Log bei mir gefunden:
PERL WARNING: Timer bfd7d94f1c47e4d76e165f8aef50ea9a failed: Can't locate object method "send" via package "Mojo::Transaction::HTTP" at ./FHEM/98_BOSEST.pm line 123.
Testet mal die Version anbei? Dort frage ich nun ab ob der WebSocket verbunden ist und wenn nicht, versucht er später (60 Sekunden) sich wieder neu zu verbinden.

Wenn das nicht funktioniert, dann testet mal mit testws.pl
- IP im Script ändern
- Mit "perl testws.pl" aufrufen und warten bis "start mojo" erscheint
- Sender wechseln und prüfen ob in der Konsole XML Output kommt

//Edit: BOSEST.pm entfernt. Testet mal nur das testws.pl Script. Bei mir tritt auch gerade der gleiche Fehler auf somit kann ich nun hoffentlich genauer analysieren ;)

//Edit2: Mit der Version anbei müsste es nun klappen. Die Verbindung wird jetzt neu aufgebaut wenn der Fehler auftritt.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

pernodjaegermeister

#74
Zitat von: dominik am 09 Februar 2016, 17:44:44
@Theo
Diese Meldung ist korrekt. "clockDisplayUpdated" ist im Modul nicht implementiert. Ich werde das in der nächsten Version abfangen.

@Sascha, Pschulke
Ich habe diese Meldung nun auch 1x im Log bei mir gefunden:
PERL WARNING: Timer bfd7d94f1c47e4d76e165f8aef50ea9a failed: Can't locate object method "send" via package "Mojo::Transaction::HTTP" at ./FHEM/98_BOSEST.pm line 123.
Testet mal die Version anbei? Dort frage ich nun ab ob der WebSocket verbunden ist und wenn nicht, versucht er später (60 Sekunden) sich wieder neu zu verbinden.

Wenn das nicht funktioniert, dann testet mal mit testws.pl
- IP im Script ändern
- Mit "perl testws.pl" aufrufen und warten bis "start mojo" erscheint
- Sender wechseln und prüfen ob in der Konsole XML Output kommt

//Edit: BOSEST.pm entfernt. Testet mal nur das testws.pl Script. Bei mir tritt auch gerade der gleiche Fehler auf somit kann ich nun hoffentlich genauer analysieren ;)

//Edit2: Mit der Version anbei müsste es nun klappen. Die Verbindung wird jetzt neu aufgebaut wenn der Fehler auftritt.

erstmal Danke für deine Mühe
jetzt als Endlosschleife im Logfile:
2016.02.09 19:50:13 5: BOSEST: Callback called
2016.02.09 19:50:13 3: BOSEST: BOSE_000C8A9BDB0E, WebSocket failed, retry.
2016.02.09 19:50:13 5: BOSEST: BOSE_000C8A9BDB0E, start WebSocket connection.
2016.02.09 19:50:13 4: BOSEST: BOSE_000C8A9BDB0E, WebSocket connected.
2016.02.09 19:50:14 5: BOSEST: Callback called
2016.02.09 19:50:14 3: BOSEST: BOSE_000C8A9BDB0E, WebSocket failed, retry.
2016.02.09 19:50:14 5: BOSEST: BOSE_000C8A9BDB0E, start WebSocket connection.
2016.02.09 19:50:14 4: BOSEST: BOSE_000C8A9BDB0E, WebSocket connected.
2016.02.09 19:50:17 5: BOSEST: Callback called
2016.02.09 19:50:17 3: BOSEST: BOSE_000C8A9BDB0E, WebSocket failed, retry.
2016.02.09 19:50:17 5: BOSEST: BOSE_000C8A9BDB0E, start WebSocket connection.
2016.02.09 19:50:17 4: BOSEST: BOSE_000C8A9BDB0E, WebSocket connected.


wenn ich "perl testws.pl" in fhem-konsole eingebe, steht im logfile:
"start mojo", wo soll dann der XML-Output zu sehen sein ?