RDKTV-283: Handle keyrepeat events

https://jenkins.code.rdkcentral.com/job/github-triggered/5552/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/24971/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/734/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/2838/ started.

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/70842/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/70841/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/70840/

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/983/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/983/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3281/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3281/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/5845/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/5845/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25594/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25594/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/5847/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/5847/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/985/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/985/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25596/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25596/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/986/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/986/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/5849/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/5849/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3283/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3283/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25597/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25597/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3284/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3284/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/5850/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/5850/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25598/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25598/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/987/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/987/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3285/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3285/ started.

https://jenkins.code.rdkcentral.com/job/github-triggered/5851/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/5851/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25599/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/25599/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/988/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/988/ started

build-qemux86-mc-rdk-next Console Log uploaded to Gist URL: https://gist.github.com/2bf8eb716d12d0bba508aaeef5336aed

build-qemux86-mc-rdk-next Console Log uploaded to Gist URL: https://gist.github.com/2bf8eb716d12d0bba508aaeef5336aed

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3286/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3286/ started.

build-qemux86-hyb-rdk-next Console Log uploaded to Gist URL: https://gist.github.com/5450bffeae500f6f11c283801148c82b

build-qemux86-hyb-rdk-next Console Log uploaded to Gist URL: https://gist.github.com/5450bffeae500f6f11c283801148c82b

build-rpi-hybrid-wpe-rdk-next Console Log uploaded to Gist URL: https://gist.github.com/c3cb59c8f9551d29f94765fc15d3bc95

build-rpi-hybrid-wpe-rdk-next Console Log uploaded to Gist URL: https://gist.github.com/c3cb59c8f9551d29f94765fc15d3bc95

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72273/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72273/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72272/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72274/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72274/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72272/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72277/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72275/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72275/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72277/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72276/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72276/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72282/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72282/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72283/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72283/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72281/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72281/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72285/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72285/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72284/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72284/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72286/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/72286/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 35
Number of failed test - 5
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21306/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 35
Number of failed test - 5
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21306/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 35
Number of failed test - 5
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21307/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,residentapp,testapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 35
Number of failed test - 5
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21307/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21308/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21308/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 37
Number of failed test - 3
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21309/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 37
Number of failed test - 3
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21309/

https://jenkins.code.rdkcentral.com/job/github-triggered/6142/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/6142/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26136/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26136/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1227/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1227/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3709/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3709/ started.

build-brcm-refboard Console Log uploaded to Gist URL: https://gist.github.com/76cb0d335aa452277fe782714ed7c5b0

build-brcm-refboard Console Log uploaded to Gist URL: https://gist.github.com/76cb0d335aa452277fe782714ed7c5b0

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73357/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73357/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73355/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73355/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73356/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73356/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21586/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21586/

https://jenkins.code.rdkcentral.com/job/github-triggered/6166/ started

https://jenkins.code.rdkcentral.com/job/github-triggered/6166/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26185/ started.

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/26185/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1248/ started

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/1248/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3764/ started.

https://jenkins.cmf.code.rdkcentral.com/job/build-component-rdk-next-platform/3764/ started.

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73471/

