Comments (13)
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.
Wouldn't that be the dp2: 1
?
from addons.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
- Ledkia DC Fan motor driver comes online but drop offline immediately HOT 1
- [tuya] Gateway supoort HOT 3
- Nedis Smart Plug asks for IP HOT 1
- How to install the Addon HOT 3
- Tuya Binding: cloud project Informationen? HOT 1
- Divide profile handling of NULL HOT 1
- Add support for subdevice cid to access devices behind zigbee gateway HOT 3
- [Tuya] failed to parse JSON: java.lang.IllegalStateException HOT 3
- Can't build tuya for OH 4.0.x HOT 1
- amazonechocontrol blocks thingHandler threads after some days of uptime HOT 6
- [javarule] Enhance "Rule" annotation HOT 1
- [Math transform] Unit is ignored if result is 0
- Tuya-Binding not working with OH 4.0.1 HOT 1
- [Viessmann] After initial install on OH4 unable to crete/dicover things HOT 2
- Problems in OH4 HOT 6
- Notification for Fire TV not working HOT 1
- Tuya Binding not starting properly in 4.0M1 HOT 1
- GenericEventTrigger does not work in v4
- Math transformation services disappeared HOT 1
- Basic-profiles transformation services disappeared HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from addons.