Package: python-libratone-zipp
Libratone Zipp controller library in PythonThis aims to control a Libratone Zipp speaker with a Python library, potentially usable inHome Assistantwiththis module.Install it withpip install python-libratone-zipp-pip pageTested with Libratone Zipp 1, firmware 809.UsageSee example inCLI.py. You have to be able to listen to3333/udpand7778/udp!Other files:Test_SendCommandReceiveMessage.pyis used to shoot one command for tests purposes.Test_LibratoneMessage.pyis to check LibratoneMessage class against a real messageFunctionality coverageI'm currently happy with this coverage, so don't expect any updates other than maintenance.The only thing I'm very interested is defining Favorites!ModuleClean text variables, declare variable on top instead of using text like "play"Create a Command Line Interface - CLI clientPublish on PyPiHandle exit properly - but need max _KEEPALIVE_CHECK_PERIOD seconds to exitUse discovery method instead of fixed IPMake the module compatible with async from Home AssistantPlayback status with Spotify & RadioRetrieve basic playback status: play, pause, stopRetrieve volumeRetrieve current playback sourceRetrieve current titleRetrieve mute status - but no logic implemented!Playback with Bluetooth or USBRetrieve basic playback status: play, pause, stopRetrieve media type: Bluetooth, aux, radio, ...Retrieve extended playback status: shuffle, repeatSet extended playback status: shuffle, repeatPlayback controlSet basic playback status: play, pause, stop, next, prevSet volumeStandbyRetrieve actual speaker stateCalculate actual speaker state: UNKOWN, SLEEPING, ON, PLAYING, PAUSED, STOPPEDSet to immediate standby and wakeupSet a standby timerRetrieve the defined duration of the standby timerCalculate the actual standby timerVoicing & Room SettingSet a VoicingRetrieve active VoicingRetrieve all VoicingSet Room SettingRetrieve current Room SettingRetrieve all RoomFavoritesPlay a FavoriteList configured favorite but no processing (_channel_json)Set a FavoriteExtended current playback infoSet SourceRetrieve current sourceSpeaker configurationRetrieve current firmwareRetrieve speaker nameRetrieve speaker colorSet speaker nameMap out color codes + Set speaker colorRetrieve current serial numberRetrieve current battery levelRetrieve AC informationNetworkRetrieve current IPRetrieve current Wi-Fi configurationRetrieve current Wi-Fi informationSet Wi-Fi configurationMulti-roomImplement SoundSpace LinkUnimplemented commandsFollowing commands where identified but not implemented and/or implemented but not processed due to lack ondatainvestigation. The list is not exhaustive!From Android application,com.libratone.model.LSSDPNode:commandfunctionnotes10fetchSourceInfo103fetchDeviceState152fetchSource281fetchMusicServiceCapabilityAnswer a JSON304fetchLimitedFunctionListAnswer 3 bytes520fetchMuteStatusImplemented but not processed530fetchOtaAutoDownLoadStatus537fetchWifiLinein1284fetchChargingStatusImplemented but not processed1285fetchPrivateMode1536fetchUsbCurrentPlayId1537fetchUsbPlayMode1538fetchUsbSongInfoAcknowledgmentThis work is based on the following:The Libratone command list iscoming from this work from Benjamin HankeA lot of further work is based on APK decompilationEntity to use:Media PlayerExample ofintegrations:Simple:Harman Kardon AVR integrationwhich usethis moduleSimple:Clementine Music Player integrationAsync:Frontier Silicon integrationwiththis moduleAsync with extended features:Yamaha integrationwiththis moduleAsync and simple:anthemav integrationwiththis moduleLicenseSee LICENSE file