Smoke tests for ['build-rpi-hybrid-refapp-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73471/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73472/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73470/

Smoke tests for ['build-qemux86-hyb-rdk-next'/'build-qemux86-mc-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73470/

Smoke tests for ['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/73472/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [FAILURE]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using aamp-cli [SUCCESS]
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21620/

'['build-rpi-hybrid-wpe-rdk-next'/'build-rpi-mc-wpe-rdk-next']' Smoke test FAILURE, investigation pending.
Flash MC [SUCCESS]
Flash HYB [SUCCESS]
MC - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [SUCCESS]
Video local using gst-play-1.0 [SUCCESS]
Video Streaming using rmfApp [FAILURE]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using rmfApp [SUCCESS]
HYB - Video Test [FAILURE]
Video HLS gst-launch [SUCCESS]
Video HLS rdkmediaplayer [SUCCESS]
Video Streaming using aamp-cli [FAILURE]
Video local using gst-play-1.0 [SUCCESS]
RDKShell CI Tests [FAILURE]
checking thunder security
Thunder security is disabled
getClients : Failed - [clients:[residentapp],success:true]
getZOrder : Failed - [clients:[residentapp],success:true]
getClients : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
getZOrder : Failed - [clients:[testapp2,testapp1,testapp,residentapp],success:true]
add key intercept test failed
add key listener test failed
getClientsAfterKill : Failed - [clients:[residentapp],success:true]
Number of success test - 33
Number of failed test - 7
Video Streaming using aamp-cli [SUCCESS]
https://jenkins.cmf.code.rdkcentral.com/job/test-rdkv-raspberrypi-flow/21620/


Inexistent directories are not reported as such

[eouser@vm-02-2020 ~]$ ls -al /eodata/Sentinel-2/MSI/L2A/2019/12/26/there-is-no-spoon
total 8
drwxrwxrwx. 2 root root 4096 Dec 26 00:00 .
drwxrwxrwx. 2 root root 4096 Dec 26 13:29 ..

Mar 24 14:42:02 vm-02-2020.novalocal /usr/local/bin/goofys[19192]: s3.DEBUG Sentinel-2/MSI/L2A/2019/12/26/there-is-no-spoon/: 0
Mar 24 14:42:02 vm-02-2020.novalocal /usr/local/bin/goofys[19192]: s3.DEBUG DEBUG: Response s3/ListObjects Details:
                                                                   ---[ RESPONSE ]--------------------------------------
                                                                   HTTP/1.1 200 OK
                                                                   Content-Length: 298
                                                                   Connection: keep-alive
                                                                   Content-Type: application/xml
                                                                   Date: Tue, 24 Mar 2020 14:42:02 GMT
                                                                   Server: nginx/1.15.12
                                                                   X-Amz-Request-Id: tx000000000000017e1aab4-005e7a1c3a-1133db4e-default

                                                                   -----------------------------------------------------
Mar 24 14:42:02 vm-02-2020.novalocal /usr/local/bin/goofys[19192]: s3.DEBUG &{[] [] <nil> false }
Mar 24 14:42:02 vm-02-2020.novalocal /usr/local/bin/goofys[19192]: s3.DEBUG DEBUG: Response s3/HeadObject Details:
                                                                   ---[ RESPONSE ]--------------------------------------
                                                                   HTTP/1.1 404 NOT FOUND
                                                                   Accept-Ranges: bytes
                                                                   Connection: keep-alive
                                                                   Content-Type: application/xml
                                                                   Date: Tue, 24 Mar 2020 14:42:02 GMT
                                                                   Server: nginx/1.15.12
                                                                   X-Amz-Request-Id: tx000000000000017e1aab1-005e7a1c3a-1133db4e-default
                                                                   Content-Length: 0

Looks like this is on cloudferro and it's not clear which s3 implementation it's using.  Unfortunately it's hard to tell which is which. But there's more clues that the 200 response for HeadObject is bogus:
Mar 24 14:42:02 vm-02-2020.novalocal /usr/local/bin/goofys[19192]: s3.DEBUG DEBUG: Response s3/HeadObject Details:
---[ RESPONSE ]--------------------------------------
HTTP/1.1 200 OK
Date: Thu, 26 Dec 2019 00:00:01 GMT
Last-Modified: Thu, 26 Dec 2019 00:00:01 GMT

I trimmed the irrelevant headers, notice how Date is the same as Last-Modified. Date is supposed to be the current time.
I suggest that you contact cloudferro for help on this one.


Update readme

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7c9ab2b) 100.00% compared to head (c7d7ed9) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #153   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          301       301
  Branches        60        60
=========================================
  Hits           301       301

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Default registry as docker.io

The default registry should be configured as docker.io. This is the most common use case and should not require any extra configuration.
Identified during hacking with @michelleN at #KubeCon

Hey! To provide a little background context, we opted to go for the default being unset for a couple reasons:

The majority of early adopters hacking on apps with Draft all tend to use Minikube/Docker for Mac
Minikube/DfM users wanted a way to opt out of pushing to a container registry as it was deemed unnecessary for their use case (see #102 and #432 for more context)

After hearing feedback from users, I actually disagree that the most common use case is using DockerHub with Draft. We heard that the setup required to interact with a public container registry was very tricky/clumsy to start out. Keeping in mind that we are trying to target new developers who have not yet tried out Docker/Kubernetes:

the user needs to create an account on DockerHub by default. Not a big issue, but it's still another step in the setup instructions
the user will still need to configure the user account they're pushing the image to, so draft config set registry bacongobbler will now become a required step in the process.
the user needs to create the repository on DockerHub before calling draft up for the first time. Again, another step in the setup
pushing to a container registry takes a huge performance hit when hacking on code for Minikube users. Airplane wifi comes to mind here
For cloud users, we've heard that most would prefer to opt into the container registry provided by their cloud of choice for privacy reasons as opposed to a public cloud, e.g ACR for Azure, GCR for Google, ECR for AWS. #500 was a starting point to provision a cloud with their registry of choice, but we closed it in favour of running docker builds locally similar to Skaffold as it was a better overall fit.

All in all the experience to use DockerHub for a new user was found to be quite clunky, especially for users new to the Docker ecosystem. If most users were hacking on Kubernetes apps using cloud infrastructure, then I'd see the value in this, but I'm fairly skeptical about that actually being the case for a FOSS dev tool aimed at developers new to the space.
Always happy to hear this sort of feedback, so please feel free to elaborate on your thoughts here :)

I feel that defaulting to docker.io might even be dangerous to newcomers: he/she might "accidentially" push a public image (that's still the default for docker.io, right?), which might not be what he/she wants.

Important note : you can set the default registry in the toml file, and you can pull in custom toml files already, so an org can globally apply a standard.
But I still definitely understand the request...

We could perhaps extend draft init through the --config flag. I'll think through some ideas.

Good point though @squillace. If a user overrides the app's draft.toml with a registry field then we'll use that regardless of what's shown in draft config list. I also understand the request as well, but from previous feedback we opted to go a different route. :)


fix(wallet-mobile): Fix missing background in ios, maybe

Description / Change(s) / Related issue(s)
Ticket
YOMO-1543

YOMO-1639
Need someone to check it in iOS

setting up this branch. give me a sec

Does this PR fixes any transition issues in NFT Gallery? If yes, what needs to be tested on iOS? From the tickets it's not clear

According to this comment https://emurgo.atlassian.net/browse/YOMO-1639?focusedCommentId=23925
the issue could be the lack of background color on the screen on top (the one you're transitioning to)

The transition seems to work well on iOS

Maybe for that specific screen this needs the white background?

Working
![image](https://github.com/user-
attachments/assets/0f0ba2e9-f5f5-4ee5-896e-21bc6e7daa40)

Working


add syntax highlight

Problem
syntax highlight is missing
Solution
add syntax highlight
Checklist

[x] Unit test all changes
[x] Update README.md if applicable
[x] Add [WIP] to the pull request title if it's work in progress
[x] Squash commits that aren't meaningful changes
[x] Run sbt scalariformFormat test:scalariformFormat to make sure that the source files are formatted

@getquill/maintainers

thank you for the contribution @matsu-chara! I left this section of the readme without syntax highlighting because it doesn't compile and tut will fail when validating the readme. To actually fix it, we'd need to have a way to make tut ignore specific portions of the readme.

oh, sorry... thanks!


Adam/tree props

Changes
This PR continues work on #1368 by adding props to various subcomponents of Tree.tsx . It adds lablelProps,  sublabelProps, checboxProps, and iconProps to TreeNode. It also adds iconProps to TreeNodeExpander

Testing

Added tests to TreeNode.test.tsx to test all the custom props.
Docs

added changeset


undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKSs

I just install from the transformers source code,  and the version of transformers is ：
transformer_engine            1.7.0+4e7caa1
transformers                  4.45.0.dev0
transformers-stream-generator 0.0.4

The following error information:
 from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "/mnt/workspace/envs/qwen2_vl/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1650, in __getattr__
    value = getattr(module, name)
  File "/mnt/workspace/envs/qwen2_vl/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1649, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "/mnt/workspace/envs/qwen2_vl/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1661, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.models.qwen2_vl.modeling_qwen2_vl because of the following error (look up to see its traceback):
Failed to import transformers.generation.utils because of the following error (look up to see its traceback):
/mnt/workspace/envs/qwen2_vl/lib/python3.10/site-packages/transformer_engine_extensions.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKSs

How to solve this problem?

I have same issue

try pip uninstall transformer-engine ?

I'm not sure if it's the same question. The original problem has been resolved, but a new issue has arisen.
Floating point exception (core dumped) ：


[Foxy] multires_image doesn't export dependencies

Looking at the CMakeLists.txt for multires_image a lot of packages are pulled in but the dependencies are exported are in a non initialized variable "RUNTIME_DEPS", and then Qt.
Is that variable filled elsewhere or we should update the RUNTIME_DEPS to include the packages that it finds? Also, It seems exporting "Qt" is not correct, should it at last be "Qt5" or the specific Qt5 packages that are there?
On a separate note, if it is still a problem in "swri_transform_util" with OpenCV where if you use components you should declare them in a CONFIG_EXTRAS: https://answers.ros.org/question/331089/ament_export_dependenciesboost-not-working/?answer=332460#post-id-332460. That can be a ticket created in the right repo though, just saw the comment when pulling in OpenCV here, but it might apply here since it looks like we are depending on components of Boost.

I'm looking into the Qt export issue now.

Resolved via https://github.com/swri-robotics/mapviz/pull/742


Add a '.env.local.example' file for reference and also update the 'README.md' likewise

I have added the .env.local.example file for now will soon be adding a descriptive readme to setup the project , pls feel free to contribute and let me know if  you need anything regarding the setup


[AIRFLOW-2991] Log path to driver output after Dataproc job is completed

Jira

[x] My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-2991
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

It's difficult to keep track of logs from Google Cloud Dataproc jobs invoked by Airflow. Dataproc API provides an output property driverOutputResourceUri containing path to stdout of job's driver. It's very convenient to be able to quickly check the output log in case of errors without opening Google Cloud Console. The change involves printing INFO-level log with value of driverOutputResourceUri after Dataproc job is finished.
Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Log-only changes, no tests required.
Commits

[x] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it.

When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added.

Code Quality

[x] Passes git diff upstream/master -u -- "*.py" | flake8 --diff

Codecov Report

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

@@           Coverage Diff           @@
##           master    #3827   +/-   ##
=======================================
  Coverage   77.43%   77.43%
=======================================
  Files         203      203
  Lines       15846    15846
=======================================
  Hits        12271    12271
  Misses       3575     3575

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 5be025d...29fce50. Read the comment docs.

I'm okay with this. @kaxil any thoughts?

LGTM


Fixed a crashed caused by using self after deint was done.

The stopSession method uses an asynchronous call, The crash occurred on the following scenario:

CameraEngine is used in some ViewController, hereafter called CameraViewController
After a while CameraViewController is dismissed, hence causing the invocation of the deinit method of CameraEngine.
CameraEngine's deinit calls stopSession which uses dispatch_async.
due to the asynchronous nature of dispatch_async, the stopSession's closure is called after CameraEngine was freed - therefore self.session.stopRunning() is causing a crash.

To fix this problem I just saved a local reference to session and used it to call stopRunning.

I tried in my side, and I got the same issue. Your PR fixed it.


Update env variables with secrets values

This PR updates currently hardcoded values to use secrets, therefore the secrets will need to be updated separately before this change can take effect.

We do appreciate your time and contribution but I'm going to close out this PR for now. 🙇🏻♂
If you strongly disagree with my assessment, please reopen open this PR against the new [ProgramEquity/amplify] repo instead of here. 🙏🏻


New Associate Member Application: Ruby Central, Inc.

What is your name?  Adarsh Pandit
What is your email<EMAIL_ADDRESS>What is your member company?  Ruby Central, Inc.
Identify which category their organization falls under:  Non-profit
Link to your website:  rubycentral.org
What is your organizational mission statement:   Ruby Central is a non-profit organization dedicated to supporting the worldwide Ruby community. We organize the annual RubyConf and RailsConf software conferences, support community growth, and provide vital infrastructure for the Ruby programming language.
What are your organization’s aspirations for contributing to the OpenSSF, and how do you anticipate that your membership will bolster the OpenSSF's growth and support?  Working together on the DARPA AI initiative and others, working together on fundraising.
Could you summarize your organization’s contributions to OpenSSF?   Attendance in DARPA AI initiative meetings (1 so far).
Please include any contributions made to OpenSSF or other OpenSSF projects and open-source projects developed using any OpenSSF dependencies.  Unknown
How many developers do you expect to have contribute to OpenSSF projects in the next 6-12 months? Are there other roles such as researchers, analysts or any other positions that you plan on contributing?  two others from the leadership team
How do you currently leverage any OpenSSF resources in your organization?  Using the Principles for Package Repository Security
Do you have signing authority for your entire institution? If no, who does?  Yes
Do you agree to follow the OpenSSF Code of Conduct  Yes
1. Organizational Information/Alignment:
Organizational Mission Alignment:

Does the organization's mission statement align with the goals of OpenSSF, such as promoting open source security, enhancing software supply chain integrity, or contributing to cybersecurity education?

[X] Yes

Non-Profit, Government, or Academic Status:

Is the organization a recognized non-profit, government agency, or academic institution?

[X] Yes

Brand Alignment and Reputation:

Is the organization in good standing within its community and the broader open source ecosystem, with a reputation that aligns with OpenSSF's values and brand?

[X] Yes

2. Commitment to Open Source Security and Contribution:
Commitment to Contribution:

Has the organization demonstrated a clear interest in actively contributing to the OpenSSF community through development, research, or other relevant activities?

[X] Yes

Can the organization commit to contributing a specified minimum number of developers, researchers, analysts, or other professionals to OpenSSF projects within the next 6-12 months?

[X] Yes

Commitment to Open Source Security:

Has the organization previously contributed to OpenSSF or other open-source projects?

[X] Yes

Does the organization maintain or contribute to open-source projects that use OpenSSF dependencies or tools?

[X] Yes

Commitment to Open Source Security:

Does the organization have a history or a nascent plan to promote, improve, or contribute to open source security beyond its participation in OpenSSF?

[X] Yes

Utilization of OpenSSF Resources:

Does the organization currently leverage OpenSSF resources, tools, or frameworks within its operations or projects?

Unknown

Educational and Community Engagement:

Does the organization engage in educational activities, community outreach, or other efforts to spread awareness about open source security?

[X] Yes

3. Compliance and Ethics:
Open Source Licensing and Compliance:

Does the organization adhere to open source licensing standards and demonstrate compliance with open source security best practices?

[X] Yes

No Conflict of Interest:

Can the organization certify that its membership and contributions to OpenSSF will not pose a conflict of interest with the foundation's objectives and policies?

[X] Yes

They were approved by the GC in a Vote on June 27


aiohttp.ClientSession connection leaking in SharedTokenCacheCredential when passing session in DefaultAzureCredential()

Package Name & Version:  azure-identity (1.17.1), azure-storage-blob (12.22.0)
Operating System: Mac Sonoma
Python Version: 3.12

Describe the bug
I'm using container client to perform operations on blob storage. The container client is initialized as:
class AzureStorage:

    def __init__(self, account_url, container_name):
        self.credential = DefaultAzureCredential(session=aiohttp.ClientSession())

        self.container_client = ContainerClient(
            account_url=account_url,
            container_name=container_name,
            credential=self.credential,
        )

    async def shutdown(self):
        await self.credential.close()
        await self.container_client.close()

)

On application shutdown, I invoke shutdown() that closes the client & credential:
However, even after shutdown() when I print objects (using gc.get_objects()), I can see that there is a ClientSession object still held by SharedTokenCacheCredential. I confirmed it with objgraph.

On debugging, I found that the session stored inside self._client_kwargs["session"] is not getting closed here
To Reproduce
Run this script:
import asyncio
import gc
import tracemalloc
from collections import defaultdict

import aiohttp
import objgraph
from azure.identity.aio import DefaultAzureCredential
from azure.storage.blob.aio import ContainerClient

class AzureStorage:

    def __init__(self, account_url, container_name):
        self.credential = DefaultAzureCredential(session=aiohttp.ClientSession())

        self.container_client = ContainerClient(
            account_url=account_url,
            container_name=container_name,
            credential=self.credential,
        )

    async def shutdown(self):
        await self.credential.close()
        await self.container_client.close()

def get_objects_in_memory(trace_type=None, draw=False):
    # Start tracing memory allocations
    tracemalloc.start()

    # Force a garbage collection to get accurate results
    gc.collect()

    # Get all objects tracked by the garbage collector
    objects = gc.get_objects()

    # Create a defaultdict to store counts of each type
    type_counts = defaultdict(int)

    # Count objects by type and store ClientSession objects
    for obj in objects:
        obj_type = type(obj).__name__
        type_counts[obj_type] += 1
        if obj_type == trace_type:
            if draw:
                objgraph.show_backrefs([obj], filename="client_session.png")

    return type_counts

async def main():

    storage = AzureStorage("<account-url>", "<container-name>")

    print("\nCurrent ClientSession objects count: ", get_objects_in_memory(trace_type="ClientSession")["ClientSession"])

    print("\n\n\n\n Closing connections")

    await storage.shutdown()

    print("\nCurrent ClientSession objects count: ", get_objects_in_memory(trace_type="ClientSession", draw=True)["ClientSession"]) # I expect this to be 0

if __name__ == '__main__':
    asyncio.run(main())

Expected behavior
I expect all relevant client sessions to be closed on invoking shutdown()
Screenshots
Added in-line above
Additional context
When I add these lines to this
    async def close(self) -> None:
        """Close the credential's transport session."""
        if "session" in self._client_kwargs and self._client_kwargs["session"]:
            await self._client_kwargs["session"].close()
            self._client_kwargs["session"] = None
        if self._client:
            await self._client.__aexit__()  # type: ignore

I can see that this closes the connection properly, and GC count shows 0 which is expected. I'm not a 100% sure if this is the right fix, please check and let me know.

Thanks for reaching out.
DefaultAzureCredential manages sessions for you.
Could you share the reason why you create a session instance when you create DefaultAzureCredential?

Thanks for the information.
Do you want to manage the lifecycle of the session object or not?
If you want to manage the lifetime of the session instance, you need to add session_owner=False when you create the client.
self.credential = DefaultAzureCredential(session=aiohttp.ClientSession(), session_owner=False)
and you need to close the session by yourself.


Request support for Powerworld PW58330 heat pump

Log Message
I have created a config file for a heat pump device pw58330 from the PowerWorld company.
Information about DPS mappings
Config file (yaml) attached as txt file:
powerworld_pw58330_heatpump.txt
Product ID
Model: Low Gwp R290 Monoblock Heat Pumps
Website:  https://www.powerworldhp.com/heat-pump/home-heat-pump/low-gwp-r290-monoblock-heat-pumps.html
Information about how the device functions
R290 full DC monoblock heat pump
China Custom Low Gwp R290 Monoblock Heat Pumps Manufacturers Suppliers.pdf

Hi, I also have a PowerWorld heat pump, I would like to know if you have integrated it into home assistant, tuya intergation find the cloud device, but do not show the entity :-(
Thanks see you soon

I've got the same issue with my PowerWorld PW58410 heatpump.
Working fine in the Smartlife app, but adding it to HA via the Tuya, LocalTuya or Tuya Local app gives me nothing but a simple switch.
Did you guys find a solution?

There really isn't enough information here to make a good quality integration.  It is missing temperature adjustments completely.
There is no further information available to improve on this, so it would help if you can gather logs and iot.tuya.com info from the QueryThingsDataModel API call, if you are interested in getting support for this.

Thanks for your reply!
Here is some info on the heatpump  model:
"model": "PW58410",
"name": "My house heat pump",
"product_id": "74jzzoqr2ghxyu1p",
"product_name": "My house heat pump",
This is the information from the QueryThingsDataModel API:
{
"result": {
"model": "{"modelId":"fc1fls","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[{"abilityId":1,"accessMode":"rw","code":"switch","description":"","extensions":{"iconName":"icon-dp_power2","attribute":"1664"},"name":"开关","typeSpec":{"type":"bool"}},{"abilityId":2,"accessMode":"rw","code":"mode","description":"智能；强劲；静音","extensions":{"iconName":"icon-dp_mode","attribute":"1152"},"name":"频率模式","typeSpec":{"type":"enum","range":["smart","strong","mute"]}},{"abilityId":5,"accessMode":"rw","code":"work_mode","description":"热水模式；制热模式；制冷模式；热水+制热；热水+制冷","extensions":{"iconName":"icon-dp_mode","attribute":"1152"},"name":"运行模式","typeSpec":{"type":"enum","range":["wth","heat","cool","wth_heat","wth_cool"]}},{"abilityId":6,"accessMode":"rw","code":"temp_unit_convert","description":"摄氏度；华氏度","extensions":{"iconName":"icon-dp_mode","attribute":"1152"},"name":"温标切换","typeSpec":{"type":"enum","range":["c","f"]}},{"abilityId":15,"accessMode":"ro","code":"fault","description":"","extensions":{"iconName":"icon-baojing","scope":"fault","attribute":"1152"},"name":"故障告警","typeSpec":{"type":"bitmap","label":["Er03","Er04","Er05","Er06","Er09","Er10","Er12","Er14","Er15","Er16","Er18","Er20","Er21","Er23","Er26","Er27","Er29","Er32","Er33","Er34","Er42","Er62","Er63","Er64","Er66","Er67","Er68","Er69","Er70","Er73"],"maxlen":30}},{"abilityId":101,"accessMode":"ro","code":"status_parameter_group_1","description":"","name":"状态参数组1","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":110,"accessMode":"rw","code":"hot_water_set","description":"","name":"热水设定温度","typeSpec":{"type":"value","max":99,"min":0,"scale":0,"step":1,"unit":"℃"}},{"abilityId":111,"accessMode":"rw","code":"heating_setting","description":"","name":"制热设定温度","typeSpec":{"type":"value","max":99,"min":0,"scale":0,"step":1,"unit":"℃"}},{"abilityId":112,"accessMode":"rw","code":"cooling_setting","description":"","name":"制冷设定温度","typeSpec":{"type":"value","max":99,"min":0,"scale":0,"step":1,"unit":"℃"}},{"abilityId":118,"accessMode":"rw","code":"parameter_group_1","description":"此DP点包含20个参数，1个参数占4个字节（参考数值型）","name":"参数组1","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":119,"accessMode":"rw","code":"parameter_group_2","description":"","name":"参数组2","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":120,"accessMode":"rw","code":"parameter_group_3","description":"","name":"参数组3","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":121,"accessMode":"rw","code":"parameter_group_4","description":"","name":"参数组4","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":122,"accessMode":"rw","code":"parameter_group_5","description":"","name":"参数组5","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":123,"accessMode":"rw","code":"parameter_group_6","description":"","name":"参数组6","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":124,"accessMode":"rw","code":"parameter_group_7","description":"","name":"参数组7","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":125,"accessMode":"wr","code":"reset","description":"按键操作在关机下有效且下发完成后复位该功能","name":"一键复位默认值","typeSpec":{"type":"bool"}},{"abilityId":126,"accessMode":"rw","code":"parameter_group_8","description":"","name":"参数组8","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":140,"accessMode":"rw","code":"parameter_group_23","description":"电量统计专用参数组标识符必须使用 \nparameter_group_23","name":"电量统计专用参数组","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":199,"accessMode":"ro","code":"custom_fault_bit","description":"","name":"自定义故障","typeSpec":{"type":"value","max":999999999,"min":0,"scale":0,"step":1,"unit":""}}]}]}"
},
"success": true,
"t":<PHONE_NUMBER>266,
"tid": "fdd24501893611efbc016e7818a0f8a2"
}
I got some entities working (on localtuya, with manual DP), but not the parameter_groups. Some deliver RAW data in HA, but i cant figure out how to translate it.
I hope there can be a way to import the heatpump into HA.
Thanks in advance for your help!
Kind regards N

There are still no logs, so a high probability that the config will not match, but a first pass has been done. Note in the QueryThingsData API, there is no temperature sensor dps, only the temperature setting dps. This is the opposite from the submitted config, which had more temperature sensors than was reasonable, but no setting.
I don't know if the submitted config was just copy and paste of irrelevant sensors, or it is incompatible with the PW58410, but for now I've gone with the PW58410 for the installed config, as QueryThingsDataModel info is generally accurate.

In my homeassistant (core) the config I provided above has been working just fine....
You can setup it in your homeassistant manually like this:

Rename powerworld_pw58330_heatpump.txt to powerworld_pw58330_heatpump.yaml
Copy it to /home/homeassistant/.homeassistant/custom_components/tuya_local/devices as homeassistant user
Restart Homeassistant

You should be able to see a new integration among the tuya_local devices in the Integrations of Homeassistant

On the https://eu.platform.tuya.com/ my device is visible as:
Product Name 复制-PW58330
Product Category znrb

I am not sure if that is important but also on the https://eu.platform.tuya.com/ I made this change:

On the Configure Control Instruction Mode page https://platform.tuya.com/cloud/setMode?id=....
I have changed "Standard Instruction" setting to "DP Instruction"

Thus, in my Homeassistant I can see the integration with my PW heatpump as follows:

Hi, thanks for all your reply's.
I added the file Powerworld_pw58330_heatpump as you said. (also make a similar file named Powerworld_pw58410_heatpump)
But when i add the device again in tuya local i don't get a good device type in the menu:

This is my log, i hope it is something you can work with. I'm not familiar with it..
log.txt

Thank you, the added config appears to match that log.
powerworld_pw58410_waterheater matched 100%
  water_heater:
   operation_mode: Hot water + heating
   work_mode: wth_heat
   temperature_unit: C
   temperature: 50
   parameter_group_1: None
   parameter_group_2: None
   parameter_group_3: None
   parameter_group_4: None
   parameter_group_5: None
   parameter_group_6: None
   parameter_group_7: None
   parameter_group_8: None
   power_statistics: None
  climate_heater:
    preset_mode: comfort
    hvac_mode: heat
    temperature_unit: C
    temperature: 30
    cool_temp: 12
  select_temperature_unit:
    option: celsius
  binary_sensor_problem:
    sensor: False
    fault_code: 0
    custom_fault_bit: 0
  button_factory_reset:
    button: None

The screenshots for the PW58330 device seem to show that intemp and outtemp are instructions (settable values), so these may be related to the water and heating temperatures.
It would be useful, since you appear to have access to iot.tuya.com to provide the QueryThingsDataModel result and logs from this integration as requested in the new device issue template

yes, my model is this:
{
"result": {
"model": "{"modelId":"e1ept4","services":[{"actions":[],"code":"","description":"","events":[],"name":"默认服务","properties":[{"abilityId":1,"accessMode":"rw","code":"switch","description":"","extensions":{"iconName":"icon-dp_power2","attribute":"1664"},"name":"开关","typeSpec":{"type":"bool"}},{"abilityId":2,"accessMode":"rw","code":"mode","description":"智能；强劲；静音","extensions":{"iconName":"icon-dp_mode","attribute":"1152"},"name":"运行模式","typeSpec":{"type":"enum","range":["smart","strong","mute"]}},{"abilityId":5,"accessMode":"rw","code":"work_mode","description":"热水模式；制热模式；制冷模式；热水+制热；热水+制冷","extensions":{"iconName":"icon-dp_mode","attribute":"1152"},"name":"工作模式","typeSpec":{"type":"enum","range":["wth","heat","cool","wth_heat","wth_cool"]}},{"abilityId":6,"accessMode":"rw","code":"temp_unit_convert","description":"摄氏度；华氏度","extensions":{"iconName":"icon-dp_mode","attribute":"1152"},"name":"温标切换","typeSpec":{"type":"enum","range":["c","f"]}},{"abilityId":15,"accessMode":"ro","code":"fault","description":"","extensions":{"iconName":"icon-baojing","scope":"fault","attribute":"1152"},"name":"故障告警","typeSpec":{"type":"bitmap","label":["Er03","Er04","Er05","Er06","Er09","Er10","Er12","Er14","Er15","Er16","Er18","Er20","Er21","Er23","Er26","Er27","Er29","Er32","Er33","Er34","Er42","Er62","Er63","Er64","Er66","Er67","Er68","Er69","Er70"],"maxlen":29}},{"abilityId":101,"accessMode":"ro","code":"intemp","description":"","name":"进水温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":102,"accessMode":"ro","code":"outtemp","description":"","name":"出水温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":103,"accessMode":"ro","code":"whjtemp","description":"","name":"环境温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":104,"accessMode":"ro","code":"cmptemp","description":"","name":"排气温度","typeSpec":{"type":"value","max":400,"min":0,"scale":0,"step":1,"unit":"℃"}},{"abilityId":105,"accessMode":"ro","code":"hqtemp","description":"","name":"回气温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":106,"accessMode":"ro","code":"ptemp","description":"","name":"外盘管温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":107,"accessMode":"ro","code":"cptemp","description":"","name":"制冷盘管温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":108,"accessMode":"ro","code":"wttemp","description":"","name":"水箱温度","typeSpec":{"type":"value","max":220,"min":-50,"scale":0,"step":1,"unit":"℃"}},{"abilityId":109,"accessMode":"ro","code":"step_run","description":"","name":"主阀膨胀开度","typeSpec":{"type":"value","max":500,"min":0,"scale":0,"step":1,"unit":"P"}},{"abilityId":111,"accessMode":"ro","code":"stepb_run","description":"","name":"增焓膨胀阀开度","typeSpec":{"type":"value","max":500,"min":0,"scale":0,"step":1,"unit":"P"}},{"abilityId":112,"accessMode":"ro","code":"cmp_cur","description":"","name":"压机电流","typeSpec":{"type":"value","max":65,"min":0,"scale":0,"step":1,"unit":"A"}},{"abilityId":113,"accessMode":"ro","code":"sink_temp","description":"","name":"散热片温度","typeSpec":{"type":"value","max":220,"min":-99,"scale":0,"step":1,"unit":"℃"}},{"abilityId":114,"accessMode":"ro","code":"dc_bus_voltage","description":"","name":"直流母线电压值","typeSpec":{"type":"value","max":380,"min":0,"scale":0,"step":1,"unit":"V"}},{"abilityId":115,"accessMode":"ro","code":"cmp_act_frep","description":"","name":"压机实际频率","typeSpec":{"type":"value","max":500,"min":0,"scale":0,"step":1,"unit":"Hz"}},{"abilityId":116,"accessMode":"ro","code":"dc_fan_speed","description":"","name":"直流风机1风速","typeSpec":{"type":"value","max":2000,"min":0,"scale":0,"step":1,"unit":""}},{"abilityId":117,"accessMode":"ro","code":"dc_fan2_speed","description":"","name":"直流风机2风速","typeSpec":{"type":"value","max":2000,"min":0,"scale":0,"step":1,"unit":""}},{"abilityId":118,"accessMode":"rw","code":"parameter_group_1","description":"此DP点包含20个参数，1个参数占4个字节（参考数值型）","name":"参数组1","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":119,"accessMode":"rw","code":"parameter_group_2","description":"","name":"参数组2","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":120,"accessMode":"rw","code":"parameter_group_3","description":"","name":"参数组3","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":121,"accessMode":"rw","code":"parameter_group_4","description":"","name":"参数组4","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":122,"accessMode":"rw","code":"parameter_group_5","description":"","name":"参数组5","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":123,"accessMode":"rw","code":"parameter_group_6","description":"","name":"参数组6","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":124,"accessMode":"rw","code":"parameter_group_7","description":"","name":"参数组7","typeSpec":{"type":"raw","maxlen":128}},{"abilityId":125,"accessMode":"wr","code":"reset","description":"按键操作在关机下有效且下发完成后复位该功能","name":"一键复位默认值","typeSpec":{"type":"bool"}}]}]}"
},
"success": true,
"t":<PHONE_NUMBER>652,
"tid": "3d5d07cd896711efb77736033862a1ba"
}

Thank you, the added config appears to match that log.
powerworld_pw58410_waterheater matched 100%
  water_heater:
   operation_mode: Hot water + heating
   work_mode: wth_heat
   temperature_unit: C
   temperature: 50
   parameter_group_1: None
   parameter_group_2: None
   parameter_group_3: None
   parameter_group_4: None
   parameter_group_5: None
   parameter_group_6: None
   parameter_group_7: None
   parameter_group_8: None
   power_statistics: None
  climate_heater:
    preset_mode: comfort
    hvac_mode: heat
    temperature_unit: C
    temperature: 30
    cool_temp: 12
  select_temperature_unit:
    option: celsius
  binary_sensor_problem:
    sensor: False
    fault_code: 0
    custom_fault_bit: 0
  button_factory_reset:
    button: None

Thanks! Where should is use this config?

I have many tuya devices so it is a mess in my log file related to messages from my tuya devices.... I have tried to filter out ones for my PowerWorld heatpump device.
2024-10-13 16:41:49.122 DEBUG (SyncWorker_4) [custom_components.tuya_local.helpers.device_config] Loaded device config powerworld_pw58330_heatpump.yaml
2024-10-13 16:43:26.937 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] option values: ['Smart', 'Powerful', 'Quiet']
2024-10-13 16:43:26.937 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] PowerWorld PW58330 Heatpump: Mapped dps 2 value from mute to Quiet
2024-10-13 16:43:26.937 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] PowerWorld PW58330 Heatpump: Mapped dps 2 value from mute to Quiet
2024-10-13 16:43:26.937 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] option values: ['Smart', 'Powerful', 'Quiet']
2024-10-13 16:43:26.938 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] option values: ['HotWater', 'Heat', 'Cool', 'HotWater+Heat', 'HotWater+Cool']
2024-10-13 16:43:26.938 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] PowerWorld PW58330 Heatpump: Mapped dps 5 value from heat to Heat
2024-10-13 16:43:26.938 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] PowerWorld PW58330 Heatpump: Mapped dps 5 value from heat to Heat
2024-10-13 16:43:26.938 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] option values: ['HotWater', 'Heat', 'Cool', 'HotWater+Heat', 'HotWater+Cool']
2024-10-13 16:43:26.938 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 101 (sensor), unable to determine valid values
2024-10-13 16:43:26.939 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 102 (sensor), unable to determine valid values
2024-10-13 16:43:26.939 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 103 (sensor), unable to determine valid values
2024-10-13 16:43:26.939 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 104 (sensor), unable to determine valid values
2024-10-13 16:43:26.940 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 105 (sensor), unable to determine valid values
2024-10-13 16:43:26.940 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 106 (sensor), unable to determine valid values
2024-10-13 16:43:26.940 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 107 (sensor), unable to determine valid values
2024-10-13 16:43:26.941 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 108 (sensor), unable to determine valid values
2024-10-13 16:43:26.941 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 109 (sensor), unable to determine valid values
2024-10-13 16:43:26.941 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 111 (sensor), unable to determine valid values
2024-10-13 16:43:26.941 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 112 (sensor), unable to determine valid values
2024-10-13 16:43:26.942 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 113 (sensor), unable to determine valid values
2024-10-13 16:43:26.942 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 114 (sensor), unable to determine valid values
2024-10-13 16:43:26.943 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 115 (sensor), unable to determine valid values
2024-10-13 16:43:26.944 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 116 (sensor), unable to determine valid values
2024-10-13 16:43:26.944 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 117 (sensor), unable to determine valid values
2024-10-13 16:43:26.944 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 118 (sensor), unable to determine valid values
2024-10-13 16:43:26.944 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 118 (sensor), unable to determine valid values
2024-10-13 16:43:26.945 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 119 (sensor), unable to determine valid values
2024-10-13 16:43:26.945 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 119 (sensor), unable to determine valid values
2024-10-13 16:43:26.945 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 120 (sensor), unable to determine valid values
2024-10-13 16:43:26.945 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 120 (sensor), unable to determine valid values
2024-10-13 16:43:26.945 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 121 (sensor), unable to determine valid values
2024-10-13 16:43:26.945 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 121 (sensor), unable to determine valid values
2024-10-13 16:43:26.946 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 122 (sensor), unable to determine valid values
2024-10-13 16:43:26.946 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 122 (sensor), unable to determine valid values
2024-10-13 16:43:26.946 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 123 (sensor), unable to determine valid values
2024-10-13 16:43:26.946 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 123 (sensor), unable to determine valid values
2024-10-13 16:43:26.947 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 124 (sensor), unable to determine valid values
2024-10-13 16:43:26.947 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] No mapping for dpid 124 (sensor), unable to determine valid values
2024-10-13 16:43:27.791 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] Considering mapping for range of value
2024-10-13 16:43:27.791 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] Considering mapping for range of value
2024-10-13 16:43:27.791 DEBUG (MainThread) [custom_components.tuya_local.helpers.device_config] Considering mapping for step of value

