Angular Frontend mit WebSocket Kommunikation

Begonnen von alec_osborne, 14 April 2016, 23:06:02

Vorheriges Thema - Nächstes Thema

alec_osborne

Also im Frontend muss Initialized stehen sonst wird es nicht gehen.

Vielleicht findest du hier die Lösung. Hast du alle alle dort beschriebenen Schritte gemacht?
https://forum.fhem.de/index.php/topic,28634.0.html


Man kann alles einbinden und steuern was in FHEM auch geht. Nur habe ich keine SONOS und habe deswegen auch noch keine Directive gemacht.

Na eine Samlung gibt es nicht....Im Seedproject sind aber alle Directiven enthalten. Nur als Samples sind sie nicht implementiert.

Ich kann ja als nächstes mal ein Sample mit dem Wetter machen.

Grimm80

Das Problem mit der Verbindung habe ich hinbekommen. Einfach auf einer anderen Maschine installiert und jetzt geht es.

Wäre cool wenn du diverse Samples implementieren kannst, wie bei deinen Screenshots.
Du könntest ja einfach deine ganzen Einträge veröffentlichen, den Rest bekommt man dann irgendwie hin.

Das mit der Sonos ist schade....Wenn man die Bausteine aus dem Tablet-UI dafür verwenden könnte wäre das ja auch schon cool.

Aktuell finde ich dein Frontend sehr gelungen!

Ich hoffe Du entwickelst es weiter.

Grimm80

#17
Danke schon mal für die Charts.

Was würdest Du denn benötigen um die Sonos mit dazu zu nehmen?

Hier wäre das Reading vom Websocket:



2016.06.18 13:10:30 5: websocket command list devs: sonos_Allgemein
2016.06.18 13:10:30 5: {
  'buffer' => '{"payload":{"readings":{"PlaylistsVersion":{"Time":"Sa 18 Jun 2016 10:27:48 CEST GMT","Value":"RINCON_B8E937E7B3C401400,40"},"currentStreamAudio":{"Value":"1","Time":"Sa 18 Jun 2016 10:53:22 CEST GMT"},"QueueVersion":{"Value":"","Time":"Sa 18 Jun 2016 10:29:40 CEST GMT"},"nextOriginalTrackNumber":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"Mute":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"roomNameAlias":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"Allgemein"},"SleepTimer":{"Value":"off","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"ZoneGroupID":{"Value":"RINCON_B8E937E7B3C401400:__","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"OutputFixed":{"Time":"Sa 18 Jun 2016 09:55:11 CEST GMT","Value":"0"},"fieldType":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":""},"MasterPlayer":{"Value":"sonos_Allgemein","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"currentTrackPosition":{"Time":"Sa 18 Jun 2016 11:02:21 CEST GMT","Value":"0:00:00"},"AlarmList":{"Value":"{}","Time":"Sa 18 Jun 2016 10:55:25 CEST GMT"},"currentTrackURI":{"Time":"Sa 18 Jun 2016 10:53:22 CEST GMT","Value":"aac://mp3channels.webradio.antenne.de/antenne.aac"},"presence":{"Time":"Sa 18 Jun 2016 10:55:20 CEST GMT","Value":"appeared"},"nextAlbumArtURL":{"Value":"/fhem/sonos/cover/empty.jpg","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"Bass":{"Time":"Sa 18 Jun 2016 09:55:11 CEST GMT","Value":"2"},"currentAlbumArtist":{"Value":"","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"Treble":{"Value":"1","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"currentAlbum":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"currentSenderCurrent":{"Value":"","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"GroupMute":{"Time":"Sa 18 Jun 2016 09:55:11 CEST GMT","Value":"0"},"currentAlbumArtURL":{"Value":"http://192.168.190.41:1400/getaa?s=1&u=x-sonosapi-stream%3as15034%3fsid%3d254%26flags%3d8224%26sn%3d0","Time":"Sa 18 Jun 2016 10:53:22 CEST GMT"},"Balance":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"IsMaster":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"1"},"currentAlbumArtURI":{"Time":"Sa 18 Jun 2016 10:47:04 CEST GMT","Value":"./www/images/default/SONOSPLAYER/sonos_Allgemein_AlbumArt.gif"},"transportState":{"Value":"PLAYING","Time":"Sa 18 Jun 2016 10:53:22 CEST GMT"},"serialNum":{"Value":"B8-E9-37-E7-B3-C4:F","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"Loudness":{"Time":"Sa 18 Jun 2016 09:55:11 CEST GMT","Value":"0"},"SubEnable":{"Value":"1","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"LastActionResult":{"Time":"Sa 18 Jun 2016 10:55:24 CEST GMT","Value":"Play: Success!"},"Repeat":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"0"},"DailyIndexRefreshTime":{"Value":"","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"nextTrackDuration":{"Value":"","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"location":{"Value":"http://192.168.190.41:1400/xml/device_description.xml","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"infoSummarize2":{"Time":"Sa 18 Jun 2016 11:09:14 CEST GMT","Value":"PLAYING => ANTENNE BAYERN: Shawn Mendes - Stitches"},"CrossfadeMode":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"currentOriginalTrackNumber":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"nextTrackProvider":{"Value":"","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"SubPolarity":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"infoSummarize4":{"Value":"","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"currentSender":{"Time":"Sa 18 Jun 2016 10:30:04 CEST GMT","Value":"ANTENNE BAYERN"},"GroupVolume":{"Value":"18","Time":"Sa 18 Jun 2016 10:47:05 CEST GMT"},"SlavePlayer":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"[]"},"softwareRevision":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"6.2"},"roomName":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"Allgemein"},"QueueHash":{"Time":"Sa 18 Jun 2016 10:29:40 CEST GMT","Value":"f584076b7df9e67d33332041cbc3fff6"},"saveRoomName":{"Value":"Allgemein","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"currentTrackDuration":{"Time":"Sa 18 Jun 2016 10:53:22 CEST GMT","Value":"0:00:00"},"SleepTimerVersion":{"Value":"","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"playerType":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"S1"},"infoSummarize3":{"Value":"Lautstärke: 18 ~ Ton An ~ Balance: Mitte ~ Kein Kopfhörer","Time":"Sa 18 Jun 2016 10:47:04 CEST GMT"},"AlarmListIDs":{"Value":"","Time":"Sa 18 Jun 2016 10:55:25 CEST GMT"},"Shuffle":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"AlarmRunningID":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":""},"currentTrackProvider":{"Value":"Radio","Time":"Sa 18 Jun 2016 10:47:03 CEST GMT"},"nextTrackURI":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"Volume":{"Time":"Sa 18 Jun 2016 10:47:03 CEST GMT","Value":"18"},"AlarmListVersion":{"Value":"RINCON_B8E937E7B3C401400:0","Time":"Sa 18 Jun 2016 10:55:25 CEST GMT"},"RepeatOne":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:10 CEST GMT"},"numberOfTracks":{"Value":"2","Time":"Sa 18 Jun 2016 10:53:22 CEST GMT"},"TruePlay":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"AlarmRunning":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"0"},"SubGain":{"Value":"0","Time":"Sa 18 Jun 2016 09:55:11 CEST GMT"},"state":{"Value":"appeared","Time":"Sa 18 Jun 2016 10:55:25 CEST GMT"},"currentTitle":{"Value":"","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"nextTitle":{"Value":"","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"nextArtist":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"currentTrack":{"Value":"1","Time":"Sa 18 Jun 2016 10:53:22 CEST GMT"},"roomIcon":{"Time":"Sa 18 Jun 2016 09:55:11 CEST GMT","Value":"living"},"currentArtist":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"RadiosVersion":{"Time":"Sa 18 Jun 2016 10:29:40 CEST GMT","Value":"RINCON_B8E937E7B3C401400,28"},"currentNormalAudio":{"Time":"Sa 18 Jun 2016 11:05:04 CEST GMT","Value":"0"},"nextAlbum":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"HeadphoneConnected":{"Time":"Sa 18 Jun 2016 09:55:10 CEST GMT","Value":"0"},"nextAlbumArtist":{"Time":"Sa 18 Jun 2016 10:29:04 CEST GMT","Value":""},"nextAlbumArtURI":{"Value":"./www/images/default/SONOSPLAYER/sonos_Allgemein_NextAlbumArt.png","Time":"Sa 18 Jun 2016 10:29:04 CEST GMT"},"currentSenderInfo":{"Value":"Shawn Mendes - Stitches","Time":"Sa 18 Jun 2016 11:09:14 CEST GMT"},"FavouritesVersion":{"Time":"Sa 18 Jun 2016 10:29:40 CEST GMT","Value":"RINCON_B8E937E7B3C401400,28"},"infoSummarize1":{"Time":"Sa 18 Jun 2016 11:09:14 CEST GMT","Value":"ANTENNE BAYERN: Shawn Mendes - Stitches"}},"arg":"sonos_Allgemein","index":0,"name":"sonos_Allgemein","num":1},"type":"listentry"}',
  'type' => 'text'
}


