@seime, I tried but it didn’t work for me. On the UI there is still no new channel and the status of the item (configured via file) is still NULL.
I downloaded the latest release from Github:
openhab> bundle:list |grep August
371 │ Active │ 80 │ 4.1.0.202312020842 │ Seime Add-ons :: Bundles :: August Binding
openhab>
and this is what I see:
Could you try to temporally add a new lock to see if this one gets the new channel?
Yes, it does!
I paused my old Thing and created a new one with the same Lock ID. After updating my Items file the battery item got populated!
Thank you!
Hi, again, @seime. I hope you’re doing well.
I’ve been facing an issue from time to time with the binding. The bridge Thing changes to OFFLINE. When I realize it, I have to pause and unpause it to restore it.
Have you faced something similar? I’ll send you the trace log privately.
Hi, everyone.
Does no one else have this problem with the binding?
EDIT: Hi, @seime. I installed 4.1.0.202401150736. I’ll let you know if I keep experiencing the issue.
Thanks for your support!!!
I have the 4.1.0.202401150736 bundle installed and experience the same binding communication error, at least daily
I checked my logs, and it hasn’t happened since before the latest version (it did happen before).
Could you verify that you don’t have an old version of the binding running in parallel + plus send me DEBUG logs via PM?
Cheers
Hi @seime. I’m still having a few issues and decided to try switching the bridge to the Yale ecosystem. And now I cannot log in!!! I am getting the message
CONFIGURATION_ERROR
Check email / phone / password / validation code
At the top of the Thing next to the Offline banner. I am using my US phone number exactly as is listed in the iPhone app (+1xxxxxxxxxx), my correct account email and PW. I cannot recall how to re-obtain the validation code though…
This is a generic error message when something is wrong with the login credentials.
Make sure you also have selected YALE_HOME as the eco system:
Try to delete and re-create the bridge thing.
The validation code will come via email in all cases (sms not implemented).
Feel free to send me DEBUG level logs via DM if it doesn’t work out for you.
Hey @seime, thanks so much for your hard work and efforts in putting this up
I checked the GitHub and didn’t see mention of the following Yale model. Do you think it’ll work since it uses the Yale Home app? TIA!
YDM 3115 AV: YDM 3115 AV Series- Smart Lock, Silver – Yale India
Hi @aaronkhare , the list of models contains the models at least one user has tested and confirmed working. Most likely there a many more models that will work, especially the ones supporting remote control via their app.
The model you refer to seems to fit the above category . Feel free to report back if you purchase it and successfully integrate it.
Cheers
The binding works really good. Is there any plans on adding a channel for the doorbell?
I’m short on soare time, but I’ll try to prioritize any pull requests.
Brg
I am c# dev but I might look into it if i have time as well.
Hey, @seime.
I started having an issue with my Linus lock and the binding a few weeks ago, although I haven’t updated anything in months.
The binding doesn’t connect to the account anymore and it reports invalid credentials (I haven’t changed them since Nov 2023)
In the debug logs I noticed 3 strange things:
- Some of the special characters in the password seem to be escaped (or at least, the log is showing them like that), e.g., < (\u003c) and = (\u003d)
- The JSON seems to be malformed.
- Cloudflare seems to have blocked me.
Here is the masked log:
10:45:42.592 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'august:account:bridge1' changed from INITIALIZING to UNKNOWN
10:45:42.708 [DEBUG] [august.internal.logging.RequestLogger] - Request bridge1-0
bridge1-0 > POST https://api.aaecosystem.com/session
bridge1-0 > Accept-Encoding: gzip
bridge1-0 > User-Agent: August/2019.12.16.4708 CFNetwork/1121.2.2 Darwin/19.3.0
bridge1-0 > Accept: application/json
bridge1-0 > Content-Type: application/json
bridge1-0 > Accept-Version: 0.0.1
bridge1-0 > x-kease-api-key: d9984f29-076-816e-e1cbe431
bridge1-0 > x-august-api-key: d9984f29-076-816e-e1c9-44be431
bridge1-0 > x-august-access-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpbnN0YWxsSWQiOiJvcGVuSEFCLTQyOTc1ZjQyLWU1N2QtNDRhMy1iYzg3LWE0YjY2YzQ3YTFiNCIsInJlZ2lvbiI6IiIsImFwcGxpY2F0aW9uSWjkwODcsInN0ZXAiOiIiLCJMYXN0TmFtZSI6IkFwb250ZSIsIkZpcnN0TmFtZSI6Ik5lbHNvbiJ9.zIpyRW6p9WUlwkPE_8rDeW1BnLEcZRK7uqocY1u-TXY
bridge1-0 > Content-Type: application/json
bridge1-0 > Host: api.aaecosystem.com
bridge1-0 > Content-Length: 264
{
"identifier": "email:email@outlook.com",
"password": "#q.!E2\u003csZKo|V|:m\u003dsF9VC\u003djU%@eRiv~VjU+zNo2gnV)-)v)%LS{JVd[^86+)9Wu.F$^$$a__3|b4%Yt!G4\u003d%T",
"installId": "openHAB-42942-e57d-443-bc87-a4b61b4"
}
10:45:42.743 [DEBUG] [august.internal.logging.RequestLogger] - Could not reformat malformed JSON due to 'com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 12 path $'
10:45:42.746 [DEBUG] [august.internal.logging.RequestLogger] - Response bridge1-0
bridge1-0 < HTTP/1.1 403 Forbidden
bridge1-0 < Date: Fri, 20 Dec 2024 09:45:42 GMT
bridge1-0 < Content-Type: text/html; charset=UTF-8
bridge1-0 < Transfer-Encoding: chunked
bridge1-0 < Connection: keep-alive
bridge1-0 < X-Frame-Options: SAMEORIGIN
bridge1-0 < Referrer-Policy: same-origin
bridge1-0 < Cache-Control: max-age=15
bridge1-0 < Expires: Fri, 20 Dec 2024 09:45:57 GMT
bridge1-0 < Set-Cookie: __cf_bm=nZxDgwiTqv2juawqjMPyJqscQ-17347942-1.0.1.1-08oqWa9oIiTonI6pBEcqP1_2ZE79k3URw4um3dLE2JsTjIYeA; path=/; expires=Fri, 20-Dec-24 10:15:42 GMT; domain=.aaecosystem.com; HttpOnly; Secure; SameSite=None
bridge1-0 < Vary: Accept-Encoding
bridge1-0 < Server: cloudflare
bridge1-0 < CF-RAY: 8f4eb379b0-MUC
bridge1-0 < Content-Encoding: gzip
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>Attention Required! | Cloudflare</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" />
<!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" /><![endif]-->
<style>body{margin:0;padding:0}</style>
<!--[if gte IE 10]><!-->
<script>
if (!navigator.cookieEnabled) {
window.addEventListener('DOMContentLoaded', function () {
var cookieEl = document.getElementById('cookie-alert');
cookieEl.style.display = 'block';
})
}
</script>
<!--<![endif]-->
</head>
<body>
<div id="cf-wrapper">
<div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
<div id="cf-error-details" class="cf-error-details-wrapper">
<div class="cf-wrapper cf-header cf-error-overview">
<h1 data-translate="block_headline">Sorry, you have been blocked</h1>
<h2 class="cf-subheadline"><span data-translate="unable_to_access">You are unable to access</span> aaecosystem.com</h2>
</div><!-- /.header -->
<div class="cf-section cf-highlight">
<div class="cf-wrapper">
<div class="cf-screenshot-container cf-screenshot-full">
<span class="cf-no-screenshot error"></span>
</div>
</div>
</div><!-- /.captcha-container -->
<div class="cf-section cf-wrapper">
<div class="cf-columns two">
<div class="cf-column">
<h2 data-translate="blocked_why_headline">Why have I been blocked?</h2>
<p data-translate="blocked_why_detail">This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.</p>
</div>
<div class="cf-column">
<h2 data-translate="blocked_resolve_headline">What can I do to resolve this?</h2>
<p data-translate="blocked_resolve_detail">You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.</p>
</div>
</div>
</div><!-- /.section -->
<div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">
<p class="text-13">
<span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">8febb03b0</strong></span>
<span class="cf-footer-separator sm:hidden">•</span>
<span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">
Your IP:
<button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>
<span class="hidden" id="cf-footer-ip">7.2.13.22</span>
<span class="cf-footer-separator sm:hidden">•</span>
</span>
<span class="cf-footer-item sm:block sm:mb-1"><span>Performance & security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing" id="brand_link" target="_blank">Cloudflare</a></span>
</p>
<script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>
</div><!-- /.error-footer -->
</div><!-- /#cf-error-details -->
</div><!-- /#cf-wrapper -->
<script>
window._cf_translation = {};
</script>
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8f4eb379fab0b3b0',t:'MTczNDY4Nzk0Mi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>
10:45:42.754 [WARN ] [internal.handler.AugustAccountHandler] - Error communicating with API. Will retry in 2 minutes
no.seime.openhab.binding.august.internal.comm.RestCommunicationException: Exception caught trying to communicate with API: Invalid credentials
at no.seime.openhab.binding.august.internal.comm.RestApiClient.sendRequestInternal(RestApiClient.java:173) ~[bundleFile:?]
at no.seime.openhab.binding.august.internal.comm.RestApiClient.sendRequest(RestApiClient.java:114) ~[bundleFile:?]
at no.seime.openhab.binding.august.internal.handler.AugustAccountHandler.obtainNewSession(AugustAccountHandler.java:241) ~[bundleFile:?]
at no.seime.openhab.binding.august.internal.handler.AugustAccountHandler.loginComplete(AugustAccountHandler.java:222) ~[bundleFile:?]
at no.seime.openhab.binding.august.internal.handler.AugustAccountHandler.initialize(AugustAccountHandler.java:146) [bundleFile:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) [bundleFile:?]
at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: no.seime.openhab.binding.august.internal.ConfigurationException: Invalid credentials
at no.seime.openhab.binding.august.internal.comm.RestApiClient.sendRequestInternal(RestApiClient.java:154) ~[bundleFile:?]
... 14 more
10:45:42.755 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'august:account:bridge1' changed from UNKNOWN to OFFLINE (CONFIGURATION_ERROR): Exception caught trying to communicate with API: Invalid credentials
Any thoughts?
They’ve changed the API again.
I’m happy to accept a PR that fixes the problem.
Here are some clues on what have changed: core/homeassistant/components/yale at dev · home-assistant/core · GitHub
BRG
Hi.
Is anyone working on this fix? Unfortunately, I don’t have the skills to do it.