At this moment i cant figure out what to do?
I've added the JSON files, but it didnt work.
Where should i use the config code of Jason Rumney?
Kind regards

Download the file at https://github.com/make-all/tuya-local/blob/main/custom_components/tuya_local/devices/powerworld_pw58410_waterheater.yaml to your config/custom_components/tuya_local/devices/ directory.

Great, its integrated! Thanks!
I got some of the entities visible.
Is there a way how i can add the other parameter(groups)?

Parameter groups were added as attributes under the water_heater, since they do not seem useful to surface in the UI as sensors.  If you want them in the UI, the tile and entity cards give the option of displaying an attribute instead of the main state of the entity.

Hello Jason,
Thanks again!
Could you make it possible to read all the parametergroups etc. as sensors. So that it can be an input value for an automation in the future. I'm hoping to track the power-, temperature- and COP value.
For the most of the parameter groups the value's of the sensor would be RAW date, something like AAAAGwAAACEAAAAKAAA....etc.
Is there a way that we can translate these values to something usefull.
Thanks!!

Attributes can also be read by automations.  I don't see any advantage to having them as sensors given the unreadable encoded binary data they contain.

I am using pyscript to decode such values AAAAGwAAACEAAAAKAAA....etc.
This is an encoded string of values... You need to figure out which value in the string belongs to your heatpump sensor value. You can do it by matching the decoded value to a value shown in your Tuya app for the device.
Here is my simple code to decode the param1 and set its values to a sensor(s) from Homeassistant.
This is a content of my write_pw_heatpump_parameter1.py file below...
import base64
@service()
def write_pw_heatpump_parameter1():
task.unique("write_pw_heatpump_parameter1")
param1_sensor = "sensor.pw_heatpump_parameter_group_1"
try:
    prev_valueBase64 = str(state.get(param1_sensor))
    #log.warning("prev_valueBase64: " + prev_valueBase64)

    if len(prev_valueBase64) == 108:
        prev_valueHex = base64.b64decode(prev_valueBase64).hex()
        #log.warning("prev_valueHex: " + prev_valueHex)
        if len(prev_valueHex) == 160:
            map_Values = map(''.join, zip(*[iter(prev_valueHex)]*8))
            list_Values = list(map_Values)
            if len(list_Values) == 20:
                #log.warning("list_Values: " + str(list_Values))
                log.warning("list_Values[0]: " + str(list_Values[0]) + ' ' + str(to_s16(list_Values[0])) )
                log.warning("list_Values[1]: " + str(list_Values[1]) + ' ' + str(to_s16(list_Values[1])) )
                log.warning("list_Values[15]: " + str(list_Values[15]) + ' ' + str(to_s16(list_Values[15])) )
                log.warning("list_Values[0] hex: " + str(list_Values[0]) + ' ' + from_s16(to_s16(list_Values[0])) )
                log.warning("list_Values[1] hex: " + str(list_Values[1]) + ' ' + from_s16(to_s16(list_Values[1])) )
                log.warning("list_Values[15] hex: " + str(list_Values[15]) + ' ' + from_s16(to_s16(list_Values[15])) )
                # state.set("sensor.pw_unit_status", value=prev_valueBase64)
except Exception as ex:
    log.warning(ex)

def to_s16(value):
val = int(value, 16)
return -(val & 0x8000) | (val & 0x7fff)
def from_s16(value):
return "{:08x}".format((int(value) & 0xFFFFFFFF), '08x')

According to the documentation they are all lists of 4 byte values, but there is no description of which values are where.
If some can be figured out, it would be possible to add sensors, or numbers if they are adjustable, for those values using base64 type and a mask for the value.

For parameter group 1 i got the following from Query Things Data Model
"This DP point contains 20 parameters, 1 parameter occupies 4 bytes (refer to numerical type)"

r the water_heater, since they do not seem useful to surface in the UI as sensors. If you want them in the UI, the tile an
Sorry DSLAVA70 i am not experienced enough to know what to do with this information, can you maybe write a small instruction?
Thanks in advance!

I found a way to translate the first parametergroup 1

16: retour water temperature
18: output water temperature
14: outside temperature (surrounding)
21: exhaust gas temperature
24: retour gas temperature
10: temperature evaporator
12: temperature cooling battery
49: temperature WTH boiler
350: pressure (P) expansionvalve
0: pressure (P) assistant expansionvalve
0: power (A) compressor
40: temp cooling body
566: DC bus (Volts)
0: compression frequentie (Hz)
0: Windrotationspeed 1 (rpm)
0: Windrotationspeed 2 (rpm)
5: pressuresensor (Bar)
10: temperature low pressure
0: PV signal
0: SG signal

DP 140 (parametergroup 23) shows the following:

0: Heating capacity (KW)
0: Water Flowrate (m³/h)
0: power debit (A)
231: voltage (V)
0: power usage (W)
0: COP (coeficient of performance, very important!)
0: set percentage of rotational speed DC-waterpump (%)
0: actual rotional speed DC-waterpump (%)

Could you guys please, please, please give me a way on which i can get the values in the above parameter groups 1 and 23 into separate sensors (normal numers) in home assistant. This way i can log the performance of the heatpump, which is not possible in the native tuya app.
I hope you've got the needed info from my translation from above.
Thanks in advance!

Thanks Jason!
I've got most of the sensors visible.
I added the log for you to check.

tuya_local-01JA60Y74P85BMAHM1X7Q9TXMX-Water heat pump N 141024-925a46d73f891ff2cc9d293274f80f40.json
log 241016.txt

Turned the heatpump on and several values started working.
Heating capacity and Volume flow need an ajustment on the decimal point

Incredible job!! I'm so happy with your help.
All the sensors show the information now!
I'll keep tracking the coming days and share the result.
Thank you so much!

Works great for the last couple of days. I noticed that the cop has to be adjusted with a decimal; from for example 50 > 5.0

Hi, I'm new here I also have a power world PW58410 heat pump which is only installed as a heating hvac system.
However, when using tuya-local I am not able to turn on the heat pump using the climate.water_heat_pump_heater.
But the water_heater.water_heat_pump is able to turn the system on when it is set to heating.
I am completely new to home assistant, so I have attempted to change the code in the YAML files to attempt to imitate device turn on and turn off from the water heater in the climate files, but I have had no progress yet. Could you maybe help me in fixing this? :)

