jey-cee / iobroker.heytech Goto Github PK
View Code? Open in Web Editor NEWControl HEYtech from iobroker
License: MIT License
Control HEYtech from iobroker
License: MIT License
I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:
https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/Jey-Cee/ioBroker.heytech
Thanks,
your automatic adapter checker.
P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info
After switching to the latest js-controller 3.3 and Admin5 React UI version and reinstalltion of ioBroker.heytech adapter, I get the following warnings and infos in ioBroker log(output):
Examples, details please see log output box:
info State value to set for "heytech.0.shutters.1.status" has to be type "number" but received type "string"
warn State "heytech.0.sensors.bri_actual_hey" has no existing object, this might lead to an error in future versions
The adapter seems to work so far, only for future changes in ioBroker the adapter has to be adapted.
Many thanks in advance.
1.0.0 (ioBroker stable)
3.3.15
12.22.5
6.14.14
Debian
heytech.0
2021-08-27 17:55:10.573 info Disconnected from controller
heytech.0
2021-08-27 17:54:11.265 info State value to set for "heytech.0.sensors.temp_outdoor" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:54:11.227 info State value to set for "heytech.0.sensors.bri_average_sensor_byte" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:54:11.226 info State value to set for "heytech.0.sensors.bri_actual_sensor_byte" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:54:11.119 info Connected to controller
heytech.0
2021-08-27 17:49:47.064 info Disconnected from controller
heytech.0
2021-08-27 17:49:12.500 warn State "heytech.0.sensors.humidity" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.490 warn State "heytech.0.sensors.rain" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.489 warn State "heytech.0.sensors.alarm" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.489 warn State "heytech.0.sensors.wind_maximum" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.488 warn State "heytech.0.sensors.wind_actual" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.487 warn State "heytech.0.sensors.temp_outdoor_max" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.487 warn State "heytech.0.sensors.temp_outdoor_min" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.486 warn State "heytech.0.sensors.temp_outdoor" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.485 warn State "heytech.0.sensors.bri_average_sensor_byte" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.485 warn State "heytech.0.sensors.bri_average_hey" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.484 warn State "heytech.0.sensors.bri_average" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.483 warn State "heytech.0.sensors.bri_actual_sensor_byte" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.482 warn State "heytech.0.sensors.bri_actual_hey" has no existing object, this might lead to an error in future versions
heytech.0
2021-08-27 17:49:12.467 info State value to set for "heytech.0.shutters.16.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.433 info State value to set for "heytech.0.shutters.16.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.433 info State value to set for "heytech.0.shutters.15.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.432 info State value to set for "heytech.0.shutters.15.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.431 info State value to set for "heytech.0.shutters.14.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.431 info State value to set for "heytech.0.shutters.14.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.430 info State value to set for "heytech.0.shutters.13.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.429 info State value to set for "heytech.0.shutters.13.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.424 info State value to set for "heytech.0.shutters.12.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.423 info State value to set for "heytech.0.shutters.12.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.422 info State value to set for "heytech.0.shutters.11.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.422 info State value to set for "heytech.0.shutters.11.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.421 info State value to set for "heytech.0.shutters.10.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.420 info State value to set for "heytech.0.shutters.10.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.420 info State value to set for "heytech.0.shutters.9.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.419 info State value to set for "heytech.0.shutters.9.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.418 info State value to set for "heytech.0.shutters.8.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.417 info State value to set for "heytech.0.shutters.8.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.417 info State value to set for "heytech.0.shutters.7.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.416 info State value to set for "heytech.0.shutters.7.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.415 info State value to set for "heytech.0.shutters.6.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.414 info State value to set for "heytech.0.shutters.6.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.414 info State value to set for "heytech.0.shutters.5.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.413 info State value to set for "heytech.0.shutters.5.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.412 info State value to set for "heytech.0.shutters.4.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.411 info State value to set for "heytech.0.shutters.4.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.410 info State value to set for "heytech.0.shutters.3.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.409 info State value to set for "heytech.0.shutters.3.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.408 info State value to set for "heytech.0.shutters.2.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.407 info State value to set for "heytech.0.shutters.2.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.403 info State value to set for "heytech.0.shutters.1.percent" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:12.401 info State value to set for "heytech.0.shutters.1.status" has to be type "number" but received type "string"
heytech.0
2021-08-27 17:49:11.292 info Software version: 8.027r
heytech.0
2021-08-27 17:49:11.216 info Model: HEYtech RS879M
heytech.0
2021-08-27 17:49:11.136 info Connected to controller
heytech.0
2021-08-27 17:49:11.084 info starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.heytech, node: v12.22.5, js-controller: 3.3.15
host.iobroker
2021-08-27 17:49:09.747 info instance system.adapter.heytech.0 started with pid 28607
host.iobroker
2021-08-27 17:49:07.255 info instance system.adapter.heytech.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
heytech.0
2021-08-27 17:49:06.711 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
heytech.0
2021-08-27 17:49:06.709 info terminating
heytech.0
2021-08-27 17:49:06.708 info cleaned everything up...
heytech.0
2021-08-27 17:49:06.706 info Got terminate signal TERMINATE_YOURSELF
host.iobroker
2021-08-27 17:49:06.706 info stopInstance system.adapter.heytech.0 send kill signal
host.iobroker
2021-08-27 17:49:06.703 info stopInstance system.adapter.heytech.0 (force=false, process=true)
heytech.0
2021-08-27 17:47:38.545 info starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.heytech, node: v12.22.5, js-controller: 3.3.15
host.iobroker
2021-08-27 17:47:37.171 info instance system.adapter.heytech.0 started with pid 28511
host.iobroker
2021-08-27 17:47:35.127 info iobroker exit 0
host.iobroker
2021-08-27 17:47:34.105 info iobroker host.iobroker object system.adapter.heytech.0 created
host.iobroker
2021-08-27 17:47:34.056 info iobroker host.iobroker object system.adapter.heytech.0.alive created
host.iobroker
2021-08-27 17:47:34.027 info iobroker host.iobroker object system.adapter.heytech.0.connected created
host.iobroker
2021-08-27 17:47:33.996 info iobroker host.iobroker object system.adapter.heytech.0.compactMode created
host.iobroker
2021-08-27 17:47:33.964 info iobroker host.iobroker object system.adapter.heytech.0.cpu created
host.iobroker
2021-08-27 17:47:33.931 info iobroker host.iobroker object system.adapter.heytech.0.cputime created
host.iobroker
2021-08-27 17:47:33.901 info iobroker host.iobroker object system.adapter.heytech.0.memHeapUsed created
host.iobroker
2021-08-27 17:47:33.871 info iobroker host.iobroker object system.adapter.heytech.0.memHeapTotal created
host.iobroker
2021-08-27 17:47:33.842 info iobroker host.iobroker object system.adapter.heytech.0.memRss created
host.iobroker
2021-08-27 17:47:33.813 info iobroker host.iobroker object system.adapter.heytech.0.uptime created
host.iobroker
2021-08-27 17:47:33.783 info iobroker host.iobroker object system.adapter.heytech.0.inputCount created
host.iobroker
2021-08-27 17:47:33.753 info iobroker host.iobroker object system.adapter.heytech.0.outputCount created
host.iobroker
2021-08-27 17:47:33.723 info iobroker host.iobroker object system.adapter.heytech.0.eventLoopLag created
host.iobroker
2021-08-27 17:47:33.692 info iobroker host.iobroker object system.adapter.heytech.0.sigKill created
host.iobroker
2021-08-27 17:47:33.662 info iobroker host.iobroker object system.adapter.heytech.0.logLevel created
host.iobroker
2021-08-27 17:47:33.655 info iobroker host.iobroker create instance heytech
host.iobroker
2021-08-27 17:47:33.621 info iobroker host.iobroker object system.adapter.heytech created/updated
host.iobroker
2021-08-27 17:47:33.505 info iobroker upload [0] heytech.admin /opt/iobroker/node_modules/iobroker.heytech/admin/admin.d.ts admin.d.ts video/mp2t
host.iobroker
2021-08-27 17:47:33.449 info iobroker upload [1] heytech.admin /opt/iobroker/node_modules/iobroker.heytech/admin/heytech.png heytech.png image/png
host.iobroker
2021-08-27 17:47:33.390 info iobroker upload [2] heytech.admin /opt/iobroker/node_modules/iobroker.heytech/admin/index_m.html index_m.html text/html
host.iobroker
2021-08-27 17:47:33.332 info iobroker upload [3] heytech.admin /opt/iobroker/node_modules/iobroker.heytech/admin/style.css style.css text/css
host.iobroker
2021-08-27 17:47:33.243 info iobroker upload [4] heytech.admin /opt/iobroker/node_modules/iobroker.heytech/admin/words.js words.js application/javascript
host.iobroker
2021-08-27 17:47:33.215 info iobroker host.iobroker install adapter heytech
host.iobroker
2021-08-27 17:46:03.681 info iobroker npm install [email protected] --loglevel error --prefix "/opt/iobroker" (System call)
host.iobroker
2021-08-27 17:46:03.679 info iobroker NPM version: 6.14.14
host.iobroker
2021-08-27 17:46:01.404 info iobroker add heytech auto --host iobroker
No response
We have detected that your adapter supports the compact mode. Please use the latest js-controller 2.0 and verify that everything works.
Some more information what is important to check can be found at ioBroker/ioBroker.js-controller#512
On questions please answer to the linked issue. Please close this issue after your test and add the version number that you have tested please as a comment.
Thank you for your support.
Dear Adapter developer,
Node.js 14 is now available for a year and Node.js 16 was release just some days ago and will become LTS by October 2021. We plan to update the ioBroker Node.js recommendation (currently 12.x) to 14.x later this year.
Please check your adapter with Node.js 14 especially, and ideally also directly with Node.js 16
Please add both versions to the adapter testing which is executed on commits.
If your adapter requires a certain minimum version of Node.js please set the 'engine' setting in package.json accordingly! Please also do this if the adapter is not able to work in certain Node.js versions, so that ioBroker can prevent users from installing te adapter if not compatible!
On questions please talk to us at ioBroker/ioBroker.js-controller#1138
Please close the issue after you checked it.
Thank you very much for your support!
I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:
https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/Jey-Cee/ioBroker.heytech
Thanks,
your automatic adapter checker.
P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info
I am an automatic service from ioBroker that searches adapters and makes suggestions.
I noticed that your adapter is not integrated in the ioBroker.discovery. Using the Discovery adapter, ioBroker can automatically find devices or suggest services to the user for installation. If possible I would live to see your adapter added there.
Some adapters have already been added and you can use them as blueprints. See: https://github.com/ioBroker/ioBroker.discovery You need to fork this project and then create a PR for your adapter to be added.
Basically the plugins can do HTTP calls, UDP discovery, MDNS, UPNP and will iterate over all devices found by IP scan and check local serial ports. If you want you can also add new discovery methods but please try to do that with at least dependencies as possible.
Then create one file under lib/adapters for your adapter to implement the detection and proposal of an instance to the user.
On questions, the other developers will support in the forum or via GitHub issues too.
If no detection is possible, simply close this issue and I won't bother you again. ;-)
Thanks,
your automatic adapter checker.
P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info
Hi,
Frage Nr.1:
Verstehe ich es richtig, dass beim Ändern des Wertes „level.blind“ von 0 bis 100 dürfen die Rollladen, unabhängig davon auf welchen Position diese gerade sich befinden, auf eine entsprechende Position fahren? Wenn es so ist, dann dürfte bei mir etwas falsch laufen:
Frage Nr.2:
Haben die Einstellungen in der Rolladensteuerung beim Bedienen z.B. durch Instanzen/Objekten in iobroker eine Auswirkung oder sind nur für manuelle (Schalter im Haus) Steuerung relevant?
Frage Nr.3:
Ich beschäftige mich seit Kurzem mit smartVISU (smartvisu.de). Es scheint mir etwas leichter zu verstehen und bedienen (Projektaufbau)
Da gibt es sehr interessante und meiner Meinung nach sehr flexible/universelle Rolladensteuerung.
Hier ist die Beschreibung von Parameter für Device-Widgets:
https://docu.smartvisu.de/2.9/index.php?page=device/widget_device.shutter
Nur das Problem ist, dass die entsprechenden Parameter bzw. in iobroker Objekte fehlen.
Parameter in smartVISU:
{{ device.shutter(id, txt, item_move, item_stop, item_pos, item_shift, item_angle, item_saved, value_top, value_bottom, step, mode, background, value_pos_1, value_pos_2, text_pos_1, text_pos_2) }}
id
unique id for this widget (optional)
txt
name of the shutter
item_move
an item for the up and down movement (optional, value_top/value_bottom will be sent to item_pos if omitted)
item_stop
an item for stopping the movement (optional)
item_pos
an item for the absolute position of the blinds
item_shift
an item for increase and decrease of the blade (optional, for future use)
item_angle
an item for the absolute angle of the blade (optional)
item_saved
an item for some saved positions (optional)
value_top
the value for opened (optional, default 0)
value_bottom
the value for closed (optional, default 255)
step
step between two values (optional, default 5)
mode
'half' blade turns from -1 to +1, 'full' blade turns from 0 to +1 (optional, default 'half')
background
a background image url (relative to smartVISU directory or absolute); optimal size is 100px x 180px (optional)
value_pos_1
the value to send for position 1 (optional, default 0)
value_pos_2
the value to send for position 2 (optional, default 1)
text_pos_1
the text printed on button for position 1 (optional, default Pos1)
text_pos_2
the text printed on button for position 2 (optional, default Pos2)
Ich kann nur folgende Parameter benutzen, da in iobroker nur diese Objekte existieren
Beispil für Rollo „heytech.0.shutters.22“
id - heytech.0.shutters.22
item_stop - heytech.0.shutters.22.stop
item_pos - heytech.0.shutters.22.percent (funktioniert aber nicht richtig. In Frage 1 beschrieben)
die Parameter werden in iobroker über socketio.0 übermittelt und gut angenommen:
Log:
heytech.0 | 2020-08-14 08:47:41.252 | info | (14052) Disconnected from controller |
---|---|---|---|
heytech.0 | 2020-08-14 08:46:42.681 | info | (14052) stop 22 |
heytech.0 | 2020-08-14 08:46:41.247 | info | (14052) down 22 |
heytech.0 | 2020-08-14 08:46:39.367 | info | (14052) stop 22 |
heytech.0 | 2020-08-14 08:46:35.755 | info | (14052) Connected to controller |
heytech.0 | 2020-08-14 08:46:35.754 | info | (14052) down 22 |
socketio.0 | 2020-08-14 08:46:27.760 | info | (7948) ==>Connected system.user.admin from ::ffff:192.168.178.51 |
socketio.0 | 2020-08-14 08:46:27.167 | info | (7948) <==Disconnect system.user.admin from ::ffff:192.168.178.51 smartVISU |
Ist es möglich für fehlende Parameter die entsprechenden Objekte in iobroker zu erzeugen?
Heytech Rolladensteuereung (WS879M + 2 Extension-Modulen). Firmware: V.8.027o
Hier ein Link mit weiteren Steuerungsbefehlen: https://github.com/Maddin0815/heytech_rolladen_linux_skripts/wiki#restliche-befehls%C3%BCbersicht-der-heytech-rolladensteuerung
Im Forum wurde danach gefragt ob man den Zeitplan auslesen und bearbeiten kann: https://forum.iobroker.net/post/1026023
I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:
https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/Jey-Cee/ioBroker.heytech
Thanks,
your automatic adapter checker.
P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info
A bug happened!
After update from last to the current version 1.0.2 Heytech adapter terminated and can't restart
At the first start the adapter was green but later switched to red. Now after restarting the adapter it switched after a very short phase from green to red(terminate).
I run iobroker under docker (buanet/iobroker v5.1.0).
If you need aditonal information don't hasitate to contact me.
Cheers
Guidau
1.0.2
3.3.18
12.22.6
6.14.15
Debian
heytech.0
2021-10-23 18:23:46.877 warn Terminated (UNCAUGHT_EXCEPTION): Without reason
heytech.0
2021-10-23 18:23:46.876 info terminating
heytech.0
2021-10-23 18:23:46.875 info cleaned everything up...
heytech.0
2021-10-23 18:23:46.873 error states[st].val.replace is not a function
heytech.0
2021-10-23 18:23:46.872 error TypeError: states[st].val.replace is not a function at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.heytech/main.js:789:53) at processImmediate (internal/timers.js:463:21)
heytech.0
2021-10-23 18:23:46.871 error uncaught exception: states[st].val.replace is not a function
heytech.0
2021-10-23 18:23:45.798 info Software version: 8.027r
heytech.0
2021-10-23 18:23:45.722 info Model: HEYtech RS879M
heytech.0
2021-10-23 18:23:45.643 info Connected to controller
heytech.0
2021-10-23 18:23:45.600 info starting. Version 1.0.2 in /opt/iobroker/node_modules/iobroker.heytech, node: v12.22.6, js-controller: 3.3.18
No response
Dear Adapter developer,
with js-controller 3.2 and js-controller 3.3 some additional checks were added to make sure that created objects match to the specifications and also written state values match to the object definition.
If something is not correct this is logged as 'warning' or 'info' log.
Please take the time to verify your adapter by ideally starting with a fresh instance and do some actions and verify the log. If you see a warn log there from these checks please adjust the adapter and fix the relevant cases.
For questions please refer to ioBroker/ioBroker.js-controller#1301
Additionally we are preparing Admin 5 which will have a completely rewritten UI. Please install Admin 5, activate that new UI and verify that the configuration of you adapter works as expected also there.
More informations on Admin 5 can be found in Forum https://forum.iobroker.net/topic/44282/test-adapter-admin-5-0-x-alpha-der-neuen-ui
Please close the issue after you checked it.
Thank you very much for your support!
Dear Adapter developer,
with js-controller 4.0 object definitions are now also checked that min/max in only provided for number/mixed objects and that the type of the default value matches to the object type.
If something is not correct this is logged as 'warning' or 'info' log.
Please also make sure to update to the lastest @iobroker/testing dependency 2.5.4 or to accept the PR from Apollon77 for legacy testing!
Please spent some time to verify your adapter by ideally starting with a fresh instance and do some actions and verify the log. If you see a warn or info log there from these checks please adjust the adapter and fix the relevant cases.
For questions please refer to ioBroker/ioBroker.js-controller#1749
Please close the issue after you checked it.
Thank you very much for your support to get the best experience for the growing numbers of ioBroker users!
Version: stable=1.0.0 (30 days old) => latest=1.0.1 (30 days old)
Installs: stable=3 (23.08%), latest=4 (30.77%), total=13
Click to edit
Hi,
the new js-controller 2.0 will come into latest repository in the next days and we want to make sure that all adapters are working well. We already did a 2 weeks Beta test and so some adapter were aleady checked and some needed slight adjustments.
You can find more information in ioBroker/ioBroker.js-controller#482 and in the ioBroker Forum. If you have more technical questions please write in the referenced issue or in the Developer thread please. General questions are best in the genral thread.
Please update your systems to js-controller 2.0 and check your adapter.
Please close this issue once you have checked your adapter or received successfull reports from users.
Thank you very much for your support. Please contact us in the other Threads or Forum on any question.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.