Code Monkey home page Code Monkey logo

home-assistant-hikconnect's Introduction

Overview

A Home Assistant integration to communicate with Hikvision smart doorbells via Hik-Connect cloud.

hacs_badge

Features

  • Unlock a lock connected to Hikvision outdoor station.
  • Report call status of an indoor station (idle, ringing, call in progress) + call source (number of building, floor, etc.).

Nothing more yet, sorry. :) Visit an issue tracker to discuss planned features.

Warning

If you have direct LAN access to your Hikvision device, you may NOT want to use this integration.

Why? The scope of this project is to mirror functionality available in Hik-Connect mobile application - nothing more. You can usually get more functions, faster responses and more stability by connecting to your device locally, if possible. Please see forum thread about LAN based integration for more info.

The target audience of this integration is people living in block of flats where other Hikvision devices (outdoor stations, recorders) are managed by someone else, and you don't have physical (admin) access to any of these.

To be clear - if you are satisfied with this integration with regard to limited functionality and Hik-Connect cloud dependency, feel free to use it even for LAN connected devices.

Installation

HACS

This installation method is preferred since it allows automatic updates in the future.

Install by searching for Hik-Connect integration in HACS.

Manual

  1. Download this integration.
  2. Copy the folder custom_components/hikconnect from the zip to your config directory.
  3. Restart Home Assistant.

Links

home-assistant-hikconnect's People

Contributors

chrfin avatar pepsonel avatar tomasbedrich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

home-assistant-hikconnect's Issues

No Entities Created

Hi, glad to see such an integration being worked on!

Wanted to offer my two cents that installation was a breeze, but once the Integration was added, it found two devices (both with the name of my device as given in the the Hik Connect app) but offers no entities for them. I am using a HikVision DS-HD1.

Locking / Unlocking not implemented

When I tired to unlock my doorphone HA give me this error.

Logger: custom_components.hikconnect.lock
Source: custom_components/hikconnect/lock.py:51
Integration: Hik-Connect (documentation, issues)
First occurred: 21:17:28 (3 occurrences)
Last logged: 21:17:40

Locking not implemented

Logger: custom_components.hikconnect.lock
Source: custom_components/hikconnect/lock.py:54
Integration: Hik-Connect (documentation, issues)
First occurred: 21:17:25 (3 occurrences)
Last logged: 21:17:39

Unlocking not implemented

async_setup_platforms

Logger: homeassistant.helpers.frame
Source: helpers/frame.py:77
First occurred: 12:01:44 (1 occurrences)
Last logged: 12:01:44

Detected integration that called async_setup_platforms instead of awaiting async_forward_entry_setups; this will fail in version 2023.3. Please report issue to the custom integration author for hikconnect using this method at custom_components/hikconnect/init.py, line 95: hass.config_entries.async_setup_platforms(entry, PLATFORMS)

Choose which devices are shown

As of now the integration shows all devices added to HC including cameras, doorphones, alarms etc. Especially for the doorphones it adds the all the IP cameras added to the indoor stations which is not bad but it all add all empty entries. in other words if I have 3 added ip cameras into the indoor stations I get 16 added in total because that is the max added cameras per indoor station.

image

API to send ISAPI commands

Hey @tomasbedrich

i have found the command to send ISAPI requests to the intercom, i think it can be verry usefull for you , that way you can get all ISAPI info from the outdoor station!, so you are not limited to info on hikconnect cloud...

2 examples

curl -X POST --header "sessionId: SESSIONID" --data "apiKey=100044&channelNo=1&deviceSerial=QXXXXXX&apiData=PUT /ISAPI/AccessControl/RemoteControl/door/1%0D%0A<RemoteControlDoor><cmd>open</cmd><channelNo>1</channelNo><controlType>monitor</controlType><password></password></RemoteControlDoor>" "https://apiieu.hik-connect.com/v3/userdevices/v1/isapi"


curl -X POST --header "sessionId: SESSIONID" --data "apiKey=100044&channelNo=1&deviceSerial=QXXXXX&apiData=GET /ISAPI/VideoIntercom/capabilities" "https://apiieu.hik-connect.com/v3/userdevices/v1/isapi"   

Can't connect

Hi, I'm inputing my hik-connect username and password but integration keeps rejecting me.

They work on hik-connect web as well as in iVMS-4200.

Any idea what can be wrong?

sensor becomes unavailable

Hey, I'm running into an issue where the ringing sensor becomes unavailable after a while and the only way I can get it to come back is to reload the integration. DS-KB6003-WIP V1.4.62 build 180515. I'll turn on logging and will respond with the logs once I get it to go it again.

log flooded with error 401 unauthorized messages