alec_osborne

Hi na das war schon sehr hilfreich. Ich würde es noch schön finden wenn du mir die Liste mit fhem Befehlen schickst.

Gesendet von meinem HUAWEI CRR-L09 mit Tapatalk


Grimm80

diese ist doch in der Commandref hinterlegt?

Sonos:
Sonos

Sonosplayer:
Sonosplayer

Ich hab damit auch schonmal angefangen ein Modul zu bauen :-)
Laut und Leise bekomm ich hin sowie das Aktuelle Logo, aber Bass, Trible, Playlist etc schaff ich leider net.
Da hab ich zu wenig durchblick in deinem Frontend.


Grimm80

#20
MAn kann das noch alles schöner machen, aber für die ersten Schritte in deinem Frontend, kam ich schon relativ weit denke ich.

Hier mal ein Screenshot meiner kleinen Übung:


alec_osborne

Hi,

na das sieht doch schon sehr gut aus. Welche Funktion soll ich mir mal ansehen Stop/Play/Pause +/- Channel ?

Möchtest du den Code einchecken? Oder wie wollen wir da verfahren?


Grus A.


Grimm80

Wenn Du willst kannst den soweit einchecken...
Naja ich benötige noch Bass und Tribel sowie die Playlisten und Favoriten in einer DropDown wenn das irgendwie geht.


alec_osborne

Hi,

das heißt du brauchst noch eine Funktion für folgende Commandos?
set SONOS_PLAY Bass XX;
set SONOS_PLAY Treble XX;

Das wird bestimmt zu voll auf der Seite.

Kann man das nicht in ein Configmenü (Modaler Dialog) auslagern das über ein Zahnrad erreichbar ist. Das sind doch Funktionen die nicht unbedingt in die erste Ebene gehören oder?
Wo bekomme ich die FavoritenRadioliste her? Die kann ich nicht finden.


Gruß A.





Grimm80

Ja natürlich kann man das so auslagern.  ;D

Bei meinem Test wollte ich das halt erstmal so einbauen, habe das aber leider nicht so hinbekommen.
Ich denke mit einem Slider (up / down) wäre das ganz gut so.

Wenn Du dann was grob fertig hast, würde ich mich freuen wenn Du mir das zu kommen lässt, vielleicht hab ich dann noch paar Idden.
Die Playlists bzw. Favoriten mit einer DropDown, oder was wäre deine Idee?


alec_osborne

Ja....mal sehen ich benötige das Commando für das "Get Favoritenliste" Und die Struktur die da geliefert wird. Ist das ein Reading in dem Sonos Device?
Ich baue nächste Woche mal einen Vorschlag den du dir dann ansehen kannst.


Gruß S.

Grimm80

Hier mal die Einzelheiten so wie es in FHEM aussieht als Pic.

Hoffe das Hilft



Grimm80


alec_osborne

Hallo,

und sonos_allgemein ist das das Sonos Device oder das Sonos_Play Device? Was kommt da zurück wenn man get Favourites macht bestimmt kein JSON oder? Kannst das ja mal zum Spass in deiner Controler schreiben und absetzen und schauen was passiert.

Gruß A

Grimm80

Das "sonos_Allgemein" ist der Name meiner Sonos.
Wenn man "get Favoutites" macht kommt folgendes raus:



LastActionResult:            GetFavourites: "1LIVE","Antenne","DASDING","PN-Eins","Pure-FM","ROCK-ANTENNE","Radio-Gong","sunshine live","sunshine live - Die 90er","sunshine live - EDM","sunshine live - house"