Dynalite Integration

Breaking Change:
Not a breaking change. Only adds a new integration

Description:
I used Troy Kelly's library and component as a starting point, added several features to them, and am now able to control my full house which is based on Dynalite. I know that no other open-source system supports it, so will be glad if it can go into the mainstream, so others can use it as well. Will also be happy to make fixes to issues that come.
Since I am new to open-source development, wanted to understand what is needed to get this merged. One thing that is clearly lacking today is documentation, since this is something that is only worthwhile investing in if others will read it, so if you tell me that this should be integrated into HA, I will quickly document it.
I tried to follow the guidelines in the dev docs, but I am sure that there are some things that I missed. If this is interesting to add, please let me know if there is anything other than the documentation that needs fixing and i will take care of it quickly.
Best,
Ziv
Related issue (if applicable): fixes #
Pull request with documentation for home-assistant.io (if applicable): home-assistant/home-assistant.io#<home-assistant.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[x] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hi @ziv1234,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Thank you for this work, but there's too much going on in this single PR.  Please limit new integrations to a single platform only and strip out the features that aren't critical for it's operation.  This makes it easier for us to review and get you up to speed with the architecture and our coding style.  It will make future PRs must faster!
Please see the checklist for more info: https://developers.home-assistant.io/docs/en/creating_component_code_review.html#5-make-your-pull-request-as-small-as-possible

Thanks. I am trying to think what I can take out. This is built similarly to the Hue lights component, where there is one bridge that connects to many devices. The devices I have there are pretty much empty shells that take all the logic from the library that handle the devices. This is implemented in light.py, switch,py, and cover.py for the different devices that can be behind a Dynalite hub. Many of the functions (e.g. name, unique_id, etc.) are common, so they are all inheriting from a dynalite_base.py for the common methods and attributes.
The bridge is quite straightforward. There is some logic there for assigning the entities to areas, which I can take out for the first PR, as it is not mandatory for the platform.
The other relatively large component is init.py. The reason for this is that there are many parameters for the Dynalite library, as the Dynalite systems have absolutely no auto-discover features. Almost none of this logic is used in the component, but it is needed for the vol schemas. Is it ok if I import the schema from the Dynalite library? This would significantly reduce the amount of code.
Another thing that I can do is to reduce the subplatforms (light, switch, cover) and start with only one (probably light). It will have limited functionality until everything is implemented, but can break the review cycle.
Will pull together something with all of this and send a new pull request.
Best,
Ziv
From: Andrew Sayre<EMAIL_ADDRESS>Sent: Monday, October 14, 2019 6:36 PM
To: home-assistant/home-assistant<EMAIL_ADDRESS>Cc: Ziv<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [home-assistant/home-assistant] Dynalite Integration (#27621)
Thank you for this work, but there's too much going on in this single PR. Please limit new integrations to a single platform only and strip out the features that aren't critical for it's operation. This makes it easier for us to review and get you up to speed with the architecture and our coding style. It will make future PRs must faster!
Please see the checklist for more info: https://developers.home-assistant.io/docs/en/creating_component_code_review.html#5-make-your-pull-request-as-small-as-possible
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/home-assistant/pull/27621?email_source=notifications&email_token=AD5UNSYB3BOCSNQJ4DPRP4TQOSGXLA5CNFSM4JAIXR5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBFHQPI#issuecomment-541751357, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AD5UNSYXLG4GMSTYSLTP3UTQOSGXLANCNFSM4JAIXR5A.

I believe i made it quite minimal now. is this better?

added unit tests and now it fully goes through the CI. I know that the documentation is missing, but wanted to know if this is something that you are likely to accept since I wouldn't want to spend a lot of time on good documentation that no one will read :)
Of course, if there is anything else that I can do to help, please let me know

It seems like you have some commits in this branch that are not yours, please clean it up.

I pulled from the upstream branch, so these are all commits that were already accepted. I followed the “keeping up with reality” section in the docs.
Do you want me to create a new, clean fork? Is there any other way to cancel these pulled commits?
From: Paulus Schoutsen<EMAIL_ADDRESS>Sent: Friday, October 18, 2019 3:55 AM
To: home-assistant/home-assistant<EMAIL_ADDRESS>Cc: Ziv<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [home-assistant/home-assistant] Dynalite Integration (#27621)
It seems like you have some commits in this branch that are not yours, please clean it up.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/home-assistant/pull/27621?email_source=notifications&email_token=AD5UNS4IQ6L3HARI526UWTDQPECOFA5CNFSM4JAIXR5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBSB3BY#issuecomment-543432071, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AD5UNS5ZN6H3TJHY5IHGLTDQPECOFANCNFSM4JAIXR5A.

I created a new branch and a new pull request that is now clean. Will not pull more from upstream…
From: Paulus Schoutsen<EMAIL_ADDRESS>Sent: Friday, October 18, 2019 3:55 AM
To: home-assistant/home-assistant<EMAIL_ADDRESS>Cc: Ziv<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [home-assistant/home-assistant] Dynalite Integration (#27621)
It seems like you have some commits in this branch that are not yours, please clean it up.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/home-assistant/home-assistant/pull/27621?email_source=notifications&email_token=AD5UNS4IQ6L3HARI526UWTDQPECOFA5CNFSM4JAIXR5KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBSB3BY#issuecomment-543432071, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AD5UNS5ZN6H3TJHY5IHGLTDQPECOFANCNFSM4JAIXR5A.

closed since there is an updated pull request, 27841


Fiddler can't detect when user is out of MS

Hi,
In detection login.srf using fiddler, a user need to configure below:

You will need to configure Fiddler to decrypt HTTPS traffic and skip decryption for the following hosts: msft.sts.microsoft.com

But if done it, login.srf can't detect when a user out of MS domain.
Is it maybe should be "msft.sts.microsoft.com" to "microsoft.com"?
Best,

Whatever works for you. I didn't think this URL was tenant/domain specific. Maybe *.sts.microsoft.com might work better for you, but msft.sts.microsoft.com is what I had to use. I do a lot of fiddler based debugging for services on the microsoft.com domain, so skipping decryption for *.microsoft.com would work for me.


Container Duplicating when going back into page.

creates new instance of embed every time browse to component in react (doubles the height, this means it creates another embed underneath.  Is there a way to ensure container only creates once. seems to be stored in memory for the next time. using loadxml. to obtain the data.

Ignore... was environmental issue

Hey, thank you for bringing up this topic. In fact, I should carefully examine the lifecycle and potential issues after recreating the instance. I've identified a memory leak problem, and I'll work on fixing it when I have the time. Thanks again!

Ignore... was environmental issue

What was the issue? strict mode? I have the same problem, the container with id krpanoSWFObject is duplicated every time the app is refreshed on save in vscode (but not when i refresh in browser).

Ignore... was environmental issue

What was the issue? strict mode? I have the same problem, the container with id krpanoSWFObject is duplicated every time the app is refreshed on save in vscode (but not when i refresh in browser).

Hi @pa-hagen, which React framework do you use? I guess not all the hot-reload libraries behave the same way, so it'd be better to have more information on that.

2> > > Ignore... was environmental issue

What was the issue? strict mode? I have the same problem, the container with id krpanoSWFObject is duplicated every time the app is refreshed on save in vscode (but not when i refresh in browser).

Hi @pa-hagen, which React framework do you use? I guess not all the hot-reload libraries behave the same way, so it'd be better to have more information on that.

Hi @shinenic. I have this config.
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-krpano-hooks": "^2.0.0",
"react-router-dom": "^6.26.2"
the id of first div clone is "krpanoSWFObject2". The next is "krpanoSWFObject3" etc
.


KAFKA-17554: Flaky testFutureCompletionOutsidePoll in ConsumerNetworkClientTest

Jira: https://issues.apache.org/jira/browse/KAFKA-17554
In the previous workflow, the test passes under two conditions:

The t1 thread is waiting for the main thread's client.wakeup(). If successful, t1 will wake up t2, allowing t2 to complete the future.
If t1 fails to receive the client.wakeup() from the main thread, t2 will be woken up by the main thread.
The flaky test error occurs because neither t1 nor t2 are being properly woken up by the main thread. To resolve this, I suggest adjusting the test flow so that the main thread calls client.wakeup() before the t1 thread starts polling. Then, after t1 starts polling, the t2 thread can begin its poll. Additionally, I propose increasing the wait time in MockClient#maybeAwaitWakeup from 5 seconds to 10 seconds for better reliability.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@m1a2st could you please rebase code?


fix types error for functions calling

sorry @nektro , i deleted the repo fork accidently, so i resend the PR again (https://github.com/nektro/zigmod/pull/98).

thanks for the contribution! this and more got picked up in https://github.com/nektro/zigmod/commit/50ccfe3d1d84b4f27a4bb66fd4321623663a0163 for the conclusive upgrade


Handle Min Mempool Fee error so that lnd will startup correctly

Fixes #7156
Relates to https://github.com/lightninglabs/neutrino/pull/278
and https://github.com/btcsuite/btcwallet/pull/871 && https://github.com/btcsuite/btcwallet/pull/878
Still missing new tests for the changes, waiting for the depending PRs to get an Concept Ack before adding the final tests.
Change Description
With this change we will continue to startup even if a commitment transaction or a presigned HTLC-Timeout/Success Transaction cannot be broadcasted during startup, which let lnd fail previously.
Looking for a Concept Ack before writing the relevant tests here.
Steps to Test
So I decided to just add Unit-Tests for both cases because adding an itest needs some contemplation how we wanna approach test cases where we want to restart the bitcoin backend during execution, which we essentially have to do to test the mempool rejection logic in an easy way (just increase the minrelayfee config param, changing the current bitcoin backend logic would cause some side effects I think). Happy to hear your thoughts.
Apart from that unitests were added:
make unit-debug  pkg=contractcourt case=TestRejectedCribTransaction
make unit-debug  pkg=contractcourt case=TestChannelArbitratorStartAfterCommitmentRejected

Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[x] Tests covering the positive and negative (error paths) are included.
[x] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[x] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[x] Commits follow the Ideal Git Commit Structure.
[x] Any new logging statements use an appropriate subsystem and logging level.
[x]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

So this PR changed a bit because the neutrino fix regarding the rebroadcasting of transactions was redesign. So let's wait how this discussion will revolve (https://github.com/lightninglabs/neutrino/pull/278). Moreover a new dependency was introduced which refactored the btcwallet code which makes the backend error mapping logic easy reusable from the outside. (https://github.com/btcsuite/btcwallet/pull/878).
Apart from that which all happens in the config_builder.go everything else stayed the same.

Do we want to make sure when opening a channel which fails because of a broadcast backend error that we revert the whole process leading to unlocked funds without having to restart lnd ? Meaning that we do not need to manually trigger an abandon channel command ?

Good q...I think if there's an unmatched backend error, the current behavior will lock the funds unless we abandon it manually? If the broadcast fails unexpectedly, maybe we need to call failFundingFlow and unlock the funding.

Ok sounds good will do it in a separate PR, because this one is Safety-Critical, meaning that if we fail the flow but the transaction made it into mempool we basically purge the Peers signature and our ability to recover the funds. So this must be implemented with 100% certainty that our backends report correctly. Thinking of the neutrino backend mainly here where I have the feeling that nodes pretty much accept most transactions but do not reliably report the error back to the peer 😁

@positiveblue: review reminder
@yyforyongyu: review reminder
@bitromortac: review reminder
@bitcoinite: review reminder

Reminder: Bumped the versions for neutrino and btcwallet, however still cannot go to the final master commit of the neutrino package because the compilation fails with the current master, so I keep it at the second last commit for now, this needs to change before we merge this.

This PR has one important topic to resolve, do we want to wrap the error message for the new error lnwallet.ErrMempoolFee  from the backend including valuable information (this brings up the question why we are redefining the errors in the first place rather than just using the errors defined in the wallet package?). Or should we keep it the way it was and just define a new Error as we did with lnwallet.ErrDoubleSpend
Happy to hear your final thoughts @positiveblue @yyforyongyu. Thanks in advance.

@positiveblue: review reminder
@bitromortac: review reminder
@bitcoinite: review reminder
@ziggie1984, remember to re-request review from reviewers when ready

Do you mean that btcwallet and neutrino has not been tagged/released and that you updated the version by using the commit tag?

exactly, and I think there are already newer commits  on master for both packages so either we tag the versions of btcwallet and neutrino or I will use the latest commits of the related packages when this change is ready to merge


fix(platform): enable scrollAssist on Android

Short description of what this resolves:
This fixes an issue where in Ionic 2 apps the native chrome functionality of auto scrolling when an input is focused does not currently work. This is a shorter term fix as the ultimate fix is to find what is causing the native chrome auto-scroll to not work in Ionic 2 apps. I have tested this on Android 5.1.1, 6.0.1 and 7.0. cc @mlynch @manucorporat
Changes proposed in this pull request:

set scrollAssist on Android

Ionic Version: 2.x
Fixes: #6228

This is a "fix" that might be 1) incorrect, or 2) introduce other bugs and needs a lot of testing.
I think it's important enough for UX that we prioritize it for RC2

To be clear: the point of this PR isn't to merge as-is. It's to fix this UX issue any way possible. scrollAssist appears to work fine but needs testing. It might be the case that we need a totally different fix.


Add libphonenumber support for contacts API

From @GoogleCodeExporter on May 31, 2015 11:26
http://code.google.com/p/libphonenumber/

This would make things like the DTMF dialer more robust.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 10 May 2010 at 11:16
Copied from original issue: damonkohler/android-scripting#328

From @GoogleCodeExporter on May 31, 2015 11:26
Original comment by<EMAIL_ADDRESS>on 6 Nov 2010 at 9:44

Added labels: Type-Enhancement


Cice grid generation

Companion pull request to https://github.com/COSIMA/om3-scripts/pull/8

fixes angle T
adds cf compliant variable names
add versioning to output

@aekiss & @ezhilsabareesh8  Can you review please?

@aekiss & @ezhilsabareesh8 Can you review please?

Bump :)

@anton-seaice I suggest you drop the last three commits and rebase onto the latest main.

@anton-seaice, I'm happy to do a review once you've brought in the relevant parts of https://github.com/COSIMA/om3-utils/pull/5 (i.e. the additional provenance metadata and the tests)

@dougiesquire I think this is mostly done. Its a bit messy, which I will try and tidy up.

@anton-seaice I'm not working today, but let me know when you're done making changes and I'll do a review first thing tomorrow

@anton-seaice I'm not working today, but let me know when you're done making changes and I'll do a review first thing tomorrow

Thankyou! All done I think. Ive just been messing with test setup and comments :)

Hi @dougiesquire I added your changes and fixed the tests :)

