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

[amazonechocontrol] Initial contribution for the Amazon Echo Control Binding (#3083) #3087

Merged
merged 59 commits into from
May 24, 2018
Merged

[amazonechocontrol] Initial contribution for the Amazon Echo Control Binding (#3083) #3087

merged 59 commits into from
May 24, 2018

Conversation

mgeramb
Copy link
Member

@mgeramb mgeramb commented Jan 6, 2018

This is my very first pull request. Please give me an hint if I did something wrong.
I marked the title with [WIP], I'am not sure if this is correct, this version is fully functionally and can be used. But of course a plan additional features in the future.

New Binding Amazon Echo Control

This binding let control openHAB Amazon Echo devices (Alexa).
It provide features to control and view the current state of:

  • volume
  • pause/continue/next track/previous track
  • connect/disconnect bluetooth devices
  • start playing radio

Some ideas what you can do in your home by using rules and other openHAB controlled devices:

  • Automatic turn on your amplifier and connect echo with bluetooth if the echo playes music
  • If the amplifier was turned of, the echo stop playing and disconnect the bluetooth
  • The echo starts playing radio if the light was turned on
  • The echo starts playing radio at specified time

Detailed description:
https://community.openhab.org/t/first-public-beta-openhab2-amazonechocontrol-binding-controling-alexa-from-openhab2/37844/8

Build should be here:
https://openhab.jfrog.io/openhab/libs-pullrequest-local/org/openhab/binding/org.openhab.binding.amazonechocontrol/

@mgeramb
Copy link
Member Author

mgeramb commented Jan 9, 2018

Hi community,
The Travis CI build failed, but I don't find the reason, it seems the a timeout occurred. But my binding was successfully translated and the jar is placed in the output folder. Must I do now something to fix the build?
Regards, Michael

Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented Jan 9, 2018

Hi all,
I need some help, I checked in now some bugfixes and now the Jenkins also fails. But I don't know where I find the information what is wrong.
Regards,
Michael

org.eclipse.smarthome.core.types,
org.openhab.binding.amazonechocontrol,
org.openhab.binding.amazonechocontrol.handler,
org.openhab.core.library.types,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This dependency causes problems, please refactor to no be dependent on it anymore.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Martin, I do not what you mean with remove these dependencies, because the are used, but I have copied now the dependencies from the icloud binding (I only changed the names from icloud with amazonechocontrol). Now Jenkis is green again. But the build goes red again, but it has produced my binding: https://openhab.jfrog.io/openhab/libs-pullrequest-local/org/openhab/binding/org.openhab.binding.amazonechocontrol/2.3.0-SNAPSHOT/
I do not know what's wrong. Thanks for your help!

@martinvw martinvw added new binding If someone has started to work on a binding. For a new binding PR. work in progress A PR that is not yet ready to be merged labels Jan 10, 2018
Michael Geramb added 3 commits January 10, 2018 18:36
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@martinvw
Copy link
Member

If you would build (mvn clean install that is) this on your local machine it should give the same errors, it reports the following:

[INFO] --- static-code-analysis:0.3.0:report (default) @ org.openhab.binding.amazonechocontrol ---
[INFO] Individual report appended to summary report.
[ERROR] Code Analysis Tool has found: 
 28 error(s)! 
 7 warning(s) 
 47 info(s)
[WARNING] .binding.amazonechocontrol/README.md:[99]
The line after code formatting section must be empty.
[WARNING] .binding.amazonechocontrol/README.md:[120]
The line after code formatting section must be empty.
[ERROR] .binding.amazonechocontrol/ESH-INF/thing/thing-types.xml:[16]
Invalid content was found starting with element default. One of {context, required, description, options, limitToOptions, filter, advanced, verify, multipleLimit, unitLabel} is expected.
[WARNING] .binding.amazonechocontrol/META-INF/MANIFEST.MF:[0]
The package org.openhab.binding.amazonechocontrol.discovery should be marked as "internal" if it is not exported.
[ERROR] org.openhab.binding.amazonechocontrol.handler.AccountHandler.java:[104]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.AccountHandler.java:[228]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.AccountHandler.java:[303]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[253]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[2]
Line does not match expected header line of '^ \* Copyright \(c\) \d\d\d\d-\d\d\d\d by the respective copyright holders\.$'.
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[270]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[312]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[315]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[327]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.handler.EchoHandler.java:[330]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.discovery.IAmazonEchoDiscovery.java:[1]
Missing a header - not enough lines in file.
[ERROR] org.openhab.binding.amazonechocontrol.discovery.IAmazonEchoDiscovery.java:[3]
An author tag is missing
[WARNING] org.openhab.binding.amazonechocontrol.discovery.IAmazonEchoDiscovery.java:[3]
Missing Javadoc comment.
[ERROR] org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlHandlerFactory.java:[2]
Line does not match expected header line of '^ \* Copyright \(c\) \d\d\d\d-\d\d\d\d by the respective copyright holders\.$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.AccountConfiguration.java:[2]
Line does not match expected header line of '^ \* Copyright \(c\) \d\d\d\d-\d\d\d\d by the respective copyright holders\.$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.HttpException.java:[2]
Line does not match expected header line of '^ \* Copyright \(c\) \d\d\d\d-\d\d\d\d by the respective copyright holders\.$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonDevices.java:[1]
Line does not match expected header line of '^/\*\*$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonDevices.java:[3]
An author tag is missing
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonPlayerState.java:[1]
Line does not match expected header line of '^/\*\*$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonPlayerState.java:[5]
An author tag is missing
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonMediaState.java:[1]
Line does not match expected header line of '^/\*\*$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonMediaState.java:[3]
An author tag is missing
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonBluetoothStates.java:[1]
Line does not match expected header line of '^/\*\*$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.jsons.JsonBluetoothStates.java:[5]
An author tag is missing
[WARNING] org.openhab.binding.amazonechocontrol.internal.Connection.java:[312]
Avoid throwing raw exception types.
[WARNING] org.openhab.binding.amazonechocontrol.internal.Connection.java:[338]
Avoid throwing raw exception types.
[WARNING] org.openhab.binding.amazonechocontrol.internal.Connection.java:[389]
Avoid throwing raw exception types.
[ERROR] org.openhab.binding.amazonechocontrol.internal.Connection.java:[359]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.internal.Connection.java:[2]
Line does not match expected header line of '^ \* Copyright \(c\) \d\d\d\d-\d\d\d\d by the respective copyright holders\.$'.
[ERROR] org.openhab.binding.amazonechocontrol.internal.Connection.java:[397]
Format should be constant. Use placeholder to reduce the needless cost of parameter construction. see http://www.slf4j.org/faq.html#logging_performance
[ERROR] org.openhab.binding.amazonechocontrol.AmazonEchoControlBindingConstants.java:[2]
Line does not match expected header line of '^ \* Copyright \(c\) \d\d\d\d-\d\d\d\d by the respective copyright holders\.$'.
[INFO] Detailed report can be found at: file:////home/travis/build/openhab/openhab2-addons/addons/binding/org.openhab.binding.amazonechocontrol/target/code-analysis/report.html

So this is about the report of the Static code analysis.

Please also check:

http://docs.openhab.org/developers/development/bindings.html
http://docs.openhab.org/developers/development/guidelines.html

…alized exception for connection, correct comments

Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented Jan 10, 2018

My problem is, that a local mvc clean install fails with a lot of errors in the first binding of the solution (which is not my binding):

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:1.0.0:compile (default-compile) on project org.openhab.binding.airquality: Compilation failure: Compilation failure: 
[ERROR] /Users/mgeramb/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/json/AirQualityJsonIaqi.java:[1] 
[ERROR] 	/**
[ERROR] 	^
[ERROR] The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
[ERROR] /Users/mgeramb/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/json/AirQualityJsonIaqi.java:[1] 
[ERROR] 	/**
[ERROR] 	^
[ERROR] The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
[ERROR] /Users/mgeramb/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/json/AirQualityJsonIaqi.java:[11] 
[ERROR] 	import java.math.BigDecimal;
[ERROR] 	       ^^^^^^^^^
[ERROR] The import java.math cannot be resolved
[ERROR] /Users/mgeramb/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.airquality/src/main/java/org/openhab/binding/airquality/json/AirQualityJsonIaqi.java:[26] 
[ERROR] 	private AirQualityValue<BigDecimal> pm25;

But I found now the error log on the github server (Switch to RAW log, simple if you know it). So I will fix the errors.

Michael Geramb added 2 commits January 10, 2018 21:48
@martinvw
Copy link
Member

Maybe take a look at: https://stackoverflow.com/questions/18075343/java-project-in-eclipse-the-type-java-lang-object-cannot-be-resolved-it-is-ind

Or try running the mvn clean install from the command line, if you run windows I could advice running bash on windows to run maven there.

@mgeramb
Copy link
Member Author

mgeramb commented Jan 11, 2018

Hi Martin,
I'am using a mac for development. And I use Java 9 because Java 8 fails to start with openHAB (On windows it works, so I'am sure that I do everything correct and at least one other user have the same problem) https://community.openhab.org/t/solution-found-ide-build-does-not-work-on-macbook-with-java-se-8-152-but-it-work-with-se9-but-it-works-on-windows-and-eclipse-home-also-works/37505. But anyway, I can live with this solution, building for debugging works fine in my IDE and I don't need the 'mvn clean install' which produces the errors (for other bindings!). Know I now, what I have to looking for, and in future only one additional commit should be necessary if the build on the server fails.
Thank you for your help! What are the next steps now? I would be happy, if this version could be part of the openHAB release 2.3. But I will continue with the development, my next step is to look how the MQTT connection to the amazon server work to get the live state update. I have seen the necessary information already in the firefox browser with the MQTT monitor plugin. So it should be possible to integrate it to the binding. But I have never used MQTT before and so it can take a while for me to implement it.
I'am waiting for your instructions how I should proceed.
Best regards, Michael

@kaikreuzer
Copy link
Member

And I use Java 9 because Java 8 fails to start with openHAB

This sounds weird. Many people use a Mac for openHAB development, including myself - and Java8 works like a charm (rather, openHAB distro does not work with Java9 correctly).

Michael Geramb added 2 commits January 14, 2018 13:54
… code cleanup

Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented Jan 14, 2018

Build fails again, with a unit test which is not from my binding:

Tests run: 10, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 35.051 sec <<< FAILURE! - in org.openhab.binding.feed.test.FeedHandlerTest
create thing with invalid URL hostname(org.openhab.binding.feed.test.FeedHandlerTest)  Time elapsed: 0.912 sec
assert that invalid configuration falls back to default values(org.openhab.binding.feed.test.FeedHandlerTest)  Time elapsed: 0.129 sec
create thing with invalid URL path(org.openhab.binding.feed.test.FeedHandlerTest)  Time elapsed: 0.204 sec
assert that thing's status is updated when HTTP 404 error code is received(org.openhab.binding.feed.test.FeedHandlerTest)  Time elapsed: 6.137 sec
assert that thing's status is updated when HTTP 403 error code is received(org.openhab.binding.feed.test.FeedHandlerTest)  Time elapsed: 9.134 sec  <<< FAILURE!
java.lang.AssertionError: 
Expected: is <OFFLINE>

What should I do now? What happens with my pull request if another binding failing the build?

@kaikreuzer
Copy link
Member

What happens with my pull request if another binding failing the build?

Don't worry, this isn't a blocker. In order to improve the other tests, it might be nice though if you could create an issue for those failing tests, so that they become a known problem and can be dealt with.

…g for lost internet connection

Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented Jan 19, 2018

It's seems that the unit test depend on an external resource in the web, which was temporary unavailable. Because now the build is green without change in the test.

@openhab-bot
Copy link
Collaborator

This pull request has been mentioned on openHAB Community. There might be relevant details there:

https://community.openhab.org/t/beta-openhab2-amazonechocontrol-binding-controlling-alexa-from-openhab2/37844/90

Michael Geramb added 2 commits January 27, 2018 13:08
…ider

Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb mgeramb changed the title [amazonechocontrol][WIP] Initial contribution for the Amazon Control Binding (#3083) [amazonechocontrol] Initial contribution for the Amazon Control Binding (#3083) Jan 27, 2018
@mgeramb
Copy link
Member Author

mgeramb commented Jan 27, 2018

@martinvw , @kaikreuzer My binding is now ready for a review. Please remove the "work in progress" tag. I' have implemented now all currently planned features. Only bugfixes will be done in the next time if they are reported here.
Kind regards,
Michael

@kaikreuzer
Copy link
Member

I would remove it as a config option from the binding - others might feel tempted to do it likewise, which we should avoid.

I think that I should provide a channel in the account thing, which will be set if a manual action for the login is necessary

This is imho a very administrative info, I would rather expect this to be a warning in the log and the admin should react on this. For getting notified about such things, the new log reader binding might be an appropriate means (again, this can be used by admins to define all kinds of notifications about problems base on log files - independently of a specific binding).

Cleanup discovery. No more account discovery.
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@kaikreuzer
Copy link
Member

@mgeramb Let me know, once you are done - ideally by tonight, so that it can still make it into the 2.3 release!

@mgeramb
Copy link
Member Author

mgeramb commented May 22, 2018

@kaikreuzer My current state:

  1. I have fixed all your explicit review comments
  2. I removed the autodiscover for the account thing
  3. I refactored the the discovery feature, so that the account does not reference it anymore.

I currently move the show ID away from the configuration and state provider to the servlet. This will be finished tonight. And hope I can finish to update the documentation for this change.

But still open is
4) New channel for image type
5) FlashBriefing Thing replacement
The last point makes really no sense for me, because the flashbriefing is not part of the account (If you open your amazon account, you will not find any configuration for it). And the thing need more than one channel. I do not know if this would be possible with the dynamic channels. But the dynamic channels sound good for a future feature. Because then the flashbriefing can get a channel for each news channel to turn it on or off.

Michael Geramb added 3 commits May 22, 2018 20:02
Binding configuration for showIdinGUI removed, Ids shown in servlet
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
error handler added
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Update readme
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented May 22, 2018

@kaikreuzer I have finished my work now. Only the discussion for the image channel type and the flashbriefing is open.

@mgeramb
Copy link
Member Author

mgeramb commented May 23, 2018

@kaikreuzer I have two technical questions:

  1. How can I query all available options of a channel, defined in the xml or provided with a state description provider?
  2. Can a binding provide a function which can be called from a rule?
    Best regards, Michael

@kaikreuzer
Copy link
Member

Thanks for the updates, @mgeramb! I am ok with leaving 4+5 open and as is.

How can I query all available options of a channel, defined in the xml or provided with a state description provider?

Good question, I haven't thought about that - you actually can't. You can only check the options for an item, so my idea with the console command for items makes even more sense with that.

Can a binding provide a function which can be called from a rule?

Not yet, see https://github.com/eclipse/smarthome/projects/3#card-8298857.

@Nullable
HttpService httpService;
@Nullable
ServiceRegistration<?> discoverServiceRegistration;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this can be removed now.

Copy link
Member

@kaikreuzer kaikreuzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one very small last comment to avoid resource leaks - then I am fine with merging it as is (although we had to agree on some quirks that won't make me refer to this binding as an example for best practices, no offense ;-))

}

private void saveProperties() {
try {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should definitely use a try-with-resources here to avoid resource leaks!

if (result == null) {
result = new Properties();
if (propertyFile.exists()) {
try {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should definitely use a try-with-resources here to avoid resource leaks!

* @author Michael Geramb - Initial Contribution
*/
@NonNullByDefault
public class StateStorage {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would have been much nicer to make use of the ESH StorageService, but let's leave it as it is now - I noticed that too late, sorry.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kaikreuzer: Is it so complicated to replace it? How can I get the StorageService? Is it injectable? Does it work if the thing is defined in a thing file?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, not really complicated, I just didn't want to put more work on you.
Feel free to refactor it tonight, if you are interested.
Here is an example of a binding that stores some data. The storage itself is created in the ThingFactory and obtained from the StorageService.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it work if the thing is defined in a thing file?

Yes!

Michael Geramb added 2 commits May 23, 2018 17:53
Resource leak in state storage fixed, unused field removed in factory
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Fixed try syntax in StateStorage
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented May 23, 2018

@kaikreuzer I have checked in your requested changes

Michael Geramb added 4 commits May 23, 2018 20:14
Upgrade version for storage replacement
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Upgrade version for storage replacement with RC3 hint
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
StateStorage class removed
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
Jenkins null pointer access warning fixed
Signed-off-by: Michael Geramb <[email protected]> (github: mgeramb)
@mgeramb
Copy link
Member Author

mgeramb commented May 23, 2018

@kaikreuzer finished, StateStorage is removed and the StorageService used, it was really simple but it takes a immediate checkin and build to provide an upgrade possibility to the existing beta users.

But one more question, what does this Jenkins warning mean:

[WARNING] Parameter 'useProjectSettings' is set to true, but preferences file '/scratch/jenkins/workspace/PR-openHAB2-Addons/addons/binding/org.openhab.binding.amazonechocontrol/.settings/org.eclipse.jdt.core.prefs' could not be found!

Is there anything to do for me?

html.append("<html><head><title>" + StringEscapeUtils.escapeHtml(BINDING_NAME) + "</title><head><body>");
html.append("<h1>" + StringEscapeUtils.escapeHtml(BINDING_NAME) + "</h1>");
html.append(
"<html><head><title>" + StringEscapeUtils.escapeHtml(BINDING_NAME + " RC3") + "</title><head><body>");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this about? There isn't any RC3...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, ok, I just saw that you did that for the intermediate release to the marketplace. All fine.

@kaikreuzer
Copy link
Member

Is there anything to do for me?

No, I have seen this in many places, it is nothing specific to your binding and afaik it does not harm (although it would be nice to have it addressed, but not in this PR).

Copy link
Member

@kaikreuzer kaikreuzer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all your patience with me and your prompt replies and updates!

I am happy that we managed to get it into the 2.3 release! 🎉

@kaikreuzer kaikreuzer merged commit 4d169fc into openhab:master May 24, 2018
@mgeramb
Copy link
Member Author

mgeramb commented May 24, 2018

Thank you to all reviews! You have done a good job and I have learned a lot from you!

@martinvw martinvw added this to the 2.3 milestone May 25, 2018
@mgeramb mgeramb deleted the 3083-AmazonControlBinding branch June 30, 2018 10:26
hww3 pushed a commit to hww3/openhab2-addons that referenced this pull request Jul 4, 2018
divyachauhan25 pushed a commit to divyachauhan25/openhab2-addons that referenced this pull request Jul 6, 2018
koa pushed a commit to koa/openhab2-addons that referenced this pull request Oct 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new binding If someone has started to work on a binding. For a new binding PR.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants