Giter VIP home page Giter VIP logo

Comments (13)

J-N-K avatar J-N-K commented on July 17, 2024

Interesting. Can you show the discovery of that device? It's not in the database, so I can't see what's wrong.

from addons.

jimtng avatar jimtng commented on July 17, 2024

Wouldn't that be the dp2: 1?

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

I deleted the Thing and then added it with TRACE level logging:

Log filtered by full thing name. Filtered by device ID follows.

2022-03-10 14:19:27.168 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' to inbox. 2022-03-10 14:19:27.169 [INFO ] [openhab.event.InboxAddedEvent ] - Discovery Result with UID 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' has been added. 2022-03-10 14:19:46.495 [INFO ] [a.internal.handler.TuyaDeviceHandler] - Configuring IP address 'DeviceInfo{ip='192.168.1.206', version='3.3'}' for thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw'. 2022-03-10 14:19:46.660 [TRACE] [a.internal.handler.TuyaDeviceHandler] - 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' received status message '{1=true, 2=376.0, 3=100.0, 4=LED, 102=0.0, 104=1.0}' 2022-03-10 14:19:46.662 [DEBUG] [a.internal.handler.TuyaDeviceHandler] - Could not find channel for dp '102' in thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' 2022-03-10 14:19:46.663 [DEBUG] [a.internal.handler.TuyaDeviceHandler] - Could not find channel for dp '104' in thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' 2022-03-10 14:19:46.477 [INFO ] [openhab.event.InboxRemovedEvent ] - Discovery Result with UID 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' has been removed. 2022-03-10 14:19:46.480 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from UNINITIALIZED to INITIALIZING 2022-03-10 14:19:46.495 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from INITIALIZING to OFFLINE (CONFIGURATION_PENDING): Waiting for IP address 2022-03-10 14:19:46.499 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from OFFLINE (CONFIGURATION_PENDING): Waiting for IP address to UNKNOWN 2022-03-10 14:19:46.579 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from UNKNOWN to ONLINE