I have added an additional config for using the PW58410 device primarily for HVAC only.
The same can be done for PW58330 and other similar devices that are already supported if the demand is there.

Yes, please add a config for the PW58410 device primarily for HVAC only.
Also, I have added missing properties which can be retrieved from the base64 parameters. Names of the properties are taken from the Tuya app for the device.
Additionally, I have found an issue in the tuya_local code - after applying a mask for the the base64 value, if the value is a negative  value (signed int), tuya_local displays in an unsigned int resulting that -20 is dysplayed as<PHONE_NUMBER>.  I have temporarily applied a local fix to in my tuya_local version until it is fixed in tuya_local.
powerworld_pw58330_waterheater.txt

I have added an additional config for using the PW58410 device primarily for HVAC only. The same can be done for PW58330 and other similar devices that are already supported if the demand is there.

Thank you so much! It works perfectly now :)

With updating tuya local in HA, the config text for the device PW58410 changed. It misses the sensor masking in the Base 64 parametergroups.
I manually copied the text into it again.. and the different sensors are back.

Just want to say thanks to everyone for adding support for this. Works very well with home assistant
Works well with my Powerworld R290 11kW Air Source to Water heat pump. (PW040-DKZLRS-E/S)
However I have discovered a bug. I use the pump in silent mode(use the operator panel/HMI to set Silent mode). When I do this the tuya local integration shifts to 'Sleep' mode on the unit.
I assume this is due to the mapping from the thermostat card in home assistant is mapped from Sleep to Silent.
When the thermostat card in home assistant for the unit is in sleep mode and I change temperature, the temperature changes. But after a few seconds it always goes back to 35 degrees. (even tho the display and Tuya app shows the new temperature)
Any way to fix this?