I'm still slightly unconvinced about dropping the git repo / hash stuff

If we merge this, I can try sort out the automatic versioning and then we can address if you're still unconvinced

@anton-seaice, I couldn't push directly to this branch so I've opened another PR here. Give it a try and see if you're now more comfortable dropping the git repo / hash stuff.

Created using esmgrid 0.1.dev108+g469ecfc.d20240416

Yeah, hopefully it would never look like that in production files, since the last part indicates uncommitted changes (which we can never keep track of). I would hope that all production files would be created with tagged releases ( so something like 0.2.0), but even unreleased commits will be kept track of (e.g. 0.2.0.dev<distance>+g<commit hash>).

Yeah, hopefully it would never look like that in production files, since the last part indicates uncommitted changes (which we can never keep track of). I would hope that all production files would be created with tagged releases ( so something like 0.2.0), but even unreleased commits will be kept track of (e.g. 0.2.0.dev+g).

One could had a check to stop the code if the file is being generated with uncommitted changes and issue a warning if it's not a tagged release.

@anton-seaice, one more PR from me. Then IMO we're ready for a final review and merge

Thanks @anton-seaice and everyone - great work!


See all deployed Clarity contracts

Is there a feature already in the works for this?

As a workaround, you can go to the Transactions page and filter by contract-deploys:

As a workaround, you can go to the Transactions page and filter by contract-deploys:

That works! Didn't see the filters on the main page but they are on the transactions page.

That works! Didn't see the filters on the main page but they are on the transactions page.

I'll rename this task to represent the improvment

While doing this we can revisit the tx list, which at the moment is the wrong abstraction.

:tada: This issue has been resolved in version 1.33.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Unknown CMake command "idf_build_set_property". (IDFGH-1723)

How to build esp-idf from scratch?
-- Configuring incomplete, errors occurred!
See also "/opt/mcu/esp-idf/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1
longervision-GT72-6QE% idf.py clean
Checking Python dependencies...
Python requirements from /opt/mcu/esp-idf/requirements.txt are satisfied.
Executing action: clean
Running cmake in directory /opt/mcu/esp-idf/build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 --warn-uninitialized -DCCACHE_ENABLE=0 /opt/mcu/esp-idf"...
Warn about uninitialized values.
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:58 (idf_build_set_property):
  Unknown CMake command "idf_build_set_property".

-- Configuring incomplete, errors occurred!
See also "/opt/mcu/esp-idf/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1
...

same Problem here.
The system is: Windows - 10.0.17134 - AMD64
`Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags:
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags: -c
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags: -Aa
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags: -D__CLASSIC_C__
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags:
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags: -c
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags: -Aa
The output was:
The system cannot find the file specified
Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler: CMAKE_C_COMPILER-NOTFOUND
Build flags:
Id flags: -D__CLASSIC_C__
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags:
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: -c
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: --c++
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: --ec++
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags:
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: -c
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: --c++
The output was:
The system cannot find the file specified
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
Compiler: CMAKE_CXX_COMPILER-NOTFOUND
Build flags:
Id flags: --ec++
The output was:
The system cannot find the file specified`

@jiapei100 Are you executing idf.py from IDF_PATH? If so please execute the build from a project directory such as examples/get-started/hello_world.
@HenriquePereiraRosa This looks like a different problem from @jiapei100's. Is xtensa-esp32-elf-gcc in your PATH?

@renzbagaporo You are Right. My mistake. A reinstaled the esp-tool but forgot to start another CMD instance. Solved here.

Closing this issue @jiapei100, then.


Yeeuu K1 Smart Lock Box

Hi,
I'm trying to use tinytuya to check status and open a Smart Lock Box (https://www.yeeuu.com/products/yeeuu-k1-smart-lock-box ) connected to Wifi via a Bluetooth Bridge (https://www.yeeuu.com/products/yeeuu-h1-gateway ). I have imported both of them via tuya.com and see both in devices.json
    {         "name": "YEEUU K1 Smart Lock Box",         "id": "id-made-of-22-chars",         "key": "mykey"     },     {         "name": "YEEUU H1 WiFi Bridge",         "id": "id-made-of-22-chars",         "key": "same key as above"     },
so I have tried using the suggestion to handle 22-chars-id's:
`import tinytuya
DEVICEID = "the id of the K1"
DEVICEIP = "the IP"
DEVICEKEY = "mykey"
DEVICEVERS = "3.3"
a = tinytuya.CoverDevice(DEVICEID, DEVICEIP, DEVICEKEY, 'device22')
a.set_version(3.3)
a.set_dpsUsed({"1": None})  # This needs to be a datapoint available on the device
data =  a.status()
print(data)`
but when I run this I get a timeout
python3 k1test.py  Exceeded tinytuya retry limit (5) Traceback (most recent call last):   File "/usr/local/lib/python3.7/dist-packages/tinytuya/__init__.py", line 353, in _send_receive     data = self.socket.recv(1024)  # try again socket.timeout: timed out Traceback (most recent call last):   File "k1test.py", line 11, in <module>     data =  a.status()   File "/usr/local/lib/python3.7/dist-packages/tinytuya/__init__.py", line 556, in status     data = self._send_receive(payload)   File "/usr/local/lib/python3.7/dist-packages/tinytuya/__init__.py", line 353, in _send_receive     data = self.socket.recv(1024)  # try again socket.timeout: timed out
Any clue of what I am doing wrong? I also haven't tried "open_cover(switch=1):" yet because I am physically far away in VPN...
Thanks!
R