Those errors began suddenly last night and didn't stop until a fresh reboot of home assistant in the morning. During 8 hours the home-assistant.log file grow up to 2.4MB with over 33tsd of those lines. The block of messages repeated itself after 20 seconds and then after 40 seconds. (so two times every minute)

The last line said 'error 401 Unauthorized', so probably the reboot solved this issue by a logging into the hik-connect service again.

The only sensor of the HikConnect integration I am using (and therefore haven't deactivated) is the call_status of an intercom device (DS-KD8003). And it didn't show any signs of being not available during that time.

I would have the following questions:

  1. was the integration really not working during this period (since the sensor was still available)?
  2. what could be the reason behind it (I mean, may be it was just one unsuccessful login)? And could the integration be improved to perform the same fresh login process which obviously solved the issue after I have rebooted home assistant?
  3. apart from looking regularly into the log file: is there a way to be notified when this situation will happen again?

THX.

2022-03-17 22:33:05 ERROR (MainThread) [custom_components.hikconnect.sensor] Update of call status failed 10 times in a row
Traceback (most recent call last):
  File "/config/custom_components/hikconnect/sensor.py", line 63, in async_update
    res = await asyncio.wait_for(get_call_status_coro, SCAN_INTERVAL_TIMEOUT.seconds)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 224, in get_call_status
    async with self.client.get(
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 1138, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 640, in _request
    resp.raise_for_status()
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1004, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 401, message='Unauthorized', url=URL('https://api.hik-connect.com/v3/devconfig/v1/call/<SENSITIVE>/status')
2022-03-17 22:33:05 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.videoklingel_call_status fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 535, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 744, in async_device_update
    raise exc
  File "/config/custom_components/hikconnect/sensor.py", line 63, in async_update
    res = await asyncio.wait_for(get_call_status_coro, SCAN_INTERVAL_TIMEOUT.seconds)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 224, in get_call_status
    async with self.client.get(
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 1138, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 640, in _request
    resp.raise_for_status()
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 1004, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 401, message='Unauthorized', url=URL('https://api.hik-connect.com/v3/devconfig/v1/call/<SENSITIVE>/status')

Cannot login

Im having issues right at the start with logging in when the integration is first launched.

my login credentials are correct as verified by logging in via the hik connect website.

Cannot open second door

Hi i start test this integration. Now looks good i create script to open 1 door. When come back to come i test it. But good feature will be also add support to open second door and also automaticaly create view from Video Intercom Camera. This will be very good.

In app HikConnect i also has added my NVR with 7 cameras and now i see it in Home Assistant as entity lock.xxxxxxxx
Why and what it is ?

Can't login when user is located in area non-matching his locale

Hi, I'm typing my hik-connect username and password info but integration keeps rejecting me. The info works at hik-connect site.

Any idea what I doing wrong?

Version core-2021.12.9
Installation Type Home Assistant Supervised
Development false
Supervisor true
Docker true
User root
Virtual Environment false
Python Version 3.9.7
Operating System Family Linux
Operating System Version 5.10.0-10-amd64
CPU Architecture x86_64

`This error originated from a custom integration.

Logger: custom_components.hikconnect.config_flow
Source: custom_components/hikconnect/config_flow.py:26
Integration: Hik-Connect (documentation, issues)
First occurred: 10:47:17 (2 occurrences)
Last logged: 10:53:23

Hik-Connect login failed
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 75, in login
session_id = res_json["loginSession"]["sessionId"]
KeyError: 'loginSession'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/config/custom_components/hikconnect/config_flow.py", line 39, in async_step_user
await validate_input(self.hass, user_input)
File "/config/custom_components/hikconnect/config_flow.py", line 26, in validate_input
await api.login(data["username"], data["password"])
File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 77, in login
raise LoginError("Unable to parse session_id from response.") from e
hikconnect.exceptions.LoginError: Unable to parse session_id from response.
`

2022-01-12 10:47:17 DEBUG (MainThread) [hikconnect.api] Got login response '{'meta': {'code': 1100, 'message': '客户端需要重定向用户请求域名(海外)', 'moreInfo': None}, 'loginArea': {'apiDomain': 'apiius.hik-connect.com', 'webDomain': 'ius.hik-connect.com', 'areaName': 'USA', 'areaId': 314}}' 2022-01-12 10:47:17 ERROR (MainThread) [custom_components.hikconnect.config_flow] Hik-Connect login failed Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 75, in login session_id = res_json["loginSession"]["sessionId"] KeyError: 'loginSession' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/config/custom_components/hikconnect/config_flow.py", line 39, in async_step_user await validate_input(self.hass, user_input) File "/config/custom_components/hikconnect/config_flow.py", line 26, in validate_input await api.login(data["username"], data["password"]) File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 77, in login raise LoginError("Unable to parse session_id from response.") from e hikconnect.exceptions.LoginError: Unable to parse session_id from response.

Add Line Crossing and Motion Detection

I would like to be able to be able to use line crossings and motion detections to be able to automate certain things, like the turning on of outside lights or notifications that someone has entered my property.

Thanks

Remove spam from HA logs

2022-01-26 09:31:15 INFO (MainThread) [hikconnect.api] Got call status for device 'XXXXX'
2022-01-26 09:31:18 INFO (MainThread) [hikconnect.api] Got call status for device 'XXXXX'
2022-01-26 09:31:21 INFO (MainThread) [hikconnect.api] Got call status for device 'XXXXX'
2022-01-26 09:31:24 INFO (MainThread) [hikconnect.api] Got call status for device 'XXXXX'
2022-01-26 09:31:27 INFO (MainThread) [hikconnect.api] Got call status for device 'XXXXX'

Remove old devices

I used to have access to some camera systems that I now no longer have.

They don't show in my Hik-Connect apps, how do I remove them from Home Assistant?

Can you have it auto remove old devices?

Hikvision Alarm

Thanks for great work, is it possible to make Hikvision Alarm work with this integration?

Don't report camera-only devices as locks

(Splitting issue #2 on behalf of @pepsonEL)

In app HikConnect i also has added my NVR with 7 cameras and now i see it in Home Assistant as entity lock.xxxxxxxx
Why and what it is ?

Quoting https://community.home-assistant.io/t/hik-connect/342202/5?u=tomasbedrich:

... the integration is based on assumption, that all devices connected to Hik-Connect has both lock + camera function available. This seems to be wrong assumption (based on your example) and we must fix it somehow.

Logo Hikvision in integration

Hi logo is still not visible.... Only show logo when search integration... But when installed it adn then go to Configuration>integration there is no logo
135728559-02e2d0a4-fb8f-4617-aa1e-e8fce1624199

135728572-13469b16-c389-4fc9-ba6a-492022405012

Add call status

If available also good will be add status VideoIntercom to this integration. When user press button to call it should also send info to Home Assistatnt.... maybe as binarysensor which change from OFF status to ON status ?

Unlock/lock status

I would like to use the tag reader to open my lock so I would really appreciate status on the lock/unlock function.

Thanks

Hikvision Intercom Alarm Status

With the Hikvision Intercom, I can trigger bother Door1 and Door2 open, I can also see the status of the Intercom such as Idle or Call in progress.

This is all excellent thank you, but I cant see the status of the Alarm inputs to the intercom. These are what tell me it the door is currently open or closed.

Is it possible this can be added please?

Add Hikvision logo

Good feature (cosmetic) will be add logo HikVision to integration show in HACS and after install in Home Assistant. Now is blank.

Door Status Sensor

Hi,

I have a magnetic sensor connected to AIN1. Is it possible to add a sensor on HA HACS integration to check if it is closed or open?

Limited number of cameras

Hi,
So this is working with 7 of my 8 cameras, but that last one appears in the entities list of the integration, but then it doesn't appear listed when you try to add it to a card, all other 7 are ok.
Is this an integrations or homeassistant issue? it's always the same one as I have tried to add and remove the integration a couple of times (it's live in the app)
Also, there's on of the cameras that is live on app but not in homeassistant.

Cheers,

Cant autch with addon

When i connected my Home Assistant with Hik-Connect, i Have errors.
image
but when use phone i didn't have CAPCHA

Don’t work login

Authentication failure. May be a wrong username/password combination or CAPTCHA. Try logging in using official Hik-Connect application.

After updating to version 2.0.0 Hik-connect is missing

Hi, after update to the 2.0 from 1.3 I don't see Hik-connect in the integrations list and my devices are disabled from front panel. I needed to reinstall 1.3 to have it worked. Home Assistant tot shows any log with errors.

Integration doesn't start after reboot of Home Assistant

After reboot my Home Assistant i have status red ? for entities
status

Logs show this:

Logger: homeassistant.components.lock
Source: custom_components/hikconnect/lock.py:18
Integration: Zamek (documentation, issues)
First occurred: 13:12:22 (1 occurrences)
Last logged: 13:12:22

Error while setting up hikconnect platform for lock
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 61, in map_httpcore_exceptions
    yield
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 281, in handle_async_request
    ) = await self._pool.handle_async_request(
  File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection_pool.py", line 234, in handle_async_request
    response = await connection.handle_async_request(
  File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection.py", line 136, in handle_async_request
    self.socket = await self._open_socket(timeout)
  File "/usr/local/lib/python3.9/site-packages/httpcore/_async/connection.py", line 163, in _open_socket
    return await self._backend.open_tcp_stream(
  File "/usr/local/lib/python3.9/site-packages/httpcore/_backends/auto.py", line 44, in open_tcp_stream
    return await self.backend.open_tcp_stream(
  File "/usr/local/lib/python3.9/site-packages/httpcore/_backends/anyio.py", line 154, in open_tcp_stream
    stream = await TLSStream.wrap(
  File "/usr/local/lib/python3.9/contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.9/site-packages/httpcore/_exceptions.py", line 12, in map_exceptions
    raise to_exc(exc) from None
httpcore.ConnectTimeout

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/hikconnect/lock.py", line 18, in async_setup_entry
    await api.login(entry.data["username"], entry.data["password"])
  File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 57, in login
    res = await self.client.post(f"{self.BASE_URL}/v3/users/login/v2", data=data)
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1825, in post
    return await self.request(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1494, in request
    response = await self.send(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1586, in send
    response = await self._send_handling_auth(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1616, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1655, in _send_handling_redirects
    response = await self._send_single_request(request, timeout)
  File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1699, in _send_single_request
    ) = await transport.handle_async_request(
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 276, in handle_async_request
    (
  File "/usr/local/lib/python3.9/contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 78, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.ConnectTimeout

When i reload again Integration Hik-Connect all start work ok and status has no RED !

Version 1.2.3 still get error

On latest version i still get errors:

Update of call status failed 10 times in a row
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 224, in get_call_status
    async with self.client.get(
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 1138, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 559, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 898, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
  File "/usr/local/lib/python3.9/site-packages/aiohttp/streams.py", line 616, in read
    await self._waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 492, in wait_for
    fut.result()
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/hikconnect/sensor.py", line 63, in async_update
    res = await asyncio.wait_for(get_call_status_coro, SCAN_INTERVAL_TIMEOUT.seconds)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 494, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

Update for sensor.ds_7608ni_k2_8p_c26292551_call_status fails
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/hikconnect/api.py", line 224, in get_call_status
    async with self.client.get(
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 1138, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client.py", line 559, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 898, in start
    message, payload = await protocol.read()  # type: ignore[union-attr]
  File "/usr/local/lib/python3.9/site-packages/aiohttp/streams.py", line 616, in read
    await self._waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 492, in wait_for
    fut.result()
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 521, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 725, in async_device_update
    raise exc
  File "/config/custom_components/hikconnect/sensor.py", line 63, in async_update
    res = await asyncio.wait_for(get_call_status_coro, SCAN_INTERVAL_TIMEOUT.seconds)
  File "/usr/local/lib/python3.9/asyncio/tasks.py", line 494, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

Unlock a lock connected to Hikvision indoor station

Is possible to integrate com1 and com2 unlock on indoor station?

Now i have:
1 indoor station DS-KH6320-WTE1
1 Door Station DS-KV8113-WME1(B)
1 Sub Door Station DS-KV8113-WME1(B)

i connect on hikconnect indoor station and the Door Station,
when register my account:
image
this is the entities:
image
on devices i find more strange items:
image

Too many devices

Getting the following error in the integration:

Retrying setup: More than 100 devices is not supported yet. Please file an issue on GitHub.

Is there a way of limiting the Hik devices that are created in Home Assistant?

Choose server hik-connect

Hello!
Is it possible to add choose server in your integration of the API?
When i register new user (in the hik-connect.com), and change country Russia my server change from hik-connect.com to the hik-connectru.com.

And in the future all device transfer from "hik-connect.com" to the "hik-connectru.com". And i can't login to "hik-connect.com" (account not found), but ok login in "hik-connectru.com"

I think, it needs to change BASE_URL_API from api.hik-connect.com to api.hik-connectru.com

Failing to login due to HV's app uses CAPCHA

Hi there,

first of all, thanks a ton for thie lovely integration. It worked fine (was able to see my door lock and cameras) until I changed my password several times within the HV app on my phone. Now the inegration in HA tells me this:
HV hassio

Funny thing, I still see my cameras and moving detections in my Dashboard. The only offline thing is my button for the door lock. Having checked the text file in case I missed something but no luck here. Any one also having trouble logging in? Re-installing your integration did not help. In fact it made my door lock button missing totally in my dashboard.

Thanks in advance

Cheers
Ben

Reley controll on VDP-H3211W

I have VDP-H3211W with 2 reley output.
How i can manage they in HA without mobile app ?
In HA i have only
image
and have nod buttons to call functions to open my door with reley.

Support for new indoor devices

Hey @tomasbedrich , you "fixed" the callsensor issue with below commit:

Handle possible JSONDecodeError during call status parsing

It was because i have a newer type of indoor device, seems my commands are based on ISAPI, maybe you can add support for it too

command used: GET /ISAPI/VideoIntercom/callerInfo?format=json

image

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.