Yeah, the ‘sleep’ is synonymous for silent in the JSON file of the API i believe. So its just the name i guess.
Regarding the temperature, i dont use it so cant help you with that. Kind regards

It seems the new temperature is not fed back from the device. The integration will show the local value for a few seconds or until the device sends an update, but if no update is received, it will assume the device did not accept the new value.
This could be because the receive connection has been blocked by another local protocol user, or it may be a problem with the device.

Yes, please add a config for the PW58330 device for HVAC too. Also, I have added missing properties which can be retrieved from the base64 parameters. Names of the properties are taken from the Tuya app for the device. Additionally, I have found an issue in the tuya_local code - after applying a mask for the base64 value, if the resulting value is a negative value (signed int), tuya_local displays it as an unsigned int resulting that -15 is displayed as<PHONE_NUMBER>. I have temporarily applied a local fix in my tuya_local version until it is fixed in tuya_local.
powerworld_pw58330_waterheater.txt

I've got a similar model (PW58386) and combining bits n pieces from your config as well as the PW58410 I was able to get all the basics working BUT: Does your model report those base64/parameter_group_x DPs or can you send base64 values back to set the target temperature for example?
  - entity: sensor
    name: Heating target Temperature
    class: temperature
    category: diagnostic
    dps:
      - id: 118
        type: base64
        optional: true
        name: sensor
        scale: 0.1
        mapping:
          - mask: "00000000000000000000000000000000FFFFFFFF00000000\
<PHONE_NUMBER>00000000000000000000000000000000000000\
<PHONE_NUMBER>00000000000000000000000000000000000000\
<PHONE_NUMBER>000000"

As a sensor, it will only get populated if I change any setting on the pump itself or via app, but apart from that it never show up, not even in the cloud/device logs
I tried moving thise value into the hvac part as 'target_temperature' and as soon as I use the app to update ANY parameter and force a report of the "parameter_group_X" DPs I see the value on the climate card, but changing the dial does nothing on the device itself :'(
I played around with tinytuya and UPDATEDPS or DP_QUERY to no success.
Normal logs when nothing is happening via app or physically:

Logs just when I change a setting in the app after dp140 appeared in the logs:

My current progress of figuring out what is what with those parameter_groups
notes.md
My working havc-only config so far
powerworld_pw58386_hvaconly.txt
And just for another datapoint: export from tuya query properties:
tuya-query-properties.txt
Any ideas on the matter?

Hi, I have a Power World PW060 heatpump and I'm looking to achieve the same as some of you already achieved, which means getting the right data in HA. Almost all of the data [DP] looks similar so that should not be the issue.
Unfortunately I'm missing some pieces of information to get it working.
I have retrieved my device local key via tinytuya.
When trying to add the device by using local tuya the device us automatically recognised and the key is automatically added as well. And I have configured 1 DP [ the on/off button].
What is not clear to me yet, is how to get the rest of the heatpump data/entities in HA/Local tuya?
I have tried to install the YAML file mentioned in the given location [ do I need to change the device ID in the yaml file?]
The file location can not be found in my HA setup, the location I have is
/config/custom_components/localtuya there is no devices directory.
If maybe can provide a little more step by step approach or hints to get it to work that would be awesome!
Thanks,