Did you try without 'device22'?  Not all 22 character IDs require that modification.  Also what response do you get from the device when you run these:
python -m tinytuya wizard  # pulls key from Tuya cloud and attempt to scan your Tuya devices
python -m tinytuya scan

Did you try without 'device22'?  Not all 22 character IDs require that modification.  Also what response do you get from the device when you run these:
python -m tinytuya wizard  # pulls key from Tuya cloud and attempt to scan your Tuya devices
python -m tinytuya scan

Hi thanks for helping - without "device22" I get
Traceback (most recent call last):   File "k1test.py", line 11, in <module>     data =  a.status()   File "/usr/local/lib/python3.7/dist-packages/tinytuya/__init__.py", line 589, in status     result = json.loads(result)   File "/usr/lib/python3.7/json/__init__.py", line 348, in loads     return _default_decoder.decode(s)   File "/usr/lib/python3.7/json/decoder.py", line 337, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end())   File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode     raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
and if I change DEVICEVERS to 3.1 then I get
Unexpected status() payload=b'\xb7_\x9e\x0c\x0cY\xbd(|\xb9\xc6R\x02sxz\xe2%?>\x10\x01\xe03a\x08\xab\xb3M]\xf7\x8c' b'\xb7_\x9e\x0c\x0cY\xbd(|\xb9\xc6R\x02sxz\xe2%?>\x10\x01\xe03a\x08\xab\xb3M]\xf7\x8c'
As for the 2 commands above:
`root@erdogliani:~# python3 -m tinytuya wizard
TinyTuya Setup Wizard [1.1.3]
Existing settings:
    API Key=mykey
    Secret=mysecret
    DeviceID=mydevice
    Region=eu

Use existing credentials (Y/n): Y

Device Listing
[
{
"name": "YEEUU K1 Smart Lock Box",
"id": "k1id",
"key": "key"
},
{
"name": "YEEUU H1 WiFi Bridge",
"id": "h1key",
"key": "key"
}
]

Saving list to devices.json
2 registered devices saved

Poll local devices? (Y/n):
Scanning local network for Tuya devices...
0 local devices discovered
Polling local devices...
[YEEUU K1 Smart Lock Box] - 0 - Error: No IP found
[YEEUU H1 WiFi Bridge] - 0 - Error: No IP found

Saving device snapshot data to snapshot.json

Done.
root@erdogliani:~# python3 -m tinytuya scan
TinyTuya (Tuya device scanner) [1.1.3]
[Loaded devices.json - 2 devices]
Scanning on UDP ports 6666 and 6667 for devices (15 retries)...
Scan Complete!  Found 0 devices.
root@erdogliani:~#
`
But from RPi I can ping the static IP of the Bluetooth bridge (and in fact there is dialogue with tinituya as you see above)
Thanks!!
R

Hi thanks for helping - without "device22" I get
Traceback (most recent call last):   File "k1test.py", line 11, in <module>     data =  a.status()   File "/usr/local/lib/python3.7/dist-packages/tinytuya/__init__.py", line 589, in status     result = json.loads(result)   File "/usr/lib/python3.7/json/__init__.py", line 348, in loads     return _default_decoder.decode(s)   File "/usr/lib/python3.7/json/decoder.py", line 337, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end())   File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode     raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
and if I change DEVICEVERS to 3.1 then I get
Unexpected status() payload=b'\xb7_\x9e\x0c\x0cY\xbd(|\xb9\xc6R\x02sxz\xe2%?>\x10\x01\xe03a\x08\xab\xb3M]\xf7\x8c' b'\xb7_\x9e\x0c\x0cY\xbd(|\xb9\xc6R\x02sxz\xe2%?>\x10\x01\xe03a\x08\xab\xb3M]\xf7\x8c'
As for the 2 commands above:
`root@erdogliani:~# python3 -m tinytuya wizard
TinyTuya Setup Wizard [1.1.3]
Existing settings:
    API Key=mykey
    Secret=mysecret
    DeviceID=mydevice
    Region=eu

Use existing credentials (Y/n): Y

Device Listing
[
{
"name": "YEEUU K1 Smart Lock Box",
"id": "k1id",
"key": "key"
},
{
"name": "YEEUU H1 WiFi Bridge",
"id": "h1key",
"key": "key"
}
]

Saving list to devices.json
2 registered devices saved

Poll local devices? (Y/n):
Scanning local network for Tuya devices...
0 local devices discovered
Polling local devices...
[YEEUU K1 Smart Lock Box] - 0 - Error: No IP found
[YEEUU H1 WiFi Bridge] - 0 - Error: No IP found

Saving device snapshot data to snapshot.json

Done.
root@erdogliani:~# python3 -m tinytuya scan
TinyTuya (Tuya device scanner) [1.1.3]
[Loaded devices.json - 2 devices]
Scanning on UDP ports 6666 and 6667 for devices (15 retries)...
Scan Complete!  Found 0 devices.
root@erdogliani:~#
`
But from RPi I can ping the static IP of the Bluetooth bridge (and in fact there is dialogue with tinituya as you see above)
Thanks!!
R

I agree, you are getting something back from the bridge.  You can set tinytuya to try longer to detect device on the network with something like python3 -m tinytuya scan 50 - It would be interesting to see if the bridge is broadcasting.
Pull the latest tinytuya 1.1.4 code (git pull) and try your code again but set the debug mode:
import tinytuya

print("TinyTuya (Tuya Interface) [%s]\n"%tinytuya.__version__)
tinytuya.set_debug(True)
DEVICEID = "the id of the K1"
DEVICEIP = "the IP"
DEVICEKEY = "mykey"
DEVICEVERS = "3.3"

a = tinytuya.CoverDevice(DEVICEID, DEVICEIP, DEVICEKEY, 'device22')
a.set_version(3.3)
a.set_dpsUsed({"1": None}) # This needs to be a datapoint available on the device
data = a.status()
print(data)

I don't know what DPS index values we should see from a lock.  You can try changing the number in the set_dpsUsed() function.
a.set_dpsUsed({"8": None})

I agree, you are getting something back from the bridge.  You can set tinytuya to try longer to detect device on the network with something like python3 -m tinytuya scan 50 - It would be interesting to see if the bridge is broadcasting.
Pull the latest tinytuya 1.1.4 code (git pull) and try your code again but set the debug mode:
import tinytuya

print("TinyTuya (Tuya Interface) [%s]\n"%tinytuya.__version__)
tinytuya.set_debug(True)
DEVICEID = "the id of the K1"
DEVICEIP = "the IP"
DEVICEKEY = "mykey"
DEVICEVERS = "3.3"

a = tinytuya.CoverDevice(DEVICEID, DEVICEIP, DEVICEKEY, 'device22')
a.set_version(3.3)
a.set_dpsUsed({"1": None}) # This needs to be a datapoint available on the device
data = a.status()
print(data)

I don't know what DPS index values we should see from a lock.  You can try changing the number in the set_dpsUsed() function.
a.set_dpsUsed({"8": None})

Hi
I tried DPS from 0 to 9 and no change...
TinyTuya (Tuya Interface) [1.1.4]

Exceeded tinytuya retry limit (5)
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/tinytuya-1.1.4-py3.7.egg/tinytuya/__init__.py", line 374, in _send_receive
    data = self.socket.recv(1024)  # try again
socket.timeout: timed out
Traceback (most recent call last):
  File "test.py", line 13, in <module>
    data = a.status()
  File "/usr/local/lib/python3.7/dist-packages/tinytuya-1.1.4-py3.7.egg/tinytuya/__init__.py", line 580, in status
    data = self._send_receive(payload)
  File "/usr/local/lib/python3.7/dist-packages/tinytuya-1.1.4-py3.7.egg/tinytuya/__init__.py", line 374, in _send_receive
    data = self.socket.recv(1024)  # try again
socket.timeout: timed out
root@rpi-1:/home/pi# ```

What is surprising to me is that if I change version to 3.1 I get immediate answer>

```oot@rpi-1:/home/pi# python3 test.py
TinyTuya (Tuya Interface) [1.1.4]

Unexpected status() payload=b'z\xe2%?>\x10\x01\xe03a\x08\xab\xb3M]\xf7\x8c'
b'z\xe2%?>\x10\x01\xe03a\x08\xab\xb3M]\xf7\x8c'
root@rpi-1:/home/pi#

What do you think?
Thanks!!
R

It seems you already ran the wizard above, but I have seen that when the key is incorrect or has changed (the device is not responding to a encrypted payload that is encoded with the wrong key).  Verify that you have the right local key, but I suspect you already tried this.
I may have some changes in the next release, 1.1.5 that could help, including additional debugging.  I haven't been able to find much about this particular Tuya device, so I appreciate your feedback and details.

Hi thanks again. First of all, I realised a mistake - I was trying to scan from a RPi which is in a different network (DMZ). Here is the result of a proper scan
    ID = <deviceid>, Product ID = euthqsxg, Version = 3.3
    No Stats for <IP_ADDRESS>: Unable to poll```

This said, I noticed that with 'device22' it goes into timeout, without 'device22' the result is different:

```root@rpi-1:/home/pi# python3 test.py
TinyTuya (Tuya Interface) [1.1.4]

Traceback (most recent call last):
  File "test.py", line 13, in <module>
    data = a.status()
  File "/usr/local/lib/python3.7/dist-packages/tinytuya-1.1.4-py3.7.egg/tinytuya/__init__.py", line 613, in status
    result = json.loads(result)
  File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
root@rpi-1:/home/pi#

Does this ring a bell to you?
Thanks
R

Thanks for the update.  If you remove 'device22' make sure you also remove the set_dpsUsed() call.  Also, I would try swtich to the more generic OutletDevice class.  Are you using something similar to this code?
import tinytuya

print("TinyTuya (Tuya Interface) [%s]\n"%tinytuya.__version__)
tinytuya.set_debug(True)
DEVICEID = "the id of the K1"
DEVICEIP = "the IP"
DEVICEKEY = "mykey"
DEVICEVERS = "3.3"

a = tinytuya.OutletDevice(DEVICEID, DEVICEIP, DEVICEKEY)
a.set_version(3.3)
data = a.status()
print(data)

Also, just to check in again because this seems to always trip us up, make sure the local DEVICEKEY is correct.  If it is not, the error you are getting is related to that.
python -m tinytuya wizard

Finally, there is a chance that the device does not respond to local Tuya commands and is only cloud based.  I just can't find much information about Tuya Smart Locks.  If you happen to find anything, please post here so we can continue to research.

Jason!
I wanted to thank you because I am using you tinytuya to build a polyglot node server on Universal devices ISY.
I have taken your code and made a tester for authentication and refresh token and am able to control the TreatLife product for switches and led lights.
I am only 20 months old in Python years and 60 in human years and wanted once again to THANK YOU for your HARD WORK!
Nothing to show yet as there is always another project to do lol!
Highest Regards,
Steve Bailey

On Feb 6, 2021, at 9:45 AM, Jason Cox<EMAIL_ADDRESS>wrote:
Thanks for the update. If you remove 'device22' make sure you also remove the set_dpsUsed() call. Also, I would try swtich to the more generic OutletDevice class. Are you using something similar to this code?
import tinytuya
print("TinyTuya (Tuya Interface) [%s]\n"%tinytuya.version)
tinytuya.set_debug(True)
DEVICEID = "the id of the K1"
DEVICEIP = "the IP"
DEVICEKEY = "mykey"
DEVICEVERS = "3.3"
a = tinytuya.OutletDevice(DEVICEID, DEVICEIP, DEVICEKEY)
a.set_version(3.3)
data = a.status()
print(data)
Also, just to check in again because this seems to always trip us up, make sure the local DEVICEKEY is correct. If it is not, the error you are getting is related to that.
python -m tinytuya wizard
Finally, there is a chance that the device does not respond to local Tuya commands and is only cloud based. I just can't find much information about Tuya Smart Locks. If you happen to find anything, please post here so we can continue to research.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/jasonacox/tinytuya/issues/26#issuecomment-774513869, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMRVB3OUFYCC7FIFZUPTMGLS5V53DANCNFSM4WXEVXDA.

Hi
I have done more tests using the latest 1.2.1 release, here are my findings
Using device22
a.set_version(3.3)
a.set_dpsUsed({"1": None}) # This needs to be a datapoint available on the device
data = a.status()
print(data)

returns
DEBUG:received null payload (b'\x00\x00U\xaa\x00\x00\x00\x00\x00\x00\x00\r\x00\x00\x00\x0c\x00\x00\x00\x00\xed\xbd\xfa\x0f\x00\x00\xaaU'), fetch new one
DEBUG:Timeout or exception fetching payload - retry 6/5
DEBUG:Exceeded tinytuya retry limit (5)
DEBUG:ERROR Timeout Waiting for Device - 902 - payload: "Check Device Key"
DEBUG:status received data={'Error': 'Timeout Waiting for Device', 'Err': '902', 'Payload': 'Check Device Key'}
{'Error': 'Timeout Waiting for Device', 'Err': '902', 'Payload': 'Check Device Key'}
root

both when I use the SmartLock device key and also if I try with the device key of the WifiBluetoothBridge.
If on the other hand I remove the device22 option, I get
root@rpi-1:/home/pi# python3 test.py
TinyTuya (Tuya Interface) [1.2.1]

DEBUG:status() entry (dev_type is default)
DEBUG:building payload=b'{"gwId":"deviceid","devId":"deviceid","uid":"deviceid","t":"1613213025"}'
DEBUG:payload generated=b'\x00\x00U\xaa\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x88nE\x9d2\x83~@<f\xa3\x0e\x8eY\x05G\xa3\x99\xda\x03\xb6#\xd27=*\x13\xcf\xb8\xcc\x1cO\xfd\x07\x05\x81\xe1"Gu4tm\x9e\xa7\xe2F\x8207\x8e9\xf7t\xd6{9)\xa7,k\x11{\xcbnx\x06\xc7o0\x8c\xecQ\n\xea\xbd\xa5\xfd\xdc`\x1c\x99\xda\x03\xb6#\xd27=*\x13\xcf\xb8\xcc\x1cO\xfdB\xcb\xde<b~bj,LbR\xc4\xdc\x93\xaf%\xc6\xfe\xb0l#\xc0_\xc1\x93\x18\xcbPE\xf0\xc4\xadJ\x87\xbf\x00\x00\xaaU'
DEBUG:received data=b'\x00\x00U\xaa\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x1c\x00\x00\x00\x019m\xac\x84"\x13\xcfO3\x88\xb1\xb5\x0e\x1382|ca\x9e\x00\x00\xaaU'
DEBUG:raw unpacked message = TuyaMessage(seqno=0, cmd=10, retcode=1, payload=b'9m\xac\x84"\x13\xcfO3\x88\xb1\xb5\x0e\x1382', crc=2086887838)
DEBUG:decode payload=b'9m\xac\x84"\x13\xcfO3\x88\xb1\xb5\x0e\x1382'
DEBUG:decrypting=b'9m\xac\x84"\x13\xcfO3\x88\xb1\xb5\x0e\x1382'
DEBUG:decrypted 3.3 payload='devid not found'
DEBUG:decoded results='devid not found'
DEBUG:ERROR Invalid JSON Response from Device - 900 - payload: "devid not found"
DEBUG:status received data={'Error': 'Invalid JSON Response from Device', 'Err': '900', 'Payload': 'devid not found'}
{'Error': 'Invalid JSON Response from Device', 'Err': '900', 'Payload': 'devid not found'}
root@rpi-1:/home/pi#

Again, same result with deviceid of the lock and of the wifi bridge...
What do you think?
Thanks!
R

This is progress!  I have a hypothesis.

The  response you are getting "devid not found" is coming from the wifi bridge which means that it is communicating correctly if you do not use the 'device22' and the payload is decrypting correctly. That means you do not want to use device22 and the key is right.
The response tells us that it doesn't like the DevID you are sending (it cannot find it).  I assume you tried the devid of the lock but used the IP address of the wifi bridge?  If so, that could mean that the wifi-bridge wants to see itself as the gwID.  The command payload looks like this:

 "command": {"gwId": "", "devId": "", "uid": "", "t": ""},

The generate_payload() function assumes that all the IDs are the same DEVICEID so it loads them in that for that payload. I suspect it wants a different gwId than the devId, as a way to tell the wifi-bridge (the gateway?) which device we want to poll.
If you want to experiment, try to edit generate_payload() to allow setting gwId and devId independently and see if that works.  If that works, I could add gwId as an optional parameter to generate_payload() for this type of use case.
FYI manually generating payload and sending (after you edit generate_payload()):
# Connect to the device - replace with real values
d=tinytuya.OutletDevice(DEVICEID, DEVICEIP, DEVICEKEY)
d.set_version(3.3)

# Generate the payload to send - likely want to send gwId as optional param
payload=d.generate_payload(tinytuya.DP_QUERY, gwId)

# Send the payload to the device
d._send_receive(payload)

wow I start to see light at the end of the tunnel, thanks! :-)
So I tried the above
d.set_version(3.3)

# Generate the payload to send - likely want to send gwId as optional param
payload=d.generate_payload(tinytuya.DP_QUERY, 'MygwID')

# Send the payload to the device
d._send_receive(payload)

#a.set_dpsUsed({"1": None}) # This needs to be a datapoint available on the device
data = d.status()
print(data)

