Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update fork #3

Merged
merged 220 commits into from
May 27, 2020
Merged
Changes from 1 commit
Commits
Show all changes
220 commits
Select commit Hold shift + click to select a range
47ecc50
[sunspec] Modbus: sunspec bundle auto discovery (#6994)
mrbig Apr 20, 2020
330213c
[shelly] Don't auto-initialize when thing is removing (#7416)
markus7017 Apr 20, 2020
a1e9c74
[ambientweather] Fix ws8482 indoor sensor (#7429)
mhilbush Apr 20, 2020
64438eb
[modbus] Cleaned modbus binding + extension docs (#7424)
kaikreuzer Apr 20, 2020
42cfb6d
[samsungtv] Update README.md with supported model UE46F6510SS (#7433)
cr0wned0ne Apr 20, 2020
47a320c
[miio] Improve Yeelight Color channel (#7431)
marcelrv Apr 21, 2020
aa4e0f6
Fix protocol selection for SSL in IMAP/POP3IMAPHandler (#7437)
J-N-K Apr 21, 2020
a0d579b
[modbus][sunspec] full inverter support (#7432)
mrbig Apr 21, 2020
41ee4ef
[sagercaster] Added German translation (#7443)
clinique Apr 22, 2020
f34fa01
Fix missing 2.5.5-SNAPSHOT changes (#7447)
cweitkamp Apr 23, 2020
518e507
[miio] add gosund plug & Vacuum 1C STYTJ01ZHM (#7452)
marcelrv Apr 23, 2020
43ec4e5
[lutron] Ignore Connect Bridge mDNS discovery (#7455)
bobadair Apr 23, 2020
2800b48
[miio] fix parsing issue (#7456)
marcelrv Apr 23, 2020
61eee13
[lutron] Add Caseta model option to virtualkeypad (#7457)
bobadair Apr 24, 2020
332847f
Removed dependency on 'org.apache.commons.codec' (#7460)
cweitkamp Apr 24, 2020
f02e236
[pjlink] Null characters fix (#7462)
nils Apr 24, 2020
46e11b6
[hue] Remove older discovery results from the current bridge only (#7…
lolodomo Apr 24, 2020
5ec701b
[innogysmarthome] Fix isr2stop (#7439)
mmans Apr 24, 2020
31af81e
[modbus][sunspec] Support for SunSpec meters (#7441)
mrbig Apr 24, 2020
bfcebf0
[rfxcom] Added Cherubini blinds support (#7418)
Bleizig Apr 24, 2020
9b11df9
[mihome] Fix NPE, add null annotations and name threads (#7474)
wborn Apr 25, 2020
683853b
[opensprinkler] Add current draw channel (#7178)
FlorianSW Apr 25, 2020
cf89482
[homematic] Use async Jetty http request to support larger buffers (#…
MHerbst Apr 25, 2020
bf56172
[openhabcloud] Clarify exposing Items (#7446)
rkoshak Apr 25, 2020
642613f
[coronastats] Use QuantityType instead of plain DecimalType (#7477)
kaikreuzer Apr 25, 2020
b2f42ef
[hueemulation] Fixes HueEmulation DiscoveryIp not used (#7411)
tfelix Apr 25, 2020
c5fdd32
[pjlink] use parameter-groups for better structure of thing parameter…
nils Apr 26, 2020
7628135
Apply Spotless formatter (#7449)
J-N-K Apr 27, 2020
0671c4f
[insteon] Added support to 2472D OutletLinc Dimmer for LED On/Off, LE…
tommycw1 Apr 27, 2020
2466336
[sonos] Avoid concurrent execution of the polling job (#7445)
lolodomo Apr 27, 2020
65eff40
[samsungtv] Few improvements (#7436)
lolodomo Apr 28, 2020
6ec02aa
[ecobee] Improve initial setup instructions (#7498)
mhilbush Apr 28, 2020
36491aa
[alarmdecoder] Initial contribution (#7189)
bobadair Apr 30, 2020
1443bf3
[ecobee] Improve handling of access token response (#7506)
mhilbush Apr 30, 2020
e3489f2
[sonos] Add speechenhancement channel for Sonos One (#7484)
mindstorms6 May 1, 2020
a0f7c4d
[coolmasternet] Fix buffer handling (#7505)
benalexau May 1, 2020
41616c6
Adding next season to Astro (#7517)
clinique May 2, 2020
df4648a
[bluetooth] Make BluetoothDevice more abstract (#7380)
cpmeister May 2, 2020
cc0f769
[hue] Improved code (notify status listener) (#7511)
lolodomo May 2, 2020
a62e1e8
[hue] Little optimization in light and sensor handlers (#7512)
lolodomo May 2, 2020
7c88cbe
[avmfritz] documentation example for FRITZ DECT Repeater 100 (#7475)
drohhyn May 2, 2020
3a0e614
[hue] Add support for groups/rooms (#7476)
lolodomo May 2, 2020
a1b1027
[hue] Add unit to the fadetime configuration setting (#7521)
lolodomo May 2, 2020
90fad29
[netatmo] Add unit to few configuration settings (#7522)
lolodomo May 2, 2020
bef73f4
[astro] Add unit to few configuration settings (#7523)
lolodomo May 2, 2020
014f2f6
[freebox] Add unit to few configuration settings (#7525)
lolodomo May 2, 2020
fbf2204
removed glassfish dependencies (#7530)
kaikreuzer May 3, 2020
7b5928e
[opengarage] Add Contact & RollerShutter types for additional flexibi…
psmedley May 3, 2020
0268f3a
[neeo] removed dependencies to Jersey (#7532)
kaikreuzer May 3, 2020
2621ff1
[hue] Refactored start, stop polling (#7537)
DerOetzi May 3, 2020
daa4c30
[homekit] upgrade to latest HAP library. add optional attributes. (#7…
yfre May 3, 2020
556ecaf
[pioneeravr] Support refresh commands where applicable (#7529)
nils May 3, 2020
f733b51
[hue] Command for group sent asynchronously (#7539)
lolodomo May 3, 2020
0e10392
[daikin] Add support for BRP072C42 adapter (#7487)
jimtng May 4, 2020
bf3c448
[ecobee] Add ChannelTypeUID for dynamic channels (#7541)
mhilbush May 4, 2020
279158d
[neohub] added support for Fahrenheit, new accessory devices, and low…
andrewfg May 4, 2020
da8140c
[telegram] Update readme with multiple chat ids example (#7544)
HerzScheisse-zz May 4, 2020
5d507df
[rfxcom] Move connection check to trace logging (#7548)
Jamstah May 4, 2020
f75544b
[avmfritz] Refactoring of discovery service and internal event handli…
cweitkamp May 4, 2020
fd7c7d2
[lametrictime] Removed Jersey dependencies (#7536)
kaikreuzer May 4, 2020
778d9c7
[miio] avoid font error (#7454)
marcelrv May 4, 2020
30a59ba
[jinja] Remove dependency on jersey-all (#7553)
wborn May 5, 2020
9f87a9d
[miio] Resolve minor issues (#7551)
marcelrv May 5, 2020
1465a01
[icalendar] Initial contribution (#6453)
daMihe May 5, 2020
89f4e99
[homematic] more HomeMatic IP devices (#7557)
hoegertn May 6, 2020
c8479ac
[sonyaudio] Add Night Mode (volume limiting) for Soundbars/AV receive…
jackchallen May 6, 2020
f853f6d
[sleepiq] Removed Jersey dependencies (#7562)
wborn May 7, 2020
573c7aa
[insteon] use correct units of measure for watts and kWh (#7565)
robnielsen May 7, 2020
c8b7bbe
[energenie] Initial contribution (#6461)
hmerk May 7, 2020
fcefe03
fixed json parsing of specific types (#7570)
kaikreuzer May 7, 2020
d867772
[coolmasternet] General tidy up of addon (#7546)
benalexau May 8, 2020
f9374d8
[shelly] Bug fixes (#7563)
markus7017 May 8, 2020
6516aed
[homekit] New accessories Garage Door Opener and Outlet (#7552)
yfre May 8, 2020
3d14a0d
Use gnu.io [3.12,6) version range in package imports (#7589)
wborn May 10, 2020
34549a0
[pioneeravr] Use serial transport (#7588)
wborn May 10, 2020
c097a04
[squeezebox] Discovery: make use of representation property (#7601)
t2000 May 11, 2020
8bb8981
[danfossairunit] initial contribution (#6814)
pravussum May 11, 2020
c30d666
[opensprinkler] Fixed typo in README (#7599)
KaaNee May 11, 2020
82b4038
[miio] Fix representation property in discovery (#7602)
t2000 May 11, 2020
e9b66eb
[ecobee] Add representation-property to thing XML (#7604)
mhilbush May 11, 2020
ccd0ea9
[miio] Kill created thread when connection is failing (#7607)
lolodomo May 11, 2020
48afaa8
[homekit] fix support of DimmerItem for Brightness (#7605)
yfre May 11, 2020
9d57768
[mcp23017] Fixed invalid ternary operator in example Rule (#7430)
rkoshak May 11, 2020
a2e4f31
[miio] Check configuration settings to avoid NPE (#7606)
lolodomo May 11, 2020
73ee3ae
[phc] Improve serial communication and add support for dimmer (#6447)
gnlpfjh May 11, 2020
cdd0284
[tradfri] Do a dispose() and initialize() when loosing contact with G…
jannegpriv May 11, 2020
7081b74
[kostal-inverter] added troubleshooting information for authenticatio…
Bonifatius94 May 11, 2020
7f89a6a
[knx] Fix disposal of DeviceThingHandler (#7603)
t2000 May 12, 2020
fcd8296
[somfytahoma] added channel for setting closure and orientation at on…
octa22 May 12, 2020
616d4f8
[sonos] Support for Sonos Amp device (#7572)
lolodomo May 12, 2020
48dc8fb
[daikin] Improve handling of illegal commands (#7591)
jimtng May 12, 2020
c59f32e
[avmfritz] Minor improvements and SAT findings (#7554)
cweitkamp May 12, 2020
cc737e1
[miio] Use dispose() from the abstract class (#7613)
lolodomo May 12, 2020
0a7216a
[miio] Establish connection in initialize() rather than the construct…
lolodomo May 12, 2020
526ac43
[alarmdecoder] Remove check for no serial ports (#7615)
bobadair May 12, 2020
700c76c
[lutron] Replace gnu.io with OH serial transport (#7609)
bobadair May 12, 2020
0c04596
[VolvoOnCall] Correcting NPE on certain models (#7453)
clinique May 12, 2020
b469399
[digiplex] Use serial transport (#7617)
wborn May 12, 2020
a7dc2c2
[dscalarm] Use serial transport (#7618)
wborn May 12, 2020
8ba9f60
[elerotransmitterstick] Use serial transport (#7619)
wborn May 12, 2020
9bf33ca
[opengarage] Use option states for vehicle status, small formatting i…
digitaldan May 13, 2020
7695975
[mqtt.generic] add trigger channel type (#6902)
jochen314 May 13, 2020
e2617b9
Don't limit serial port options (#7625)
wborn May 13, 2020
194c471
[jeelink] Use serial transport (#7620)
wborn May 13, 2020
1d7a228
[modbus] Use gnu.io [3.12,6) version range (#7628)
wborn May 13, 2020
f0e9db8
[nikohomecontrol] Fixes to rollershutter and energy meter. (#7627)
mherwege May 13, 2020
a31ad29
[satel] Fix for incorrect date/time set in the alarm system (#7626)
druciak May 13, 2020
c9060b4
[lgtvserial] Use serial transport (#7631)
wborn May 14, 2020
33c1ed7
[meteostick] Use serial transport (#7632)
wborn May 14, 2020
7b5cdab
[nibeheatpump] Use serial transport (#7633)
wborn May 14, 2020
48b65bc
[regoheatpump] Use serial transport (#7636)
wborn May 14, 2020
7a696a2
[rme] Use serial transport (#7638)
wborn May 14, 2020
698e236
[smartmeter] Remove unused gnu.io import package (#7639)
wborn May 14, 2020
73ed1a5
[urtsi] Use serial transport (#7640)
wborn May 14, 2020
cd853c3
[shelly] fixes documentation for shellyrgbw2 channels (#7629)
maglnet May 14, 2020
1a98d01
[velbus] Use serial transport (#7641)
wborn May 14, 2020
a0ea082
[hpprinter] Status Bugfix and Channel Improvements (#7637)
Cossey May 14, 2020
0b7f6df
[lgwebos] Use channel id as state for the channel channel (#7624)
lolodomo May 14, 2020
e390f46
[sonos] Support for Sonos Port device (#7611)
lolodomo May 14, 2020
4e92a45
[velbus] Remove removeEventListener on dispose (#7644)
wborn May 14, 2020
bf8e391
[coolmasternet] Fix set_temp channel bug (#7630)
benalexau May 14, 2020
7beeef8
[weathercompany] Rework example and fix discovery (#7496)
mhilbush May 15, 2020
74f6b99
[avmfritz] Structural code improvements (#7650)
cweitkamp May 15, 2020
90bbd37
[onewire] Fix error handling for connection issues (#7621)
May 16, 2020
74e7b13
[shelly] Support for Shelly Vintage, Bugfixes (#7653)
markus7017 May 16, 2020
8d8c345
[VolvoOnCall] carLocked never gets updated (#7645)
clinique May 16, 2020
dd13ac4
[lgwebos] Console commands to list applications and channels (#7579)
lolodomo May 16, 2020
b6edbac
[unleash-maven-plugin] Preparation for next development cycle.
May 17, 2020
da7b054
[openthermgateway] Initial contribution (#6785)
ArjenKorevaar May 17, 2020
00ed4a8
Removed 'getThingByUID()' method from 'BaseBridgeHandler' (#7665)
cweitkamp May 17, 2020
91749f7
[lgwebos] Fix documentation (#7663)
lolodomo May 17, 2020
33a2398
[shelly] Watchdog timer, new channel updateAvailable (#7659)
markus7017 May 18, 2020
73562f2
[lutron] Add an additional output type to discovery (#7666)
bobadair May 18, 2020
4a24706
[insteon] remove support for multiple ports (#7662)
robnielsen May 18, 2020
4af2b8d
[freebox] Handler factory activation simplified (#7676)
lolodomo May 18, 2020
06c68e3
[rfxcom] Handler factory activation simplified (#7679)
lolodomo May 18, 2020
6e77124
[weatherunderground] Handler factory activation simplified (#7681)
lolodomo May 18, 2020
3e6d9fb
[netatmo] Handler factory activation simplified (#7671)
lolodomo May 18, 2020
4930b8d
[rotel] Handler factory activation simplified (#7669)
lolodomo May 18, 2020
f52f67a
[sonyprojector] Handler factory activation simplified (#7670)
lolodomo May 18, 2020
d8dfea3
[powermax] Handler factory activation simplified (#7668)
lolodomo May 18, 2020
7bd403e
Use constructor injection (#7682)
mhilbush May 18, 2020
9c30594
Use constructor injection (#7684)
mhilbush May 18, 2020
49333c7
Fix missing 2.5.6-SNAPSHOT changes (#7686)
kaikreuzer May 18, 2020
09bbf06
[ntp] Handler factory activation simplified (#7677)
lolodomo May 18, 2020
218039e
[rfxcom] OFFLINE status detail (#7688)
lolodomo May 18, 2020
931aadf
[weatherunderground] OFFLINE status detail (#7689)
lolodomo May 18, 2020
5ff7e69
[robonect] Added status 18, Doordelay (#7658)
27421 May 18, 2020
d313d1a
[hue] OFFLINE status detail (#7687)
lolodomo May 19, 2020
324994a
[opengarage] Adds invert option to switch (#7674)
digitaldan May 19, 2020
eefe9e2
[yeelight] Added support Ceiling 1 with Night Mode (#7690)
DragonNP May 19, 2020
29735bd
[openweathermap] bridge / thing handling (#7692)
lolodomo May 19, 2020
216aece
[netatmo] bridge / thing handling (#7691)
lolodomo May 19, 2020
ac9c649
[freebox] Hot fix for login to the freebox (#7696)
lolodomo May 20, 2020
b754506
[onewire] Fix DS2406_DS2413 uncached read (#7709)
Urmel May 21, 2020
d37ba79
[homekit] Fix documentation and "CLOSED" state (#7693)
ecdye May 21, 2020
c3b58fc
[homekit] set correct configuration revision on bundle start (#7702)
yfre May 21, 2020
8e9b50d
[mqtt] Added publish method to MQTTTopicDiscoveryService (#7365)
aisebastian May 21, 2020
5943cd3
[homekit] simplify HomeKit console commands (#7600)
yfre May 21, 2020
a1dfe65
[daikin] Add BRP069B41 to documentation (#7712)
aliewen May 21, 2020
e301b32
[satel] Fix for older ETHM-1/INT-RS firmware version (#7705)
druciak May 21, 2020
0f8e282
[yamahareceiver] Let the framework call bridgeStatusChanged (#7706)
lolodomo May 21, 2020
11fcc52
[mqttembeddedbroker] add deprecation note (#7717)
J-N-K May 21, 2020
67f4ff6
[darksky] Removed dependency on 'org.apache.commons.*' (#7720)
cweitkamp May 21, 2020
1aba8cb
[openweathermap] Removed dependency on 'org.apache.commons.*' (#7721)
cweitkamp May 21, 2020
505460b
[homekit] add support for internal Valve timer (#7673)
yfre May 21, 2020
309f6f9
[astro] Handler factory activation simplified (#7675)
lolodomo May 21, 2020
efc84f1
[netatmo] Add support for the Presence camera (#3059) (#7660)
Novanic May 22, 2020
5102cdd
[samsungtv] Add UE50MU6179 and additional documentation (#7714)
aliewen May 22, 2020
c6aeb3f
[powermax] Removed dependency on 'org.apache.commons.lang' (#7726)
lolodomo May 22, 2020
21121a7
[homekit] bugfix 7701. add delay on homekit bridge start in case of c…
yfre May 22, 2020
f38c5f6
[samsungtv] Removed dependency on 'org.apache.commons.lang' (#7740)
lolodomo May 22, 2020
78a0919
[homekit] Allow root accessory have characteristics (#7747)
yfre May 22, 2020
2a42265
[homekit] remove dependency on org.apache.commons (#7745)
yfre May 22, 2020
10e0b85
[alarmdecoder] Documentation update (#7749)
bobadair May 22, 2020
08207b9
[powermax] Move the check of configuration settings (#7710)
lolodomo May 23, 2020
275ae7b
[rfxcom] Removed dependency on 'org.apache.commons.io.IOUtils' (#7729)
lolodomo May 23, 2020
739b97c
[daikin] Add Energy, compressor frequency and special mode channels (…
LukasA83 May 23, 2020
6f129fd
[freebox] Removed dependency on 'org.apache.commons.lang' (#7727)
lolodomo May 23, 2020
b883512
[mqtt] Correctly unsubscribe after message is received (#7723)
bodiroga May 23, 2020
5bfe82a
[pollytts] Add text based configuration instructions to docs (#7703)
mindstorms6 May 23, 2020
e713d49
[kodi] Removed dependency on 'org.apache.commons.lang' (#7719)
cweitkamp May 23, 2020
94a44c7
[insteon] improve reconnection logic (#7741)
robnielsen May 23, 2020
90e2861
[somfytahoma] fixed error when dimmer sends decimal values (#7751)
octa22 May 23, 2020
4eb779a
[Nibeuplink] enhanced custom channel feature (#6696)
alexf2015 May 23, 2020
a7f6768
[HEOS] Updates for HEOS (#6099)
martinvw May 23, 2020
51b9cf1
Fixed usage of deprecated contructor for 'RawType' (#7766)
cweitkamp May 24, 2020
dde888f
[sensibo] Temperature measurements are always celsius despite chosen …
seime May 24, 2020
5e2bc20
[ihc] Fixed empty RF device list parsing (#7772)
paulianttila May 24, 2020
f53c38c
upgrade spotless and apply (#7773)
J-N-K May 24, 2020
a31fb90
[mqtt.homie] Create PercentageValue only if attribute is settable (#7…
bodiroga May 24, 2020
a2b9b8e
[homekit] Use BigDecimal to ensure accurate rounding (#7777)
ecdye May 25, 2020
e787948
[weatherunderground] Log URL with masked API key (#7756)
lolodomo May 25, 2020
8f78b41
[powermax] Do not log messages containing the PIN code (#7755)
lolodomo May 25, 2020
f485114
[enigma2] Initial Contribution (#7514)
gdolfen May 25, 2020
f604b41
[powermax] Removed dependency on 'org.apache.commons.io.IOUtils' (#7728)
lolodomo May 25, 2020
df2d7c8
[enocean] Removed dependency on 'org.apache.commons.io.IOUtils' (#7731)
lolodomo May 25, 2020
8f4dda4
[oceanic] Removed dependency on 'org.apache.commons.io.IOUtils' (#7732)
lolodomo May 25, 2020
3f2644b
[lirc] Removed dependency on 'org.apache.commons.io.IOUtils' (#7733)
lolodomo May 25, 2020
ba44848
[netatmo] Mark the client secret configuration setting as a password …
lolodomo May 25, 2020
2176127
[somfymylink] Somfy MyLink Binding initial contribution (#5652)
May 25, 2020
8900180
[plugwise] Removed dependency on 'org.apache.commons.io.IOUtils' (#7734)
lolodomo May 25, 2020
5969085
[rme] Removed dependency on 'org.apache.commons.io.IOUtils' (#7735)
lolodomo May 25, 2020
4d53ed7
[urtsi] Removed dependency on 'org.apache.commons.io.IOUtils' (#7736)
lolodomo May 25, 2020
5535043
[rfxcom] In/out streams closed when the socket is closed (#7786)
lolodomo May 25, 2020
51612b5
[sonos] Removed usage of org.apache.commons.lang.StringUtils (#7780)
lolodomo May 25, 2020
03b8d51
[keba] Don't use selector if it has been closed (#7776)
kaikreuzer May 25, 2020
99fc188
[freebox] Mark the application token configuration setting as a passw…
lolodomo May 26, 2020
f0552f1
[tesla] Use CXF JAX-RS client builder, if available. (#7789)
kaikreuzer May 26, 2020
aa3268e
Use CXF JAX-RS client builder, if available (#7790)
kaikreuzer May 26, 2020
500ce34
Fix add-ons port (#7792)
wborn May 26, 2020
8563777
[solaredge] fix percent channel definition (#7791)
alexf2015 May 26, 2020
74b0787
[weatherunderground] Removed dependency on 'org.apache.commons.lang' …
lolodomo May 26, 2020
d538703
[serialbutton] Removed dependency on 'org.apache.commons.io.IOUtils' …
lolodomo May 26, 2020
a44aaaa
[dscalarm] Removed dependency on 'org.apache.commons.io.IOUtils' (#7737)
lolodomo May 26, 2020
1594a25
[lgwebos] Mask access key (#7771)
lolodomo May 26, 2020
3b0c0a7
[nibeheatpump] Removed dependency on 'org.apache.commons.io.IOUtils' …
lolodomo May 26, 2020
f768e7a
[insteon] refactor downloading of modem database (#7794)
robnielsen May 26, 2020
bfe0feb
[siemensrds] null annotations; JUnit; UoM; enhancements; bug; refacto…
andrewfg May 26, 2020
632c947
[mqtt.homie] Improve Homie discovery time (#7760)
bodiroga May 26, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[HEOS] Updates for HEOS (openhab#6099)
* HEOS changes

Functionalities:

- Added support for favorites-list
- Added support for playlist-list
- Added support for queue-list
- Added support for clear queue Channel
- allow selecting favorites/playlists/queue-items by label instead of id
- fetch favorites for non-online groups
- HEOS rule actions to replace indirect usage of state in the binding
- handle functional errors from the heos system (one of the reasons is to mark gone devices as such)
- Added support for longer listening sessions (int did overflow...)

Fixes openhab#6491 cannot login with + sign in email

Technical changes

- Add NonNull / Null annotations
- Add representation property for groups
- Removed Heos prefix of some methods
- Use the default scheduler in the keep-alive
- Refresh player state if it reappears online
- handle event in a single-threaded-executor to make sure we do not block other things
- Looked into the selection of players
- Add more logging and intialize the lastEventTime on construction
- Keep track of the last-event and reconnect when it has been too long
- Improve the handling of the unit for the duration's
- Renamed executor and gave the threads proper names
- Add configuration classes
- Corrected some typo's
- Wrapped the build which is build inside the HeosChannelManager to stop race conditions from happening.
- Corrected Telnet disconnect logic, the stream should not be closed by the caller.
- Solved ConcurrentModificationException by making a copy of the list of players
- Corrected spelling of HEOS
- Move internal to internal
- Removed commented out code
- Corrected typo's
- Replaced for-loops over lists by for-each
- Replaced for-each over keys by for-each over values
- improve exception message about support for AAC
- add additional Nullable annotations
- log some ignored exceptions
- remove unused generic
- no scheduling inside the scheduler
* Rewrote Telnet.readLine such that its more clear what its doing by storing in the two state in two separate variables.
- added missing final's
- some tuning with handling of async behavior of handler
Improved scheduling, cancelling and readline method
- move the timeout inside the timed-out callable
- formatted code
- Improve ONLINE/OFFLINE status of players/groups
- Correct adding of player/group channels
- Small rewrite to the player/group discovery

Signed-off-by: Martin van Wingerden <martin@martinvw.nl>

Co-authored-by: Connor Petty <mistercpp2000+gitsignoff@gmail.com>
  • Loading branch information
martinvw and Connor Petty authored May 23, 2020
commit a7f6768aacfc2898893a1637cb679c9b9b3b3be7
114 changes: 58 additions & 56 deletions bundles/org.openhab.binding.heos/README.md
Original file line number Diff line number Diff line change
@@ -18,21 +18,25 @@ A bridge uses the thing ID "bridge".
Player:
A generic player is supported via this binding.
Currently no differences are made between the players.
A player uses the thing ID "player"
A player uses the Thing ID "player"

Groups:
The binding supports HEOS groups.
A group uses the thing ID "group"
A group uses the Thing ID "group"


## Discovery

This binding supports full automatic discovery of available players to be used as a bridge, players and groups (both after establishing a connection via a bridge).
This binding supports full automatic discovery of available players to be used as a bridge, players and groups.
You need to add a Bridge device first (which is also auto-discovered by the binding) which can be any HEOS device in your network (preferably which has wired connection).

__Important!__
Please note that only one bridge is required to establish a connection.
Adding a second bridge can cause trouble with the connection.
It is recommended to use the Paper UI or other GUI to setup the system and add all players and groups.

It is recommended to use the Paper UI to setup the system and add all players and groups.
The bridge is discovered through UPnP in the local network.
Once it is added the players and groups are discovered via the bridge and placed within the inbox.
Once it is added the players and groups are discovered via the bridge and placed in the Paper UI Inbox.

## Binding Configuration

@@ -46,7 +50,7 @@ The bridge has the following configuration parameter

| Parameter | Description | Required |
|----------------- |------------------------------------------------------------ | --------- |
| ipAddress | The network address of the bridge | yes |
| ipAddress | The network address of the Bridge | yes |
| username | The user name to login to the HEOS account | no |
| password | The password for the HEOS account | no |
| heartbeat | The time in seconds for the HEOS Heartbeat (default = 60 s) | no |
@@ -65,7 +69,7 @@ Player have the following configuration parameter

| Parameter | Description | Required |
|----------------- |----------------------------------------------------------- | --------- |
| pid | The internal player ID | yes |
| pid | The internal Player ID | yes |

For manual configuration a player can be defined as followed:

@@ -74,9 +78,9 @@ Thing heos:player:player1 "name" [pid="123456789"]
````

PID behind the heos:player:--- should be changed as required.
It is recommended to use the player PID.
It is recommended to use the Player PID.
If the PID isn't known it can be discovered by establishing a Telnet connection (port 1255) to one player and search for available players (Command: heos://player/get_players) within the network.
Another way is to use Paper UI to discover the player via the bridge and get the PID.
Another way is to use Paper UI to discover the Player via the bridge and get the PID.
For further details refer to the [HEOS CLI](https://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf) specification.

### Group Configuration
@@ -87,7 +91,8 @@ Player have the following configuration parameter
|----------------- |------------------------------------------------------------------------------------- | --------- |
| members | The members of the groups. These are the player IDs. IDs have to be separated by ";" | yes |


If you use Paper UI to manage your Things (which is the preferred way), you can also set up your group automatically from Paper UI.
Groups will automatically appear in the Inbox if that Group is active. To do this, build your Group from the HEOS app, then the group will appear in the Inbox.
```
Thing heos:group:group1 "name" [members="45345634;35534567"]
```
@@ -126,13 +131,20 @@ Bridge heos:bridge:main "Bridge" [ipAddress="192.168.0.1", username="userName",
| PlayUrl | String | Plays a media file located at the URL |
| Shuffle | Switch | Switches shuffle ON or OFF |
| RepeatMode | String | Defines the repeat mode: Inputs are: "One" , "All" or "Off" |
| Playlists | String | Plays a playlist. Playlists are identified by numbers (starting at 0!). List can be found in the HEOS App |
| Favourites | String | Plays a favourite. The selection options are retrieved automatically |
| Playlists | String | Plays a playlist. The selection options are retrieved automatically |
| Queue | String | Plays from the queue. The queue items are retrieved automatically |
| ClearQueue | Switch | Clear the queue when turned ON |

The `Favourites`, `Playlists`, `Queue` selection options are queried automatically from the HEOS system (if you set up any in the HEOS app).
This means the available options will be visible in a Selection, you don't have to specify them manually.
You can send commands to these channels from rules by sending the name of the selected item (For example: Starting a favorite radio channel from rule).

#### Example

```
Player LivingRoom_Control "Control" {channel="heos:player:main:LivingRoom:Control"}
Selection item=LivingRoom_Playlists label="Playlist" icon="music"
```

### Channels of Thing type 'group'
@@ -155,7 +167,16 @@ Player LivingRoom_Control "Control" {channel="heos:player:main:LivingRoom:Contro
| PlayUrl | String | Plays a media file located at the URL |
| Shuffle | Switch | Switches shuffle ON or OFF |
| RepeatMode | String | Defines the repeat mode: Inputs are: "One" ; "All" or "Off" |
| Playlists | String | Plays a playlist. Playlists are identified by numbers (starting at 0!). List can be found in the HEOS App |
| Favourites | String | Plays a favourite. The selection options are retrieved automatically |
| Playlists | String | Plays a playlist. The selection options are retrieved automatically |
| Queue | String | Plays from the queue. The queue items are retrieved automatically |
| ClearQueue | Switch | Clear the queue when turned ON |

The `Favourites`, `Playlists`, `Queue` selection options are queried automatically from the HEOS system (if you set up any in the HEOS app).
This means the available options will be visible in a Selection, you don't have to specify them manually.
You can send commands to these channels from rules by sending the name of the selected item (For example: Starting a favorite radio channel from rule).

### Available inputs

| Input names |
|-------------- |
@@ -191,39 +212,21 @@ Player LivingRoom_Control "Control" {channel="heos:player:main:LivingRoom:Contro
| tvaudio |
| phono |

An current list can be found within the HEOS CLI protocol which can be found [here](https://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf).
A current list can be found within the HEOS CLI protocol which can be found [here](https://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf).

### Channels of Thing type 'bridge'

| Channel ID | Item Type | Description |
|---------------------- |----------- |-------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reboot | Switch | Reboot the whole HEOS System. Can be used if you get in trouble with the system |
| BuildGroup | Switch | Is used to define a group. The player which shall be grouped has to be selected first. If Switch is then activated the group is build. |


| BuildGroup | Switch | Is used to define a group. The player which shall be grouped has to be selected first. If Switch is then activated the group is built. |

For a list of the commands please refer to the [HEOS CLI protocol](https://rn.dmglobal.com/euheos/HEOS_CLI_ProtocolSpecification.pdf).


## *Dynamic Channels*

Also the bridge, players and groups supports dynamic channels which represent the players of the network and the favorites.
They are added dynamically if a player is found and if favorites are defined within the HEOS Account.
To activate Favorites the system has to be signed in to the HEOS Account.
The player and group channels are only shown on the bridge.


### Favorite Channels

| Channel ID | Item Type | Description |
|------------ |----------- |------------------------------------------------------------------------------------------------------- |
| {mid} | Switch | A channel which represents the favorite. Please check via UI how the correct Channel Type looks like. |

Example

```
Switch Favorite_1 "Fav 1 [%s]" {channel="heos:bridge:main:s17492"}
```
Also the bridge supports dynamic channels which represent the players of the network.
They are added dynamically if a player is found. The player and group channels are only shown on the bridge.

### Player Channels

@@ -241,7 +244,7 @@ Example

## Full Example

###demo.things:
### demo.things:

```
Bridge heos:bridge:main "Bridge" [ipAddress="192.168.0.1", username="userName", password="123456"] {
@@ -251,7 +254,7 @@ Bridge heos:bridge:main "Bridge" [ipAddress="192.168.0.1", username="userName",
}
```

###demo.items:
### demo.items:

```
Player LivingRoom_Control "Control" {channel="heos:player:main:LivingRoom:Control"}
@@ -260,9 +263,10 @@ Dimmer LivingRoom_Volume "Volume" {channel="heos:player:main:LivingRoom:Volume"}
String LivingRoom_Title "Title [%s]" {channel="heos:player:main:LivingRoom:Title"}
String LivingRoom_Interpret "Interpret [%s]" {channel="heos:player:main:LivingRoom:Artist"}
String LivingRoom_Album "Album [%s]" {channel="heos:player:main:LivingRoom:Album"}
String LivingRoom_Playlists {channel="heos:player:main:LivingRoom:Playlists"}
```

###demo.sitemap
### demo.sitemap

```
Frame label="LivingRoom" {
@@ -272,6 +276,7 @@ String LivingRoom_Album "Album [%s]" {channel="heos:player:main:LivingRoom:Album
Default item=LivingRoom_Title
Default item=LivingRoom_Interpret
Default item=LivingRoom_Album
Selection item=LivingRoom_Playlists label="Playlist" icon="music"
}
```

@@ -282,12 +287,11 @@ This section gives some detailed explanations how to use the binding.
### Grouping Players

Players can be grouped via the binding.
To do so, select the player channels of the players you want to group at the bridge and then use the "Made Group" channel to create the group.
The first player which is selected will be the group leader.
The group GID then is the same as the PID of the group leader.
Therefore changing play pause and some other things at the leading player will also change that at the whole group.
Muting and Volume on the other hand can be changed individually for each player also for the group leader.
If you want to change that for the whole group you have to do it via the group thing.
The easiest way to do this is to use the created Group type Thing. To group them simply use the `Ungroup` channel on the Group. Switching this Switch ON and OFF will group and ungroup that Group.
The first player which is selected will be the Group leader.
Therefore changing play/pause and some other things at any player (which is included in that group) will also change that at the whole group.
Muting and Volume on the other hand can be changed individually for each Player also for the group leader.
If you want to change that for the whole group you have to do it via the Group thing.

### Inputs

@@ -385,22 +389,20 @@ Frame label="Heos Group" visibility=[HeosGroup_Status==ONLINE] {
}
```

### Playlists
## Rule Actions

Playlists can be played by sending the number (starts at 0!) to the binding via the playlists channel at the corresponding player or group.
To find the correct number for the playlist, please have a look to the HEOS App and see at which position the playlist you want to play is located.

#### Example

Items:
Multiple actions are supported by this binding. In classic rules these are accessible as shown in the example below:

```
String HeosKitchen_Playlist "Playlists" (gHeos) {channel="heos:player:918797451:Playlists"}

val actions = getActions("heos","heos:bridge:bridgeId")
if(null === actions) {
logInfo("actions", "Actions not found, check thing ID")
return
} else {
actions.playInputFromPlayer(-3213214, "aux_in_1", 89089081)
}
```

Sitemap:
### playInputFromPlayer(sourcePlayer, sourceInput, destination)

```
Switch item=HeosKitchen_Playlists mappings=[0="San Glaser", 1="Classic", 2="Beasty Boys"]
```
Allows to play a source from a player to another player.
2 changes: 1 addition & 1 deletion bundles/org.openhab.binding.heos/pom.xml
Original file line number Diff line number Diff line change
@@ -10,6 +10,6 @@

<artifactId>org.openhab.binding.heos</artifactId>

<name>openHAB Add-ons :: Bundles :: Heos Binding</name>
<name>openHAB Add-ons :: Bundles :: HEOS Binding</name>

</project>
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@
<features name="org.openhab.binding.heos-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>

<feature name="openhab-binding-heos" description="Heos Binding" version="${project.version}">
<feature name="openhab-binding-heos" description="HEOS Binding" version="${project.version}">
<feature>openhab-runtime-base</feature>
<feature>openhab-transport-upnp</feature>
<bundle dependency="true">mvn:commons-net/commons-net/3.6</bundle>
Loading