Hi, I have a Power World PW060 heatpump and I'm looking to achieve the same as some of you already achieved, which means getting the right data in HA. Almost all of the data [DP] looks similar so that should not be the issue.
Unfortunately I'm missing some pieces of information to get it working.
I have retrieved my device local key via tinytuya.
When trying to add the device by using local tuya the device us automatically recognised and the key is automatically added as well. And I have configured 1 DP [ the on/off button].
What is not clear to me yet, is how to get the rest of the heatpump data/entities in HA/Local tuya without manually adding all the missing entities?
I have tried to install the YAML file mentioned in the given location [ do I need to change the device ID in the yaml file?]
The file location can not be found in my HA setup, the location I have is
/config/custom_components/localtuya there is no devices directory.
If maybe someone can provide a little more step by step approach or hints to get it to work that would be awesome!
Thanks,

Hi, I have a Power World PW060 heatpump and I'm looking to achieve the same as some of you already achieved, which means getting the right data in HA. Almost all of the data [DPS] looks similar so that should not be the issue.
Unfortunately I'm missing some pieces of information to get it working.
I have retrieved my device local key via tinytuya.
When trying to add the device by using local tuya the device us automatically recognised and the key is automatically added as well. And I have configured 1 DP [ the on/off button].
What is not clear to me yet, is how to get the rest of the heatpump data/entities in HA/Local tuya without manually adding all the missing entities? I have tried to install the YAML file mentioned in the given location [ do I need to change the device ID in the yaml file?] The file location can not be found in my HA setup, the location I have is /config/custom_components/localtuya there is no devices directory.
If maybe someone can provide a little more step by step approach or hints to get it to work that would be awesome!
Thanks,

Common trap I also stumbled into:
local-tuya and tuya-local are two different things :)
The one where you only get 1 DP for on/off is local-tuya and over here with the custom yaml files is tuya-local which works with the above config and more DPs

Thanks for the quick response;
But when looking in HACS I can only find these two;
[image: image.png]
Can you maybe provide me a link where I can find add tuya local, I looked
but it seems I'm always being sent to LocalTuya integration.
Thanks,
On Tue, Nov 19, 2024 at 5:09 PM ctcDNightmare @.***>
wrote:

Hi, I have a Power World PW060 heatpump and I'm looking to achieve the
same as some of you already achieved, which means getting the right data in
HA. Almost all of the data [DPS] looks similar so that should not be the
issue.
Unfortunately I'm missing some pieces of information to get it working.
I have retrieved my device local key via tinytuya.
When trying to add the device by using local tuya the device us
automatically recognised and the key is automatically added as well. And I
have configured 1 DP [ the on/off button].
What is not clear to me yet, is how to get the rest of the heatpump
data/entities in HA/Local tuya without manually adding all the missing
entities? I have tried to install the YAML file mentioned in the given
location [ do I need to change the device ID in the yaml file?] The file
location can not be found in my HA setup, the location I have is
/config/custom_components/localtuya there is no devices directory.
If maybe someone can provide a little more step by step approach or hints
to get it to work that would be awesome!
Thanks,
Common trap I also stumbled into:
local-tuya and tuya-local are two different things :)
The one where you only get 1 DP for on/off is local-tuya and over here
with the custom yaml files is tuya-local which works with the above config
and more DPs
—
Reply to this email directly, view it on GitHub
https://github.com/make-all/tuya-local/issues/1530#issuecomment-2486139872,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMWJRME6EBE7KZGDT7FXACL2BNPEHAVCNFSM6AAAAABPPLYFF6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBWGEZTSOBXGI
.
You are receiving this because you commented.Message ID:
@.***>

Hi again,
Thanks for quick reply!
I have installed the tuya-local via HACS and I was able to install the heatpump using the pw58830 profile + waterheater.
There are however 3 values I noticed which do not seem to correct in the Diagnose overview;

Air return temperature,
Evaporator Coil and
Low Pressure

Is there a way I can fix this, or does this need a fix on tuya-local end?
Thanks for all the help!!!!

Hey, I noticed now that temperatures are getting lower that some of the temperature sensor values seem to be translated by home assistant to unsigned 32bit integers. Is it possible to change this such that the sensor values are interpreted as signed integers?

No, this is not generally possible when values are encoded together in a blob like this device does.

No, this is not generally possible when values are encoded together in a blob like this device does.

well cound't we, in theory,  have a flag to tell toya-local parse that it's a signed?
like using an S to indicate the sign bit and after extracting the bits, move the indicated bit << all the way left to have a signed 32bit afterwards?
        mapping:
          - mask: "0000000000000000000000000000000000000000SFFFFFFF\
<PHONE_NUMBER>00000000000000000000000000000000000000\
<PHONE_NUMBER>00000000000000000000000000000000000000\
<PHONE_NUMBER>000000"

or having signed: true besides type: base64?

That's the exact problem I have / was talking about in this thread. It will never get updated by the pump on it's own, only when we send it a new value (for the whole group), change it via app or physically at the pump.
Happens with all parameter_groups_1 to _8

It will never get updated

"it" being the parameter groups 1 to 8? because for me those do update frequently, for me it is the "Heating_setting_temperature" that takes long to update. But parameter_group_1, where this value interestingly enough is also stored, updates immediately upon changing the set temperature. I believe that the smart home app that is normally used with these pumps retrieves its information from this parameter group rather than the "heating_setting_temperature" because of this delay.

Well what are we talking about when talking about "delay" ? minutes? hours? days?
For me, it just won't send it's param_1 to _8 if I just leave stuff alone...

Only when I touch any controls in app/pump/via scripts will it get updated:

And the app gets the requests from the cloud if you're out of your wifi or switches to local wifi when at home.

Hi, I am new to home assistant and especially with the Tuya Local. I was using Local Tuya and it was working okay. The problem is that I cannot get the

Hi, thanks for all your reply's. I added the file Powerworld_pw58330_heatpump as you said. (also make a similar file named Powerworld_pw58410_heatpump) But when i add the device again in tuya local i don't get a good device type in the menu:

Hi, how you fixed this problem? I have been struggling for hours because I cannot get the device under the device type drop down menu.

Hello. I also have a poolworld heatpump. I´ve installed homeassistant and linked with tuya cloud (not local tuya and not tuya local). Is it possible to get this running with this since the heatpump is not in my local network?
The device shows up in home assistant as model "my house heat pump (unsupported).
I don´t get any datapoints from it. I´ve also iobroker which gets the data every minute from the cloud. here it works but i want all data incl. the groups data which need some more decoding, therefore tried with homeassistant but have not much knowledge with this system.

If there is a route to the network the heatpump is on, then it will work, but you will need to manually specify the IP address, as it will not be able to be discovered automatically.

I wonder why it doesn´t work pulling the data from the clould since iobroker does this every minute.
i can establish dynamic ip adress and portforwarding if i know the ports. how to install this config file?

This is a local integration, it does not pull data from the cloud.
If you have an issue with this integration, I suggest you open a new issue if you can describe it clearly enough with enough detail that someone without access to your device can debug it.
Otherwise if you have questions, or cannot describe enough details about the issue to expect a solution, discussions would be a better venue.
This issue is already closed.