and still got error because gwId is still the deviceID while the gwID ended up in the dps:
DEBUG:building` payload=b'{"gwId":"LockID","devId":"LockID","uid":"LockID","t":"1613298400","dps":"MygwID"}'

Thanks!!
R

That's correct, I haven't updated generate_payload() to handle the gwID option.  I may have time to do that today.

If you git pull the latest version (1.2.2) I have added those parameters to generate_payload().  You should be able to do something like this:
import tinytuya

print(tinytuya.version)
tinytuya.set_debug(True)

print('\Connecting...')
d = tinytuya.OutletDevice(DEVICEID, DEVICEIP, DEVICEKEY)
print(d)
d.set_version(3.3)

# Generate the payload (try different device or wifi gateway IDs here)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId='1234', devId='ef12', uid='fab0')

# Send the payload to the device
data = d._send_receive(payload)
print('\nResponse from DP_QUERY: %r' % data)

unfortunately we're not there yet :-(
I tried with both devID and gwID in the uid field but I always get the same error
DEBUG:ERROR Invalid JSON Response from Device - 900 - payload: "devid not found"
Thanks!
R
TinyTuya (Tuya Interface) [1.2.2]
DEBUG:building payload=b'{"gwId":"mygwID","devId":"mydevID","uid":"mydevID","t":"1613333557"}'

Ok, if you haven't already, you might try all the permutation just in case it is looking for something else, like...
a = 'DeviceID'
b = 'BridgeID'

payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=a, devId=a, uid=a)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=a, devId=a, uid=b)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=a, devId=b, uid=a)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=a, devId=b, uid=b)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=b, devId=a, uid=a)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=b, devId=a, uid=b)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=b, devId=b, uid=a)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=b, devId=b, uid=b)

It seems like the OutletDevice is right since you are getting a response (even if it is an error), but you may even want to try the same with the connection in combination with the above, something like...
d = tinytuya.OutletDevice(a, b_DEVICEIP, a_DEVICEKEY)
d = tinytuya.OutletDevice(b, b_DEVICEIP, a_DEVICEKEY)
d = tinytuya.OutletDevice(a, b_DEVICEIP, b_DEVICEKEY)
d = tinytuya.OutletDevice(b, b_DEVICEIP, b_DEVICEKEY)

Hi, I tried the 8 permutations above and unfortunately always got back the same error
{'Error': 'Invalid JSON Response from Device', 'Err': '900', 'Payload': 'devid not found'}

As for the other attempt, devicekey is the same in bridge and lock, only deviceid changes...
Thanks!
R

Drats! I was hoping we were on to something.  Logically, since this is a bridge and the device key is same for both, I could imagine that it could work by sending the DeviceID to the Bridge (IP address) - Basically treating it as if it was just a proxy for the device:
d = tinytuya.OutletDevice(DEVICE_ID, BRIDGE_IP, DEVICE_KEY)
d.set_version(3.3)
payload=d.generate_payload(tinytuya.DP_QUERY, data=None, gwId=DEVICE_ID, devId=DEVICE_ID, uid=DEVICE_ID)
data = d._send_receive(payload)

# or essentially
d = tinytuya.OutletDevice(DEVICE_ID, BRIDGE_IP, DEVICE_KEY)
d.set_version(3.3)
data = d.status()

One additional idea I had, try sending the different known Tuya commands to the bridge to see if any of them provide any other response - these are the different commands tinytuya supports (there are others):
        CONTROL: {   # Set Control Values on Device
            "hexByte": "07",
            "command": {"devId": "", "uid": "", "t": ""}
        },
        STATUS: {    # Get Status from Device
            "hexByte": "08",
            "command": {"gwId": "", "devId": ""}
        },
        HEART_BEAT: {
            "hexByte": "09",
            "command": {"gwId": "", "devId": ""}
        },
        UPDATEDPS: {
            "hexByte": "12",
            "command": {"dpId": [18, 19, 20]},
        },
        DP_QUERY: {  # Get Data Points from Device
            "hexByte": "0a",
            "command": {"gwId": "", "devId": "", "uid": "", "t": ""},
        },
        CONTROL_NEW: {
            "hexByte": "0d",
            "command": {"devId": "", "uid": "", "t": ""}
        },
        DP_QUERY_NEW: {
            "hexByte": "0f",
            "command": {"devId": "", "uid": "", "t": ""}
        },

command = tinytuya.CONTROL

payload=d.generate_payload(command, data=None, gwId='1234', devId='ef12', uid='fab0')
data = d._send_receive(payload)
print('Response: %r' % data)

The fact that the bridge is responding with a readable payload seems to indicate there is some support for local Tuya commands but it is also possible that it is designed to only work with the Tuya Cloud.

Hi thanks again, here is the feedback when using
payload=d.generate_payload(command, data=None, gwId='TheGWid', devId='TheDeviceID', uid='TheDeviceID')

CONTROL: data format error
STATUS: parse data error
HEART_BEAT: Check Device Key
UPDATEDPS: query dp failed
DP_QUERY: devid not found
CONTROL_NEW: AttributeError: 'OutletDevice' object has no attribute 'dpsUsed'
DP_QUERY_NEW: parse data error

so I tried the 4 more pomising ones with gwID in the uid field but nothing changed:

CONTROL: data format error
STATUS: parse data error
UPDATEDPS: query dp failed
DP_QUERY_NEW: parse data error

Thanks!
R

Thanks for trying.   I would try
payload=d.generate_payload(command, data=None, gwId='TheDeviceID', devId='TheDeviceID', uid='TheDeviceID')

Using the above commands again.
Also, the CONTROL_NEW response indicated we need to set dpsUsed() - so you could try adding this:
payload=d.generate_payload(tinytuya.CONTROL_NEW, data=None, gwId='TheDeviceID', devId='TheDeviceID', uid='TheDeviceID')
d.set_dpsUsed({"1": None})
data = d._send_receive(payload)
print('Response: %r' % data)

Might even try that one with the different gwId's.

Hi unfortunately I get error
File "/root/tinytuya/tinytuya/__init__.py", line 756, in generate_payload
    json_data['dps'] = self.dpsUsed
AttributeError: 'OutletDevice' object has no attribute 'dpsUsed'

I tried also with CoverDevice but same error...
Thanks!
R

I'm sorry, my error. The set_dpsUsed() should be before generate payload since the dps values need to be encoded into the payload:
d.set_dpsUsed({"1": None})
payload=d.generate_payload(tinytuya.CONTROL_NEW, data=None, gwId='TheDeviceID', devId='TheDeviceID', uid='TheDeviceID')
data = d._send_receive(payload)
print('Response: %r' % data)

ok but now I'm stuck with
Response: {'Error': 'Timeout Waiting for Device', 'Err': '902', 'Payload': 'Check Device Key'}
I tried all 8 combinations of device/gateway id in the 3 fields...
Thanks!
R


[Screen Reader-Home Page]: Default Lang Attribute is not defined for the Home Page.

User Experience:
If Default Lang Attribute is not defined for any web page then it would be difficult for the Screen reader users to access that Web page.
Test Environment:
OS: Windows 10 RS2
Build: 15063.2
Browser: Edge
Tool Used: IE11 Developer Tool
Steps to reproduce:

Navigate to url:- https://makecode.com/
Navigate through all controls (say computing education, about Microsoft makecode, get inspired, resources elements etc)lying on the page.
3-Verify, the Lang attribute of the Hoem Page using F12

Actual Behavior:
Default Lang Attribute is not defined for the Home Page.
Expected Behavior:
Default Lang Attribute should be defined for the Home Page..
MAS Reference:
https://microsoft.sharepoint.com/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={eb8515c6-18d7-4af0-b47e-c46958b1b50e}
Suggested Fix:
1- Use the title attribute. This technique is most often used when there is not space in the design for an explicit text label.
e.g.

2-Use the fieldset and legend elements to provide a description for groups of form elements. This is used for more complex forms and is often used in conjunction with other techniques.

3-Use "aria-label". This technique is an alternative to the title attribute technique above in point 1.
e.g.
X

4-Use the "aria-describedby" property to provide a descriptive label for user interface controls
e.g.
X
…
Closing this window will discard any information entered and
return you back to the main page

5- Use 'aria-labelledby' to concatenate a label from several text nodes
6-Providing text descriptions to identify required fields that were not completed
 Key References for Fix:
http://www.w3.org/TR/UNDERSTANDING-WCAG20/minimize-error-cues.html
Please refer the Attachment:

1- Use the title attribute. This technique is most often used when there is not space in the design for an explicit text label.
e.g.

2-Use the fieldset and legend elements to provide a description for groups of form elements. This is used for more complex forms and is often used in conjunction with other techniques.

3-Use "aria-label". This technique is an alternative to the title attribute technique above in point 1.
e.g.
X

4-Use the "aria-describedby" property to provide a descriptive label for user interface controls
e.g.
X
…
Closing this window will discard any information entered and
return you back to the main page

5- Use 'aria-labelledby' to concatenate a label from several text nodes
6-Providing text descriptions to identify required fields that were not completed
 Key References for Fix:
http://www.w3.org/TR/UNDERSTANDING-WCAG20/minimize-error-cues.html
Please refer the Attachment:

Fixed in makecode.com

Bug is verified and fixed .Hence closed the bug.


Problem with api key

Which api key we should use

The project uses Cric API. You can register here https://www.cricapi.com/ and use the free plan.
It gives you 100 requests per day.
But I have prefetched the match schedule, also the standings are scraped from the IPL official website, to reduce the requests made.
Do leave feedback or let me know if you still have any issues. :hugs:

what do i add in the description? i'm confused


What's the range for "type" property?

@ucsdlib/domm needs to discuss what the correct range for "type" is.
It's currently line 126 in the DD and listed as dc:DCMIType, which doesn't seem correct since we've developed a local type list with fun things like "notated movement"

(I'm not able to assign labels to this, I think it might be a permission thing)

Whoops, that was definitely user error ;)

@arwenhutt: What's the different use for Type and Format (typeOfResource?)? It looks like the CVs are over wrapping.

@arwenhutt let me look into the label permissions thing. sorry about that

@arwenhutt: I've put the controlled values for our current dams:typeOfResource field into the CVs tab of the data dictionary under 'type'. I imagine we now change that range to Literal?
I think that works, but as @lsitu said, 'format' is... not so clear. Reading the DCMI spec, is this intended to be similar to what is captured now as dams:formatName (e.g. 'MP3') and dams:duration? Which I imagine PCDM captures somewhere else in the technical metadata? I can't think of a controlled value list for this that isn't likely captured somewhere else.
DC11 Format

@remerjohnson @lsitu - I wonder if we should setup a ticket to explicitly look into the technical metadata extracted by the CC stack for each of our known/common file types? Might that help clarify the issues noted above?

@mcritchlow Yes, I think it's good to know about it first.
@remerjohnson Here is the technical metadata defined in CC for each file types: https://github.com/projecthydra/hydra-works/tree/master/lib/hydra/works/characterization/schema .

@lsitu - 👍
for the separate ticket, i was referring to actually running a few of each of our file types through CC and confirming the extracted technical metadata is populated as expected via FITS. But your schema link may be all @remerjohnson needs for now.

#23 is setup for further investigation into technical metadata extraction.

Okay. I do see in base_schema.rb, there is reference to PREMIS.hasFormatName which, when looking at the ontology link, doesn't specify what is expected, but I can assume those would basically be MIMEtypes? I guess we can just wait for the result of the test you set up in #23
Thanks!

Per meeting discussion, we agreed that the unresolved technical metadata issues from this ticket are contained in #23 and elsewhere.
Since we have good CVs for the range of "type" for @lsitu to work with, I'm closing this out.


⚠ ClamAV has degraded performance

In a2bd0ad, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in 2b2c348 after 57 minutes.


rbd showmap doesn't accept '-p ', as seen in ceph_rbd.py:121

I see lots of errors in node logs for rbd showmapped failing.  Looks like the syntax is wrong.
ceph_rbd.py, line 121;
[b"rbd", "-p", self._pool, b"showmapped"]).strip()
root@lumere-controller-1:~# rbd -p rbd showmapped
rbd: unrecognised option '-p'
I think line 121 should look like;
[b"rbd", b"showmapped"]).strip()

My logs are full of this error...

ceph suppoet was only experimental. ClusterHQ has since shutdown in Dec 16'. You may be able to find some help from some of us at https://github.com/ScatterHQ/flocker, thought personally I will not be continuing to do much.
Another option would be to take a look at rexray, they recently supported ceph in their 0.7.0 release.
https://blog.codedellemc.com/2017/01/27/rexray-ceph/


Update ReadMe File With Adding A Scaling ScreenShot.

I Have Created a Index_AbhiPrajapati.html Page Where i Have used Tailwind Css Scaling Property . Used it To make A ScreenShot for Readme File.

Hi AbhiPrajapati, two main things:

In CONTRIBUTING.md there's instructions for setting up examples there, so your index file should not be in the root of the project.
Ideally the screen shot would be showing an example of the plugin, here you're using a mix of vanilla js and tailwind without adding the vertical rhythm plugin. So it's not really too useful in showing what to expect from the plugin. I've set up make commands you can use to develop with a tailwind environment, if you duplicate a example folder you should be able to quickly setup with what you need. Commands are in the CONTRIBUTING.md. :)


Adding video tutorial

I want to add video link for people that learn with video tutorial.
Some of the video tutorials like pluralsight, udacity, udemy, etc

@Godstyme we can't add video tutorials but we are looking forward for complete courses you can do that if you have any youtube course.

@Godstyme we can't add video tutorials but we are looking forward for complete courses you can do that if you have any youtube course.

@Godstyme please check our PR.

@Godstyme please check our PR.


refactor!: remove indy from core

Completely broken at the moment. Not ready yet
Dependant on #1279 and #1283

Codecov Report

Merging #1286 (81288da) into main (a487705) will decrease coverage by 16.70%.
The diff coverage is 84.84%.

@@             Coverage Diff             @@
##             main    #1286       +/-   ##
===========================================
- Coverage   74.80%   58.11%   -16.70%
===========================================
  Files         661      542      -119
  Lines       16114    11894     -4220
  Branches     2701     1924      -777
===========================================
- Hits        12054     6912     -5142
- Misses       3764     4598      +834
- Partials      296      384       +88

Impacted Files
Coverage Δ

packages/core/src/agent/AgentConfig.ts
76.47% <ø> (-6.87%)
:arrow_down:

packages/core/src/agent/AgentModules.ts
90.69% <ø> (-7.18%)
:arrow_down:

packages/core/src/agent/BaseAgent.ts
78.31% <ø> (-2.87%)
:arrow_down:

...ages/core/src/modules/credentials/formats/index.ts
100.00% <ø> (ø)

packages/core/src/modules/credentials/index.ts
100.00% <ø> (ø)

...redentials/models/CredentialProblemReportReason.ts
100.00% <ø> (ø)

...credentials/repository/CredentialExchangeRecord.ts
87.50% <ø> (+7.87%)
:arrow_up:

packages/core/src/modules/dids/methods/index.ts
100.00% <ø> (ø)

packages/core/src/modules/proofs/formats/index.ts
100.00% <ø> (ø)

packages/core/src/types.ts
100.00% <ø> (ø)

... and 184 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

The only functional doubt I have is regarding the V1 credential and proof protocol feature registration but otherwise you have my blessing!

Can you elaborate on this part?

Thanks for the quick review! That must be around 1000 lines / hour since the Pr was ready for review!

The only functional doubt I have is regarding the V1 credential and proof protocol feature registration but otherwise you have my blessing!

Can you elaborate on this part?

I don't know if it was me who forgot to push a button, or GitHub that lost my comment... But was about registering V1 credential/proof protocol in the FeatureRegistry in AnonCredsModule. I haven't seen it among the changes so I suppose they are forgotten.


Local to main - backend advancement

might exclude the mongo DB from Github Workflow test to to connection error


Do not fail if skippable is true

SUMMARY
It allows to skip operators that may not be present in the catalog, but it is acceptable not to try installing them.
ISSUE TYPE

New or Enhanced Feature

Tests

[] TestBos2 - https://www.distributed-ci.io/jobs/6552213a-2739-4440-bd92-4a84184f7dce/jobStates

Test-Hint: no-check

recheck


🛬 [INBOUND] - django-fsm-2

What's the URL to the project?
https://github.com/pfouque/django-fsm-2/
Who are the current maintainers?
@pfouque, @natim
Does the project have the required attributes?

[X] Does the project have tests?
[X] Does the project have documentation?
[X] Has the project adopted Django Commons's Code of Conduct?

Who will be the new maintainers of the project?
@pfouque, @natim

Excellent, thank you for opening this @Natim! I'm hoping to have the admins question resolved before bringing on projects. This means we may not be able to transfer this until about July. Is that alright with you?

Sure we are not in a hurry. I was planning to talk about Django Commons at DjangoCon EU 2024 but my lightning talk was delayed and I won't be able too unfortunately. Thank you for starting this!

I haven't forgotten about this. Things are moving in the background!

No worries @tim-schilling ! There is no hurry at all!

We're finally ready. @cunla is going to be your point of contact for this migration. I'll let him take over from here

Hi @pfouque and @Natim,
Can you book 45 mins with me to do the transfer?
https://cal.com/daniel-moran/work-meeting
Let me know if you can't find any time that works for you.

This has been completed!


Bug of Chinese tokenization in 1.10.12

Rasa version: 1.10.12
Python version: 3.7.4
Operating system (windows, osx, ...): ubuntu 20.04
Command or request that led to error: rasa train
Issue:
When Chinese training example contains an OOV character, it will be converted to [UNK] as token string, when rasa tries to align tokens with entities it will count the token's length, it treat [UNK] as 5 length string which is incorrect and it will create tokens that not match the true training example.
I will submit a PR to fix it.

Thanks for raising this issue, @koaning will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

Close the issue, since the bugfix #6755 merged.


[QBD] Export out-of-pocket expenses

Details

[QBD] Export out-of-pocket expense
Fixed Issues

$ Related to https://github.com/Expensify/App/issues/49710,  will fix it once there aren't TODO items anymore.
PROPOSAL:
Tests

Open app
Open workspace with a set Quickbooks Desktop
Navigate to https://dev.new.expensify.com:8082/settings/workspaces/${policyId}/accounting/quickbooks-desktop/export
Press on Export out-of-pocket expenses as
Verify that Export out-of-pocket expenses as screen was open
Press on Export as and choose any item
Verify that  Export as was open and Mark checks as “print later” is displayed only if Check is selected
Press on Mark checks as “print later” toggle
Verify that toggle is switched
Press on Bank account and choose any item
Verify  that Bank account was open and the сurrent value is selected

[x] Verify that no errors appear in the JS console

Offline tests

Open app
Open workspace with a set Quickbooks Desktop
Navigate to https://dev.new.expensify.com:8082/settings/workspaces/${policyId}/accounting/quickbooks-desktop/export
Press on Export out-of-pocket expenses as
Verify that Export out-of-pocket expenses as screen was open
Press on Export as and choose any item
Verify that  Export as was open and Mark checks as “print later” is displayed only if Check is selected
Press on Mark checks as “print later” toggle
Verify that toggle is switched
Press on Bank account and choose any item
Verify  that Bank account was open and the сurrent value is selected

QA Steps

Open app
Open workspace with a set Quickbooks Desktop
Navigate to https://dev.new.expensify.com:8082/settings/workspaces/${policyId}/accounting/quickbooks-desktop/export
Press on Export out-of-pocket expenses as
Verify that Export out-of-pocket expenses as screen was open
Press on Export as and choose any item
Verify that  Export as was open and Mark checks as “print later” is displayed only if Check is selected
Press on Mark checks as “print later” toggle
Verify that toggle is switched
Press on Bank account and choose any item
Verify  that Bank account was open and the сurrent value is selected

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/5cb11739-f197-4b0d-bb49-df08b6655d72

Android: mWeb Chrome
https://github.com/user-attachments/assets/cfc5a616-7b69-494f-b7cf-12a4d22ef5b6

iOS: Native
https://github.com/user-attachments/assets/72e73708-599c-4107-9008-d4a835035664

iOS: mWeb Safari
https://github.com/user-attachments/assets/3f97047b-c33b-4082-ad58-d23b8282ce15

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/87cf3042-3806-4e9f-8ccb-e14e44e3aaea

MacOS: Desktop
https://github.com/user-attachments/assets/93a67576-e598-47a2-8d3f-ee43ada0b63c

Also in your videos @ZhenjaHorbach, when you click on Export as there are no options there.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

We are blocked with proceeding with this PR. Can it be validated internally?


Add the ability to rank albums

I've got a lot of albums from a few artists. I listen to them all and would like to get a way to rank them (just add a few stars depending how I like it).
I'm not sure this is the scope of this software, but wanted to propose the feature, to see if that would be useful to others?

Would reorganizing the albums and artists using a drag and drop and offer different sorting algorithms like Newly added, Most listened, Alphabetically or Custom solve your problem? I feel like adding a star rating system would clutter the UI a bit

Using « Custom » could solve my current problem, yes.

Otherwise, a better option would be to « love » albums rather than just tracks.


Jest tests exit with "A worker process has failed to exit gracefully and has been force exited."

The Jest test suite has an issue that Jest reports as a memory leak whereby some handles are not being properly destroyed after the tests finish.
The complete error message is:

A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks.

Running with --detectOpenHandles simply causes the test run to hang and gives no additional information, perhaps related to this issue in Jest itself.
Sometimes, nondeterministically, Jest will also report the following:

Jest did not exit one second after the test run has completed.
This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with --detectOpenHandles to troubleshoot this issue.

Perhaps related to this Jest issue.

To reproduce:

Follow the 'Local Development' steps in the README.

My assumption here is that in one of the tests that imperatively destroys the connection between the server and the EventSource is not cleaning up the EventSource reconnect, and it is attempting to connect again instead of being closed causing a leak. But I am not totally sure.

Closing as this appears to be fixed in v0.7.0 after updating all dependencies to their latest versions. Not sure exactly which dependency was causing the issue, but I suspect it was an update to a Jest-Typescript package.


Replacer for hardcoded ids for vNext

Closes #1141

This change is

PR is added to the queue for testing as 5. task. (5d9b52d)

Hi @andrew-aladev, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

This merge requires LGTM. Related PR is here.

Test (Fail) 86522102 build is completed (5d9b52d)
See https://github.com/ThaliTester/TestResults/tree/865221025d9b52d_Replacer_for_hardcoded_ids_for_vNext_andrew-aladev/ for the logs

Reviewed 6 of 6 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

thali/install/npm-shrinkwrap.json, line 2 at r1 (raw file):

{
  "name": "install",

Please just remove this file.

Comments from Reviewable

PR is added to the queue for testing as 3. task. (39a4b7e)

PR is added to the queue for testing as 4. task. (0889ce9)

Review status: 5 of 6 files reviewed at latest revision, 1 unresolved discussion.

thali/install/npm-shrinkwrap.json, line 2 at r1 (raw file):
Previously, yaronyg (Yaron Y Goland) wrote…
> Please just remove this file.

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion.

thali/install/npm-shrinkwrap.json, line 2 at r1 (raw file):
Previously, andrew-aladev (Andrew Aladjev) wrote…
> Done.

Done.

Comments from Reviewable

Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

Reviewed 5 of 6 files at r1, 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Comments from Reviewable

Test (Success) 86522102 build is completed (39a4b7e)
See https://github.com/ThaliTester/TestResults/tree/8652210239a4b7e_Replacer_for_hardcoded_ids_for_vNext_andrew-aladev/ for the logs

Test<PHONE_NUMBER>a4b7e(39a4b7e) has failed
See https://github.com/ThaliTester/TestResults/tree/8652210239a4b7e_Replacer_for_hardcoded_ids_for_vNext_andrew-aladev/ for the fail logs

Test (Success) 86522102 build is completed (0889ce9)
See https://github.com/ThaliTester/TestResults/tree/865221020889ce9_Replacer_for_hardcoded_ids_for_vNext_andrew-aladev/ for the logs

Test<PHONE_NUMBER>89ce9(0889ce9) has failed
See https://github.com/ThaliTester/TestResults/tree/865221020889ce9_Replacer_for_hardcoded_ids_for_vNext_andrew-aladev/ for the fail logs


codec(ticdc): refactor avro encoder to use code config directly to avoid duplicate option

What problem does this PR solve?

Issue Number: close #9137
What is changed and how it works?

avro use codec common.Config, and remove Options

Check List
Tests

Unit test

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`None`

/test all

/test verify

/test dm-integration-test

/merge

/test dm-integration-test


Lead but also Contacts?

Hello
Does who knows whom work with contacts as well?
Does it take relations with other users or other contacts?
Thank you
Pierre-Olivier
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0233ec70-cc70-9ac3-e82a-bac6bbe75e3b
Version Independent ID: 0233ec70-cc70-9ac3-e82a-bac6bbe75e3b
Content: Who Knows Whom in Dynamics 365 Sales
Content Source: ce/sales/who-knows-whom.md
Service: dynamics-365-sales
GitHub Login: @udag
Microsoft Alias: udag

@popujol, yes. WkW is available for contacts and leads.
"Who Knows Whom is available in Contact and Lead forms. When you open a lead or contact and select the Sales Insights view, the Who Knows Whom tile is displayed."


required_css_class argument in {% bootstrap_form form ... %}

Hi!
I'm trying to set required_css_class for a specific form rendering without using it like a global setting in BOOTSTRAP3.
So, when I read http://django-bootstrap3.readthedocs.org/en/latest/templatetags.html#bootstrap-form ("See bootstrap_field for other arguments") I understood that by doing this:
{% bootstrap_form myform required_css_class='required' %}
I get what I wanted... but it didn't work... :(
Is there a problem in bootstrap_form template tags? or am I doing something wrong?
I'm using django-bootstrap3 6.2.2
Thank you very much in advance for any help

I’ve the same problem with the 'bound_css_class', passed as argument of the bootstrap_form templatetag. Those arguments are not passed to the field renderer. I’m about to send a pull request to fix this.


Browser pop-up login does not complete

Set up a pop-up login within a browser
// Create the client and endpoint, then export them so others can use them easily.
let azureClient = new WindowsAzure.MobileServiceClient(azureEndpoint); // eslint-disable-line new-cap
console.info('azureClient = ', azureClient);
azureClient.login('google').then(success, failure);

Login process goes through a pop-up window.  After the pop-up completes, /.auth/login/google/callback is called.  Window does not close.  Closing window calls the failure function with a 'canceled' error message.

For code to implement, see https://github.com/adrianhall/react-todo-qs (branch: azure)
To build:
npm install
npm run nodemon

Browser can hit http://localhost:3000 (endpoint has CORS disabled)

Is this even after setting the allowedExternalRedirectUrls and allowedOrigins (CORS) properties? Is it only for 'google' or all providers? I just checked and it worked for all providers.

You need to add your site URL to the allowedExternalRedirectUrls list. To do this:

Open your Mobile App in portal.azure.com
Go to Tools -> Resource explorer
In your site's settings in the left pane of the resource explorer, open config -> authsettings and add http:// and https:// to the allowedExternalRedirectUrls array. This will fix the auth server flow.
In your site's settings in the left pane of the resource explorer, open config -> web and add http:// and https:// to the allowedOrigins array. You can also do this using the CORS UI in your site's settings in the portal. This will fix the auth client flow.
Wait for a few seconds for the settings to take effect and then run your scenario.

Hi,
I am also having this problem. If my site is https://mride.azurewebsites.net, and I am running Ionic framework (using Cordova), do I add https://mride.azurewebsites.net and https://mride.azurewebsites.net  to both allowedExternalRedirectUrls and CORS ?


Speeds up the Travis CI build by skipping the 'install' phase

See http://stackoverflow.com/questions/31945809/skip-first-mvn-install-in-travis-ci
Maybe this fixes also the problem of stalling builds!?

Codecov Report

Merging #1874 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #1874   +/-   ##
=========================================
  Coverage     98.07%   98.07%
  Complexity     5052     5052
=========================================
  Files            88       88
  Lines         11404    11404
  Branches       1502     1502
=========================================
  Hits          11185    11185
  Misses          113      113
  Partials        106      106

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 55e7cba...4a0a920. Read the comment docs.


Hotfix staking order

New backend is delivering the certificates in a nondeterministic order

This commit fixes the order on the backend: https://github.com/Emurgo/yoroi-graphql-migration-backend/commit/f83f23ebf9ebaa72cf373d974b47a0b74ca4d564
is this PR still relevant after the fix on the backend?

This commit fixes the order on the backend: Emurgo/yoroi-graphql-migration-backend@f83f23e
is this PR still relevant after the fix on the backend?

@pedromtcosta, txs are cached locally on mobile, resync will rehydrate the cache with the new response from the backend, but this will require the user to perform some action. 🤔

closing in favor of the update done in the backend.


NIFI-4654: Support reporting RAS S2S lineage to Atlas

Added 's2s.port.id' FlowFile attribute to track target remote Port id
Use 's2s.port.id' to analyze RAW S2S provenance events

This PR adds support for ReportLineageToAtlas report S2S RAW protocol lineages. Data transfer using RAW S2S protocol can be reported to Atlas as shown in following screenshots:
Sending data to remote Input Port

Getting data from remote Output Port

Before this change, following error message was logged when Atlas reporting task failed to parse S2S RAW transit URI:
2018-07-09 11:45:19,336 ERROR [Timer-Driven Process Thread-6] o.a.n.a.reporting.ReportLineageToAtlas ReportLineageToAtlas[id=7ce9bfa0-0164-1000-b729-c4fedd3
69dc6] Skipping failed analyzing event ProvenanceEventRecord [eventId=1, eventType=SEND, eventTime=Mon Jul 09 11:40:06 JST 2018, uuid=87316f90-41af-4929-bfc
2-4fbef69647f8, fileSize=4, componentId=33a9d769-7263-32df-8957-789e3f503ea7, transitUri=nifi://s2sclient:8081/87316f90-41af-4929-bfc2-4fbef69647f8, sourceS
ystemFlowFileIdentifier=null, parentUuids=[], alternateIdentifierUri=null] due to java.lang.IllegalArgumentException: Failed to parse url nifi://s2sclient:8
081/87316f90-41af-4929-bfc2-4fbef69647f8 due to java.net.MalformedURLException: unknown protocol: nifi.: java.lang.IllegalArgumentException: Failed to parse
url nifi://s2sclient:8081/87316f90-41af-4929-bfc2-4fbef69647f8 due to java.net.MalformedURLException: unknown protocol: nifi
java.lang.IllegalArgumentException: Failed to parse url nifi://s2sclient:8081/87316f90-41af-4929-bfc2-4fbef69647f8 due to java.net.MalformedURLException: un
known protocol: nifi
        at org.apache.nifi.atlas.provenance.AbstractNiFiProvenanceEventAnalyzer.parseUrl(AbstractNiFiProvenanceEventAnalyzer.java:54)
        at org.apache.nifi.atlas.provenance.analyzer.NiFiS2S.parseTransitURL(NiFiS2S.java:36)
        at org.apache.nifi.atlas.provenance.analyzer.NiFiRemotePort.analyze(NiFiRemotePort.java:58)
        at org.apache.nifi.atlas.provenance.lineage.AbstractLineageStrategy.executeAnalyzer(AbstractLineageStrategy.java:70)
        at org.apache.nifi.atlas.provenance.lineage.SimpleFlowPathLineage.processEvent(SimpleFlowPathLineage.java:41)
        at org.apache.nifi.atlas.reporting.ReportLineageToAtlas.lambda$consumeNiFiProvenanceEvents$6(ReportLineageToAtlas.java:716)
        at org.apache.nifi.reporting.util.provenance.ProvenanceEventConsumer.consumeEvents(ProvenanceEventConsumer.java:204)
        at org.apache.nifi.atlas.reporting.ReportLineageToAtlas.consumeNiFiProvenanceEvents(ReportLineageToAtlas.java:713)
        at org.apache.nifi.atlas.reporting.ReportLineageToAtlas.onTrigger(ReportLineageToAtlas.java:665)
        at org.apache.nifi.controller.tasks.ReportingTaskWrapper.run(ReportingTaskWrapper.java:41)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.MalformedURLException: unknown protocol: nifi
        at java.net.URL.<init>(URL.java:600)
        at java.net.URL.<init>(URL.java:490)
        at java.net.URL.<init>(URL.java:439)
        at org.apache.nifi.atlas.provenance.AbstractNiFiProvenanceEventAnalyzer.parseUrl(AbstractNiFiProvenanceEventAnalyzer.java:51)

Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x] Is your initial contribution a single, squashed commit?

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[x] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

Will review...

Thanks @ijokarumawak! This has been merged to master.


Listen signals for terminating process

When an exception occurs, the process does not end correctly and hangs in the air
Also when using CTR + C to terminate a console command, processes cannot be terminated correctly

Source: Laravel Queue

@freekmurze u can review?

Thanks!


Add pvi changes to convert device command

Tested with deploy-local and two cameras on bl01c. Await pvi, ibek release

@gilesknap Am not happy to merge yet because the pvi changes are not merged/released. Currently override the requirements.txt but will remove it before setting this ready for review

@marcelldls can we merge this now? I did update PVI in ibek just last week so I think it is latest.

@marcelldls I believe this can merge now?


package.json: update juttle-client-library to 0.8.0

Makes this package compatible with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>@demmer

Also added a change that automatically grabs the styles from juttle-client-library on postinstall instead of checking it into git.


raftstore-v2: check locks on step read index

What is changed and how it works?

Issue Number: ref #14701
What's Changed:

raftstore-v2: check locks on step read index

Related changes

Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test

Release note
None

/merge

/test

/test

/test

/test

/test


Filters are not applied on the fly

What I'm trying to achieve
I am trying to achieve the behaviour observed in the demo (https://demo.getsaleor.com/en/) where filters are applied as soon as they are selected.
Steps to reproduce the problem

Run the docker image (https://docs.getsaleor.com/en/latest/customization/docker.html) on master branch
Browse to the local application
Click on Apparel
Select the filter Shoe Size > 39. Product listing does not change. In the online demo the listing updates right away.
Click 'Update Results'. The listing now updates.

What I expected to happen
I expected the listing to update as soon as the Shoe Size > 39 filter was selected, like it does in the online demo.
System information
Operating system: Ubuntu 16.04.5 LTS
Browser: Google Chrome 71.0.3578.98

Hey, take a look at the demo branch. We use a bit different implementation of category page over there - it's implemented in React and uses GraphQL API to dynamically update results based on your filters. We've added it a long time ago as our first experiment with GraphQL, but on master we kept the basic, static version of that page which requires resubmitting in order to view changes.


TS-3965: regex_remap plugin does not deal with all possible redirects

Newbie here: I'm not sure I got them all, would appreciate a review :)

[approve ci]

Looks good,
:+1:

FreeBSD build successful! See https://ci.trafficserver.apache.org/job/Github-FreeBSD/490/ for details.

Linux build successful! See https://ci.trafficserver.apache.org/job/Github-Linux/387/ for details.


42 - add library.html

Fix #42
Test URLs:

Before: https://main--audi--aemsites.hlx.live/uk/web/en/used-cars
After: https://42-add-block-library--audi--aemsites.hlx.live/uk/web/en/used-cars

tools/sidekick/config.json should be at the root level and not under /aemedge :)


merge

[ ] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
[ ] Ensure that the pull request title represents the desired changelog entry
[ ] Please describe what you did
[ ] Link to relevant issues in GitHub or Jira
[ ] Link to relevant pull requests, esp. upstream and downstream changes
[ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue

I don't see any mention of Docker image scanning in the DevSkim documentation.  This repository does not seem to include any source code that might benefit from DevSkim checking, yet you've submitted the pull request.
What types of issues are you expecting to detect by using DevSkim in this repository?


Does not work in Alfred 3

In the recently released Alfred 3 I'm able to get as far as selecting the display, but no list of resolutions is displayed. When I select the display, Alfred is dismissed.

I'm using Alfred 3 and it's working fine for me, haven't changed a thing. I'm on Yosemite though, I haven't upgraded to El Capitan
Do you know how to run workflows on debugging mode? if so, please check if you see any errors while trying to list/change resolutions and let me know
Thanks!

Sure. I am running El Capitan, and have two 1080p Asus monitors. When I try to set the resolution for one of them, the Alfred window disappears without displaying any resolutions after I select the monitor. Here’s what I get in the debug window:
[2016-06-02 11:25:02][input.scriptfilter] <items><item valid='yes'><title>Display: ASUS VS239</title><arg>0</arg><subtitle>Change resolution for display ASUS VS239</subtitle><icon>icon.png</icon></item><item valid='yes'><title>Display: ASUS VS239</title><arg>1</arg><subtitle>Change resolution for display ASUS VS239</subtitle><icon>icon.png</icon></item></items>
[2016-06-02 11:25:03][input.scriptfilter] Processing output of 'action.script' with arg '0'
[2016-06-02 11:25:04][action.script] Processing output of ‘output.notification' with arg ''

And here's a short video of what's happening if that helps

hmm, I sadly don't have a 2nd monitor to test. There're no errors in your output also. I'll try to check it later :/

I have the same error, but my debugging output actually prints an ActionScript Error.
I'm on OSX 10.10.5, MacBook 13" Early 2015 and my external monitor is 3840 x 2160 @ 60 fps .
[2016-06-07 09:34:53][ERROR: action.script] 23:31: syntax error: A “"” can’t go after this identifier. (-2740)

So, found what's causing it on my end:
if query =~ /^\d+$/
  `osascript -e 'tell app "Alfred 2" to search "setresolution #{query} "'`
else

You're calling Alfred 2 directly, changing 2 to 3 solves it, but would break Alfred 2 support. So I will file no PR atm.
I found references to Alfred 2 in the alfred-workflow gem, but that seems not to be an issue.

OMG haha, why is it working then! :D
Thanks!, I'll figure out how to fix that for sure

@dubstrike When I remember correctly, this only is an issue with multiple displays.

That's correct, it's only an issue on my desktop Mac with two 1080p monitors attached. Works fine on my 15" Retina MacBook Pro.

I don't have an easy way to debug and fix this since I don't have 2 displays
Any help (PR) appreciated :)

diff --git a/workflow/set-resolution.rb b/workflow/set-resolution.rb
index ead286a..f203514 100644
--- a/workflow/set-resolution.rb
+++ b/workflow/set-resolution.rb
@@ -4,7 +4,7 @@
 query = ARGV[0]

 if query =~ /^\d+$/
-  `osascript -e 'tell app "Alfred 2" to search "setresolution #{query} "'`
+  `osascript -e 'tell app "Alfred 3" to search "setresolution #{query} "'`
 else
   # extract values
   display, width, height, bits, hidpi = ARGV[0].match(/(\d+)@(\d+)x(\d+)@(\d+)(h?)/).captures

This solves it for me, but I will not make a PR for changing a number. 😄  Also, this will break it for Alfred 2, I guess. Best thing would be to avoid this "hack" completely, but this is a little bit more work and I'm really not an expert on Alfred workflows or ruby, in particular.


Group or sort results by task

It would be helpful to see the results pertaining to a certain task all together in the list view.

I would have expected that the results table could already sort by tasks, methods, and platforms, but this feature was broken! I have a fix, and it'll be on production later today. (I understand that it might not be obvious in the first place that the table sorts when pressing the column heading, but we can cover that in a separate issue ticket, if it remains a secondary issue.)


Candidate improvement on quotients to use CM31 whenever possible

This PR includes some changes that allow stwo to use CM31 whenever possible when computing the quotients. I have tested the solution locally, yet it doesn't seem to have an amazing speedup.
The best number of the new implementation is 3.26s. You can, however, get the similar number without this PR.
Therefore, this PR is left here for reference.

This change is

In addition, although hard to know why, the benchmark number ranges from 3.26s to 3.70s. This fluctuation is hard to understand why.

Here is an explanation on why it doesn't work as expected:

per column for every 4 points, the dev branch multiplies c (qm31) to data (m31) 4 times, multiplies a (qm31) to spaced_ys (m31) 1 time, aka 5 qm31-m31.
per column for every 4 points, the version in this branch multiples a (cm31) to spaced_ys (m31) 1 time and multiplies random coeff (qm31) to the aggregated result (cm31) 4 times---UNLESS THIS POINT ONLY HAS ONE ASSOCIATED COLUMN---aka 4 qm31-cm31 + cm31-m31, which is expected to be even more expensive.

The conclusion is that when you have more than one column on a point, it helps to multiply alpha early on in the process so that qm31 only multiplies m31 but never cm31. If we do so, the modified version would be the same as the dev branch version.
The verifier suffers from a similar challenge. For the algorithm in the dev branch, per two points next to each other, the verifier does 3 qm31-m31, while the version in this branch allows the verifier to do 2 qm31-cm31  (UNLESS THIS POINT ONLY HAS ONE ASSOCIATED COLUMN) + 1  cm31-m31. If we take qm31-m31 = 4 m31-m31, cm31-m31 = 2 m31-m31, qm31-cm31 = 6 m31-m31. The former is 12, the latter is 14. Note that the "new method" that uses single-point vanisher does one qm31-m31 which equals to 4 m31-m31.
For Fibonacci, it might be useful simply because 3 out of the 4 points have only one column, but this is not the case for Poseidon, and likely not the case for most applications.

^ This also takes into account that denominator doesn't matter that much when you have many columns on the same point.

Close since the dev branch is already using CM31.