2022-03-10 14:19:27.168 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' to inbox. 2022-03-10 14:19:27.169 [INFO ] [openhab.event.InboxAddedEvent ] - Discovery Result with UID 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' has been added. 2022-03-10 14:19:46.495 [INFO ] [a.internal.handler.TuyaDeviceHandler] - Configuring IP address 'DeviceInfo{ip='192.168.1.206', version='3.3'}' for thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw'. 2022-03-10 14:19:46.509 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener/: Decoded raw payload: {"ip":"192.168.1.206","gwId":"ebb8edc2de0ce2e480xkxw","active":2,"ablilty":0,"encrypt":true,"productKey":"opqqmfjz7y2o6y6a","version":"3.3"} 2022-03-10 14:19:46.510 [DEBUG] [.internal.local.handlers.TuyaDecoder] - udpListener/: Received MessageWrapper{commandType=UDP_NEW, content='DiscoveryMessage{ip='192.168.1.206', deviceId='ebb8edc2de0ce2e480xkxw', active=2, ability=0, mode=0, encrypt=true, productKey='opqqmfjz7y2o6y6a', version='3.3'}'} 2022-03-10 14:19:46.572 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending DP_QUERY, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943586, dps=null, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:46.574 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000000010000000A00000088873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B50013B32F7C3D6E9DBFF813972E9ECFF9829437C98549D0AC4A5350012BD4556B5FD0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BBDC94AA330000AA55' 2022-03-10 14:19:46.576 [DEBUG] [al.local.handlers.TuyaMessageHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Connection established. 2022-03-10 14:19:46.655 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA000000010000000A0000004C00000000976D180DB878DC9C1C1091362B2F5046F01251D029057BDEDB42A8C0B1FB66EF33D7B417BA32B3C2441CFCE25C307487DB56F717BC0F2C42F271708BA17561F67F3749470000AA55' 2022-03-10 14:19:46.657 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: {"dps":{"1":true,"2":376,"3":100,"4":"LED","102":0,"104":1}} 2022-03-10 14:19:46.658 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=DP_QUERY, content='{1=true, 2=376.0, 3=100.0, 4=LED, 102=0.0, 104=1.0}'} 2022-03-10 14:19:46.660 [TRACE] [a.internal.handler.TuyaDeviceHandler] - 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' received status message '{1=true, 2=376.0, 3=100.0, 4=LED, 102=0.0, 104=1.0}' 2022-03-10 14:19:46.662 [DEBUG] [a.internal.handler.TuyaDeviceHandler] - Could not find channel for dp '102' in thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' 2022-03-10 14:19:46.663 [DEBUG] [a.internal.handler.TuyaDeviceHandler] - Could not find channel for dp '104' in thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' 2022-03-10 14:19:46.871 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:19:46.874 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943586, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:46.876 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000006000000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B50013B32F7C3D6E9DBFF813972E9ECFF98225951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB216603A20000AA55' 2022-03-10 14:19:46.982 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:19:46.984 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:19:46.986 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:19:46.988 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:19:46.477 [INFO ] [openhab.event.InboxRemovedEvent ] - Discovery Result with UID 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' has been removed. 2022-03-10 14:19:46.480 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from UNINITIALIZED to INITIALIZING 2022-03-10 14:19:46.495 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from INITIALIZING to OFFLINE (CONFIGURATION_PENDING): Waiting for IP address 2022-03-10 14:19:46.499 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from OFFLINE (CONFIGURATION_PENDING): Waiting for IP address to UNKNOWN 2022-03-10 14:19:46.579 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' changed from UNKNOWN to ONLINE 2022-03-10 14:19:48.909 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:19:48.911 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943588, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:48.913 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA00001F460000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B500CB6DE772A63AC38B2EC39F6A774EEDA725951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB5C81A01B0000AA55' 2022-03-10 14:19:49.019 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:19:49.021 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:19:49.023 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:19:49.024 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:19:56.577 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:19:56.580 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943596, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:56.582 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000000020000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B500B42C9B80E8659BEDCB2AD6BA8A4C344D25951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB2269FDFC0000AA55' 2022-03-10 14:19:56.694 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:19:56.696 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:19:56.699 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:19:56.700 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:19:56.879 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:19:56.881 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943596, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:56.883 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000006010000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B500B42C9B80E8659BEDCB2AD6BA8A4C344D25951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB75A6554E0000AA55' 2022-03-10 14:19:56.993 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:19:56.995 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:19:56.996 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:19:56.998 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:19:58.915 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:19:58.917 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943598, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:58.918 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA00001F470000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B500F28BBB4A8DCE2D4B5351098293BFA66A25951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB792768470000AA55' 2022-03-10 14:19:58.940 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:19:58.942 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:19:58.943 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:19:58.944 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:20:06.585 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:20:06.587 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943606, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:20:06.589 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000000030000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B5000EDF51DC02CBAB6D6EF4DF9E91BB891F25951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BBBB92BB9F0000AA55' 2022-03-10 14:20:06.619 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:20:06.621 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:20:06.623 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:20:06.624 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:20:06.886 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:20:06.887 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943606, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:20:06.889 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000006020000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B5000EDF51DC02CBAB6D6EF4DF9E91BB891F25951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB1761BE0E0000AA55' 2022-03-10 14:20:07.041 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:20:07.043 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:20:07.044 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:20:07.046 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong 2022-03-10 14:20:08.920 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending ping 2022-03-10 14:20:08.922 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending HEART_BEAT, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943608, dps=, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:20:08.924 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA00001F480000000900000097332E33000000000000000000000000873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B500F698E9A6E9C271E61F7AC31733F9403F25951B9AF38C68F68F9A9E3A88D26A17D0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BB4FE929C20000AA55' 2022-03-10 14:20:08.998 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA00000000000000090000000C00000000B051AB030000AA55' 2022-03-10 14:20:09.000 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: 2022-03-10 14:20:09.002 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=HEART_BEAT, content=''} 2022-03-10 14:20:09.003 [TRACE] [rnal.local.handlers.HeartbeatHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received pong

from addons.

J-N-K avatar J-N-K commented on July 17, 2024

I guess that 1 is a good guess for the on/off channel. The question is why that is not detected automatically.

Do you have a request to /v1.1/devices/ebb8edc2de0ce2e480xkxw/specifications in the log? It should show up when the device is discovered and the response contains what the API presents as available dp.

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

First, I created a switch channel, configured with DP one and it turns the device on and off. It also instantly track changes made in the Smartlife App or if the device power is toggled manually. So I have what I need at this point. If further pursuing this will help you make the binding better, I am very willing to help in any way I can. I really appreciate this binding. I like being able to control my smart home without having to rely on a 3rd party server over the Internet.

I couldn't find the request you mentioned, just these, which I think are included in the original logs. I do see that it is reporting the DPS states "Decoded raw payload: {"dps":{"1":true,"2":376,"3":100,"4":"LED","102":0,"104":1}}", and it looks like DP 1 has the Boolean for the power state. I can confirm that the DP 2 value of 376 matches the 38% on the dimmer, which is DP 2.

2022-03-10 14:19:46.495 [INFO ] [a.internal.handler.TuyaDeviceHandler] - Configuring IP address 'DeviceInfo{ip='192.168.1.206', version='3.3'}' for thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw'. 2022-03-10 14:19:46.508 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener: Received encoded '000055AA00000000000000130000009C00000000D09766676F3369EB10B5E9F132FD802AD2E27C5F32F3E3F0AFC41C85D5F380E6FAAA67378A1AD8D82C8881CF61B1ED1C17CDF83527CCE8ED665CF186940C31867256F992EF0BB3C9946F6CA8E2E148532E0DBC9A92C3317286EBF238BE579786D6580B90DE59FFECA847456AFC569A70F961BDD6290849510943F0B3DEDC720E7A23E3B2249F5ADF48A714F851AAF43999DF41830000AA55' 2022-03-10 14:19:46.509 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener/: Decoded raw payload: {"ip":"192.168.1.206","gwId":"ebb8edc2de0ce2e480xkxw","active":2,"ablilty":0,"encrypt":true,"productKey":"opqqmfjz7y2o6y6a","version":"3.3"} 2022-03-10 14:19:46.510 [DEBUG] [.internal.local.handlers.TuyaDecoder] - udpListener/: Received MessageWrapper{commandType=UDP_NEW, content='DiscoveryMessage{ip='192.168.1.206', deviceId='ebb8edc2de0ce2e480xkxw', active=2, ability=0, mode=0, encrypt=true, productKey='opqqmfjz7y2o6y6a', version='3.3'}'} 2022-03-10 14:19:46.572 [DEBUG] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending DP_QUERY, payload {devId=ebb8edc2de0ce2e480xkxw, uid=ebb8edc2de0ce2e480xkxw, t=1646943586, dps=null, gwId=ebb8edc2de0ce2e480xkxw} 2022-03-10 14:19:46.574 [TRACE] [.internal.local.handlers.TuyaEncoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Sending encoded '000055AA000000010000000A00000088873FA29B2A253A5A3AF9FA0C70D911160607244977B364D490931F190ED020CCBBA7F797E81E0F89B1B4ED1F0C125013136BF054B6DAB88834B134789415B50013B32F7C3D6E9DBFF813972E9ECFF9829437C98549D0AC4A5350012BD4556B5FD0DC4063CF9C70A4B1D9B729FBDF17702B8708F07D4451CC7B900D9E0D92B4BBDC94AA330000AA55' 2022-03-10 14:19:46.576 [DEBUG] [al.local.handlers.TuyaMessageHandler] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Connection established. 2022-03-10 14:19:46.655 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw/192.168.1.206:6668: Received encoded '000055AA000000010000000A0000004C00000000976D180DB878DC9C1C1091362B2F5046F01251D029057BDEDB42A8C0B1FB66EF33D7B417BA32B3C2441CFCE25C307487DB56F717BC0F2C42F271708BA17561F67F3749470000AA55' 2022-03-10 14:19:46.657 [TRACE] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Decoded raw payload: {"dps":{"1":true,"2":376,"3":100,"4":"LED","102":0,"104":1}} 2022-03-10 14:19:46.658 [DEBUG] [.internal.local.handlers.TuyaDecoder] - ebb8edc2de0ce2e480xkxw//192.168.1.206:6668: Received MessageWrapper{commandType=DP_QUERY, content='{1=true, 2=376.0, 3=100.0, 4=LED, 102=0.0, 104=1.0}'} 2022-03-10 14:19:46.660 [TRACE] [a.internal.handler.TuyaDeviceHandler] - 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' received status message '{1=true, 2=376.0, 3=100.0, 4=LED, 102=0.0, 104=1.0}' 2022-03-10 14:19:46.662 [DEBUG] [a.internal.handler.TuyaDeviceHandler] - Could not find channel for dp '102' in thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' 2022-03-10 14:19:46.663 [DEBUG] [a.internal.handler.TuyaDeviceHandler] - Could not find channel for dp '104' in thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw'

and

2022-03-10 14:14:27.194 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'tuya:tuyaDevice:ebb8edc2de0ce2e480xkxw' to inbox. 2022-03-10 14:15:41.251 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener: Received encoded '000055AA00000000000000000000009F000000007B226970223A223139322E3136382E312E323437222C2267774964223A223336383032353538383430643865393566336334222C22616374697665223A322C226162696C697479223A302C226D6F6465223A302C22656E6372797074223A747275652C2270726F647563744B6579223A22704A6E70543058634D354654526A4F64222C2276657273696F6E223A22332E31227D157010A20000AA55' 2022-03-10 14:15:41.254 [DEBUG] [.internal.local.handlers.TuyaDecoder] - udpListener/: Received MessageWrapper{commandType=UDP, content='DiscoveryMessage{ip='192.168.1.247', deviceId='36802558840d8e95f3c4', active=2, ability=0, mode=0, encrypt=true, productKey='pJnpT0XcM5FTRjOd', version='3.1'}'} 2022-03-10 14:15:41.380 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener: Received encoded '000055AA00000000000000130000009C00000000D09766676F3369EB10B5E9F132FD802AD2E27C5F32F3E3F0AFC41C85D5F380E6FAAA67378A1AD8D82C8881CF61B1ED1C17CDF83527CCE8ED665CF186940C31867256F992EF0BB3C9946F6CA8E2E148532E0DBC9A92C3317286EBF238BE579786D6580B90DE59FFECA847456AFC569A70F961BDD6290849510943F0B3DEDC720E7A23E3B2249F5ADF48A714F851AAF43999DF41830000AA55' 2022-03-10 14:15:41.385 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener/: Decoded raw payload: {"ip":"192.168.1.206","gwId":"ebb8edc2de0ce2e480xkxw","active":2,"ablilty":0,"encrypt":true,"productKey":"opqqmfjz7y2o6y6a","version":"3.3"} 2022-03-10 14:15:41.387 [DEBUG] [.internal.local.handlers.TuyaDecoder] - udpListener/: Received MessageWrapper{commandType=UDP_NEW, content='DiscoveryMessage{ip='192.168.1.206', deviceId='ebb8edc2de0ce2e480xkxw', active=2, ability=0, mode=0, encrypt=true, productKey='opqqmfjz7y2o6y6a', version='3.3'}'} 2022-03-10 14:15:41.419 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener: Received encoded '000055AA0000000000000013000000CC00000000D09766676F3369EB10B5E9F132FD802AE33F0A22D663644012FC8D872BCF03D07B64C8DD4401899000716D5170D1858B0B1B576FA1E157538A210ED25F4C31067256F992EF0BB3C9946F6CA8E2E148532E0DBC9A92C3317286EBF238BE57978641CBF9244804CF3DC911CADA0E75770803BF05AC9D8E6CCA4A3B9E5968A55B0DCC37291424EC2B5401F4F50D7EB6A63204AF131AE1CD3F0E4AB9A53DA72F98A8617CB007FF58786669D79C94FB8EA213D482232E3BD3BF5CF00BC08816559FD6A790AEB30000AA55' 2022-03-10 14:15:41.420 [TRACE] [.internal.local.handlers.TuyaDecoder] - udpListener/: Decoded raw payload: {"ip":"192.168.1.246","gwId":"eb755c84e755bbd761ymwj","active":2,"ablilty":0,"encrypt":true,"productKey":"keyyj3fy8x98arty","version":"3.3","lan_cap":5000,"lan_seq":25,"token":true} 2022-03-10 14:15:41.421 [DEBUG] [.internal.local.handlers.TuyaDecoder] - udpListener/: Received MessageWrapper{commandType=UDP_NEW, content='DiscoveryMessage{ip='192.168.1.246', deviceId='eb755c84e755bbd761ymwj', active=2, ability=0, mode=0, encrypt=true, productKey='keyyj3fy8x98arty', version='3.3'}'}

from addons.

J-N-K avatar J-N-K commented on July 17, 2024

Weird. If you log in to your Tuya Could project, could you go to "API Explorer", "Smarthome Management System", "Device Control", "Get Device Specification Attribute" and enter the device id? On the right sight, under "Debugging Result" you should find a JSON with all supported DPs. Is 1 listed there? And what is the associated name?

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

Yes it is. "switch_led_1"

{ "result": { "category": "tgq", "functions": [ { "code": "**switch_led_1**", "type": "Boolean", "values": "{}" }, { "code": "bright_value_1", "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "brightness_min_1", "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "led_type_1", "type": "Enum", "values": "{\"range\":[\"incandescent\",\"halogen\"]}" } ], "status": [ { "code": "switch_led_1", "type": "Boolean", "values": "{}" }, { "code": "bright_value_1", "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "brightness_min_1", "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "led_type_1", "type": "Enum", "values": "{\"range\":[\"incandescent\",\"halogen\"]}" } ] }, "success": true, "t": 1647013932951, "tid": "379b9440a15311ec97432e609e0e211c" }

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

I found this about the API Discovery Service in the log:

2022-03-11 10:09:26.738 [WARN ] [g.tuya.internal.TuyaDiscoveryService] - Tried to start scan but API for bridge 'tuya:project:dc58ac9d8e' is not connected. 2022-03-11 10:14:26.741 [WARN ] [g.tuya.internal.TuyaDiscoveryService] - Tried to start scan but API for bridge 'tuya:project:dc58ac9d8e' is not connected. 2022-03-11 10:19:26.743 [WARN ] [g.tuya.internal.TuyaDiscoveryService] - Tried to start scan but API for bridge 'tuya:project:dc58ac9d8e' is not connected.
The Tuya Account Thing shows a Online in the UI.

from addons.

J-N-K avatar J-N-K commented on July 17, 2024

Can you check if you did the correct request for "Get Device Specification Attribute" under the location I posted above? The output should look like this (including the DPs):

{
  "result": {
    "category": "dd",
    "functions": [
      {
        "code": "switch_led",
        "dp_id": 20,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "work_mode",
        "dp_id": 21,
        "type": "Enum",
        "values": "{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}"
      },
      {
        "code": "bright_value",
        "dp_id": 22,
        "type": "Integer",
        "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}"
      },
      {
        "code": "temp_value",
        "dp_id": 23,
        "type": "Integer",
        "values": "{\"min\":0,\"max\":1000,\"scale\":0,\"step\":1}"
      },
      {
        "code": "colour_data",
        "dp_id": 24,
        "type": "Json",
        "values": "{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}"
      },
      {
        "code": "scene_data",
        "dp_id": 25,
        "type": "Json",
        "values": "{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}"
      },
      {
        "code": "countdown",
        "dp_id": 26,
        "type": "Integer",
        "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
      },
      {
        "code": "music_data",
        "dp_id": 27,
        "type": "Json",
        "values": "{\"change_mode\":{\"range\":[\"direct\",\"gradient\"]}, \"bright\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"temperature\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}}"
      },
      {
        "code": "control_data",
        "dp_id": 28,
        "type": "Json",
        "values": "{\"change_mode\":{\"range\":[\"direct\",\"gradient\"]}, \"bright\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"temperature\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}}"
      }
    ],
    "status": [
      {
        "code": "switch_led",
        "dp_id": 20,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "work_mode",
        "dp_id": 21,
        "type": "Enum",
        "values": "{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}"
      },
      {
        "code": "bright_value",
        "dp_id": 22,
        "type": "Integer",
        "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}"
      },
      {
        "code": "temp_value",
        "dp_id": 23,
        "type": "Integer",
        "values": "{\"min\":0,\"max\":1000,\"scale\":0,\"step\":1}"
      },
      {
        "code": "colour_data",
        "dp_id": 24,
        "type": "Json",
        "values": "{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}"
      },
      {
        "code": "scene_data",
        "dp_id": 25,
        "type": "Json",
        "values": "{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}"
      },
      {
        "code": "countdown",
        "dp_id": 26,
        "type": "Integer",
        "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}"
      }
    ]
  },
  "success": true,
  "t": 1647026863632,
  "tid": "52e4b7bfa17111ecbb5ea27854ae7791"
}

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

Ahh. I did "Get device specification attributes", not "Get Devices Specification Attributes." I guess in this case the case really matters. Here is what you wanted:

{ "result": { "category": "tgq", "functions": [ { "code": "switch_led_1", "dp_id": 1, "type": "Boolean", "values": "{}" }, { "code": "bright_value_1", "dp_id": 2, "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "brightness_min_1", "dp_id": 3, "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "led_type_1", "dp_id": 4, "type": "Enum", "values": "{\"range\":[\"incandescent\",\"halogen\"]}" } ], "status": [ { "code": "switch_led_1", "dp_id": 1, "type": "Boolean", "values": "{}" }, { "code": "bright_value_1", "dp_id": 2, "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "brightness_min_1", "dp_id": 3, "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "led_type_1", "dp_id": 4, "type": "Enum", "values": "{\"range\":[\"incandescent\",\"halogen\"]}" } ] }, "success": true, "t": 1647028816896, "tid": "df2693b7a17511eca6146e0e3d4c7b49" }

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

Probably easier to read w/o code brackets
{
"result": {
"category": "tgq",
"functions": [
{
"code": "switch_led_1",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "bright_value_1",
"dp_id": 2,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "brightness_min_1",
"dp_id": 3,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "led_type_1",
"dp_id": 4,
"type": "Enum",
"values": "{"range":["incandescent","halogen"]}"
}
],
"status": [
{
"code": "switch_led_1",
"dp_id": 1,
"type": "Boolean",
"values": "{}"
},
{
"code": "bright_value_1",
"dp_id": 2,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "brightness_min_1",
"dp_id": 3,
"type": "Integer",
"values": "{"min":10,"max":1000,"scale":0,"step":1}"
},
{
"code": "led_type_1",
"dp_id": 4,
"type": "Enum",
"values": "{"range":["incandescent","halogen"]}"
}
]
},
"success": true,
"t": 1647028816896,
"tid": "df2693b7a17511eca6146e0e3d4c7b49"
}

from addons.

J-N-K avatar J-N-K commented on July 17, 2024

Found it. The reason is that bright_value_1 was not set as Dimmer but as Number channel. Can you try the develop version? You need to delete and re-add the thing. Thanks.

from addons.

BigGeorgeTx avatar BigGeorgeTx commented on July 17, 2024

As requested, I deleted the Thing, removed the Tuya binding and then added the develop version. As expected, when I added the dimmer thing from the Inbox, it created a Dimmer channel. I linked the items I have previous created (or the UI had created for all but the on/off switch). I changed the brightness item from number to dimmer, and linked both it and the on/off switch item to the brightness dimmer channel, and everything works as it should.

It would be more user friendly if when the user uses "Add Equipment to Model" to create the channels and linked items in the UI, it created the on/off switch. Right now, it only creates the dimmer channel and linked item, and the user has to know enough to look at the channel to find out what the switch dp is and then link an item to it. I don't know if that is on the UI side or the binding. It isn't a problem for me, as I now know what to do. But for new users, it could be confusing.

from addons.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.