GithubHelp home page GithubHelp logo

jey-cee / iobroker.enocean Goto Github PK

View Code? Open in Web Editor NEW
24.0 8.0 12.0 120.15 MB

Connect and control your EnOcean devices with ioBroker.

License: Other

JavaScript 84.48% HTML 8.75% CSS 1.26% Python 5.51%
eltako iobroker enocean

iobroker.enocean's Introduction

Logo

ioBroker.enocean

NPM version Downloads Number of Installations (latest) Number of Installations (stable) Dependency Status

NPM

Tests:: Travis-CI

EnOcean adapter for ioBroker

Connects EnOcean devices via USB/Serial devices with TCM300 Chips

Join the Discord server to discuss everything about ioBroker-enocean integration!

If you like my work, please feel free to provide a personal donation
(this is an personal Donate link for Jey Cee, no relation to the ioBroker Project !)
Donate

Compatible USB Sticks & Modules

USB300

DOSMUNG USB Stick with SMA port

FAM-USB (ESP3 Firmware)

EnOcean Pi Modul Important Note: On Pi3 & Pi4 you have to disable the onboard Bluetooth module, otherwise the EnOcean module will not work!

Eltako FGW14:
Important Notes: This gateway does not support all features and devices of this adapter.
Known features that does not work: RSSI, Gateway information can not be read and only RS485 Bus devices can be controlled without FTD14 (not tested yet). If there is no technical reason to use this gateway it is highly recomended to use an other one.
The bus devices report with their bus address, i.e. it starts with 00 00 00 01.

ALL SMART EnOcean LAN Gateway - BUY No longer available.

ALL SMART EnOcean Multi-Gateway - BUY

Control devices

In general there is a cmd object where you can choose the command that you want to execute. Before you can execute a command you have to set all attributes that are necessary, you can find this information in the profile definition.

Special:

  • A5-20-xx: Devices with this profile does only accept commands within 1 second after they have sent a message. They send periodically (10 minutes?), please read the manual.

Teach-in

  • The process is documented with (short) step-by-step instructions in the adapter configuration. There you can Choose your device and the instructions will be displayed. Follow them.
  • Devices without possibility to teach-in to another device (like Eltako Series 12 also known as Opus Green Net): They can be controlled with an virtual switch (F6-02-02): Open configuration and click add new device. Now choose X_Virtual as manufacturer and Switch as device, use ID fffffff0. Count up the last sign, 1-9 and a-f, for each new virtual switch. Click add device and close configuration. Then start teach-in on your device according to the manual, send command from virtual switch. Now you should be able to control the device.

Teach-out (delete adapter binding from the device)

  • Eltako Tipp-Funk: Send 3 times teach-in command during 2 seconds from ioBroker to device
  • Devices with UTE: Start Teach-in for the adapter and follow the device instructions.
  • RPS: Just delete the obejcts
  • none: Just delete the objects

Troubleshooting

  1. Device does not react to command:
    • The teachin process was not successful. Depending on the device, successful teach-in is signalled, pay attention to this signal. If there is no signal, try again.
    • Check if all attributes related to the CMD are set correctly.
    • If the rssi value is higher than -70 dBm, the signal could be too weak. Try to move the device closer to the gateway.
    • Valve actuators (thermostats) are sending a message every x minutes. After receiving the message the device accept a command within a second. To achive this use a script that sends the command after receiving the message. A good trigger in the script is the rssi value.

Profile definition file

Data structure

case: Could be a single element or an array, that holds a set of datafields. In case of an array the element is bound to a condition.

send: true means this set of data is a command that will be sent to the device.

auto_answer: true means this command will be executed after receiving a telegram from the device.

condition: The condition which has to be true that this set of datafields is processesd. In the most cases the condition is a specific value from the data package.

datafield: Information where in the data package the data are and how to handle the value. Also, there is the object definition for ioBroker.

datafield -> secondArgument: Used to get a secondary information/value from the data package. Use case: Units can vary on their amount, so the device sends the unit as a separate information. To change the unit inside ioBroker depending on the sent information, it is necessary to know this while processing the value.

datafield -> condition: This could be a formula to convert a value. This is based on JSON-logic for detailed information refer to http://jsonlogic.com/operations.html.

Example:

//True or false
"==": [{"var": "value"}, 0]

//This will take the delivered value and check if it is equal to 0, if it is the state in iobroker will set to true.

datafield -> value: This represents the value that is given back, except the condition is the output value. Than value should not be defined.

Example:

//Temperature conversion from received data
 "+": [{
         "*": [
              { "-": [{"var": "value"}, 0] },
              0.2
            ]}, 0]

//This is a more complex looking formula.
//It is based on this one: Device Value = Multiplier * ( rawValue - Range min) + Scale min
//The Multiplier, in this case 0.2, is calculated in this way: (Scale max - Scale min) / (Range max - Range min)

datafield -> value_out: This represents the value that will be sent to the device. This has only to be defined if a conversion is needed.

Example:

//Temperature conversion from ioBroker
 "/": [{
         "+": [
              { "-": [{"var": "value"}, 0] },
              0
            ]}, 0.2]

//This is a more complex looking formula.
//It is based on this one: Device Value = ( ( rawValue - Range min) + Scale min ) / Multiplier
//The Multiplier, in this case 0.2, is calculated in this way: (Scale max - Scale min) / (Range max - Range min)

datafield -> decimals: Defines how many digits after decimal point will be shown.

datafield -> unit: Use this if the Unit is variable otherwise define it in iobroker.

Example:

//Choose between Watt(W) and Kilowatt(kW) depending on the unit information from the device
 "unit":{
            "if": [
              {"==":[{"var": "value2"}, 3]}, "W",
              {"==":[{"var": "value2"}, 4]}, "kW"
            ]
          }

//value2 comes from secondArgument. 

Device definition

The full implementation of a device consists minimum of two parts: A entry in 'lib/devices/MANUFACTURER/MODEL/device.json' and a EEP file, which defines the objects and how to handle the data telegram. The lib/definitions/devices.js has to be updated with the new device. There are devices which uses more than one data telegram type to communicate, this means they have more EEP files.
In special cases, as Eltako, there is also a manufacturer specific part in the 'packet_handler.js' defined.

"Model name or type" : {
      "EEP": [                    //The EEP(s) that will be used for this device. First one has to be the one that controlls the device.
        "TF-13-07",
        "TF-13-06"
      ],
      "autocreate": false,         //false if the device needs additional steps for teachin
      "teachin_method": "none",    //filter for automated teachin telegrams
      "id_offset": true,           //not all devices checks if the telegram whether it is for them. Not applicable where teachin_method is 4BS.
      "broadcast": false,          //true if the receiver id has to be ffffffff. This is used for virtual devices like a switch.
      "help": {                    //a step by step instruction how to add the device.
        "en": {
          "1": "Enter device ID.",
          "2": "Click on 'Add Device'."
        },
        "de": {
          "1": "Geräte ID eintragen.",
          "2": "Auf 'Gerät Hinzufügen' klicken."
        }
      }
    }

For development

To test telegram handling create a channel with name development and in this channel an object with name telegram, type string.

Changelog

0.9.1 (2023-09-01)

  • (Jey Cee) added support for Eltako FKD-am
  • (Jey Cee) added Afriso ASD 20
  • (Jey Cee) added EEP F6-05-02
  • (Jey Cee) change log level for missing /dev/serial/by-id
  • (Jey Cee) change log level for initial information request on gateway
  • (Holger Will) update X1-01-02.json

0.9.0 (2023-07-27)

  • added Afriso ASD 10
  • fix D2-05-00 Goto top/bottom
  • catch error while update objects on adapter start
  • workaround for serial port selection does not display all options

0.8.5 (2023-02-11)

  • rework TF-13-25, fixes Eltako DSZ14 (#87)
  • rework TF-13-14, SP uses now temperature range 0-40°C
  • remove useless object ASC from A5-20-01
  • added Afriso FT & FTF
  • added R-Tronic RT B (A5-10-06 + RPS)
  • added Eltako F3Z14D, FWZ14, FRGBW14, FWS81
  • added new teachin telegram for FUD61NPN-230V
  • added remove button to device list in config
  • added profile F6-05-01
  • fix F6-10-00: The close state was not set, the window was always shown as open.
  • fix multiple conditions in eep's
  • fix Eltako FGW14-USB does not receive status updates
  • fix lastID is null when using Eltako FGW14-USB
  • fix TF-01-01 TT and TTT both set on incoming telegram, only TT has to be set
  • fix I1-01-01 invalid telegram send by on and off
  • fix device definition Oventrop mote 420
  • fix missing zeros in front of sender IDs while using FGW14
  • fix incomplete data while receiving type 10 messages
  • fix missing device name
  • code cleanup and refactoring

Older changelog entries are moved to changelog.md

License

Attribution-NonCommercial 3.0 (CC BY-NC 3.0)

Copyright (c) 2023 Jey Cee [email protected]

http://creativecommons.org/licenses/by-nc/4.0/

Short content: Licensees may copy, distribute, display and perform the work and make derivative works based on it only if they give the author or licensor the credits in the manner specified by these. Licensees may copy, distribute, display, and perform the work and make derivative works based on it only for noncommercial purposes. (Free for non-commercial use).

iobroker.enocean's People

Contributors

f-io avatar holger-will avatar j1s2e3 avatar jey-cee avatar uklatt 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iobroker.enocean's Issues

Opus greenNet GN-BH63AP-pw / ELTAKO FBH63AP

Manufacturer: Opus greenNet (steht zumindest drauf), aber es scheint doch ELTAKO zu sein
Model: Opus greenNet GN-BH63AP-pw bzw. ELTAKO FBH63AP-rw bzw. ELTAKO F(A)BH65S-wg
Production date/period: ca. 2015 (?). Bin über diesen Artikel aus 2015 auf den Melder gestoßen
Link to product: https://wiki.fhem.de/wiki/EnOcean-FBH65S-Funk-Bewegungs-_Helligkeitssensor

Bei dem Teil scheint es etwas komplizierter zu sein: Ich kannte den Bewegungsmelder nur als Opus GN-BH63AP-pw und habe ihn als Restposten bei ebay bestellt, doch als ich beim EnOcean-Adapter (aus den Community Adapters) Autodetect und den Lern-Modus am Gerät gestartet habe (man muss kurz einen Magneten an eine Seite halten), wurde mir der Melder als ELTAKO angezeigt und hatte EEP: A5-08-01.
Danach habe ich den Adapter gelöscht, die Version hier aus diesem Repository installiert und habe es mit den ähnlichen Modellbezeichnungen von ELTAKO probiert, doch diese haben EEP: TF-13-13 und es konnte keine Verbindung hergestellt werden.

warnungen im log admin 5

adapter version 0.3.6

`enocean.0 | 2021-05-13 06:50:51.309 | warn | Read-only state "enocean.0.gateway.lastID" has been written without ack-flag with value "01a5bd01"

enocean.0 | 2021-05-13 06:49:11.232 | warn | Read-only state "enocean.0.gateway.lastID" has been written without ack-flag with value "01a5bd01"

enocean.0 | 2021-05-13 06:45:51.093 | warn | Read-only state "enocean.0.gateway.lastID" has been written without ack-flag with value "01a5bd01"

enocean.0 | 2021-05-13 06:44:11.011 | warn | Read-only state "enocean.0.gateway.lastID" has been written without ack-flag with value "01a5bd01"

enocean.0 | 2021-05-13 06:43:58.060 | warn | Read-only state "enocean.0.gateway.lastID" has been written without ack-flag with value "05057e7d"`

WINKHAUS FM.V.SW

Manufacturer: WINKHAUS
Model: FM.V.SW
Production date/period:
Link to product:

Compatibility check to js-controller 3.3 and Admin5 React UI

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!

FFR61 Profil überarbeiten

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '...'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots & Logfiles
If applicable, add screenshots and logfiles to help explain your problem.

Versions:

  • Adapter version:
  • JS-Controller version:
  • Node version:
  • Operating system:

Additional context
Add any other context about the problem here.

ELTAKO FTR65HB (Temperatur-Regler)

Manufacturer: ELTAKO
Model: FTR65HB
Production date/period:
Link to product: https://www.eltako.com/fileadmin/downloads/de/_bedienung/FTR65HB_30065480-1_dt.pdf

Betriebsart FHK: EEP: A5-10-06
Lerntelegramm: 0x40300D87
Datentelegramm:

Data_byte0 = 0x0F
Data_byte1 = Istttememperatur 0xFF..0x00 entspricht 0..40°C
Data_byte2 = Solltemperatur 0x00..0xFF entspricht 0..40°C
Einstellbarer Bereich: 12..28°C Frostsymbol = 8°C

Betriebsart TF61: EEP: A5-38-08
Lerntelegramm: 0xE0400D80
Datentelegramm:

AUS = 0x01000008
EIN = 0x01000009

Hysterese: 1°

PEHA D 451 FU-BM

Manufacturer: PEHA
Model: D 451 FU-BM
Production date/period:
Link to product:

Eltako TF61R-230V

Manufacturer: Eltako
Model: TF61R-230V
Production date/period:
Link to product:

Think about to fix the issues found by adapter checker

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.enocean

  • [E154] common.dependencies must contain {"js-controller": ">=2.0.0"} or {"js-controller": ">=3.0.0"}
  • [E605] No actual year found in copyright. Please add "Copyright (c) 2022 Jey Cee [email protected]" at the end of README.md
  • [E701] No actual year found in LICENSE. Please add "Copyright (c) 2022 Jey Cee [email protected]" at the start of LICENSE

I have also found warnings that may be fixed if possible.

  • [W400] Cannot find "enocean" in latest repository
  • [W505] setTimeout found in "main.js", but no clearTimeout detected

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

add Eltako FHF

Manufacturer: Eltako
Model: FHF
Production date/period: unknown
Link to product: https://www.eltako.com/fileadmin/downloads/de/_bedienung/FHF_30000420-1_dt.pdf

Hi,
ich habe bereits ein bisschen versucht mein FHEM-Setup auf ioborker zu migrieren.
(Ich bin kein Programierer, agiere als mit gefährlichem Halbwissen :) )

In der devices.json habe ich den Part für den FHF Fenstergriff hinzugefügt:
"FHF": { "EEP": ["F6-10-00"], "autocreate": true, "teachin_method": "RPS", "id_offset": false, "help": { "de": { "1":"Auf 'Gerät Hinzufügen' klicken.", "2":"Teach-In starten." } } },

Damit Funktioniert auch das einlernen, leider aber als F6-02-02 bzw. im Log erscheint "F6-03-xx detected and added to devices".
Wenn ich danach das angelegte Obejkt auf F6-10-00 abändere und die zwei Datenpunkte "WIN" und "WINT" anlege, bekomme ich beim öffnen bzw. kippen die richtigen Werte zurück gemeldet.

Ich hoffe diese Infos helfen beim hinzufügen ins Projekt.

Vielen Dank und tolle Arbeit.

Eltako FSVA-230V

Manufacturer: Eltako
Model: FSVA-230V
Production date/period: 39/15
Link to product:

FSR14x4 schaltet nicht mehr

Describe the bug
Adapter reagiert nach Update auf 0.3.0 nicht mehr auf Schaltversuche.

To Reproduce
CMD schalten auf 1 oder 0 (FSR14x4)

Screenshots & Logfiles
grafik

Version 0.3.0 in /opt/iobroker/node_modules/iobroker.enocean, node: v12.20.0, js-controller: 3.1.6

The "enocean.0.0190xxx." is invalid. Ids are not allowed to end in "."

Describe the bug
Since v0.3.1 my motion sensor Eltako FABH65S is supported and I'm able to read the states, however, it's not very reliable and every time there's a signal incoming (e.g. when forcing the teaching mode of the sensor) I get this error and the adapter crashes.

To Reproduce
Steps to reproduce the behavior:

  1. Add new device, choose FABH65S, insert ID (with leading zero, different from the label on the backside or copy & paste last received ID)
  2. Put a magnet close to the sensor to initiate teaching/pairing mode
  3. Adapter crashes (see log)
  4. Wait for adapter to start again, trigger sensor after a few minutes, adapter crashes again

Screenshots & Logfiles

-- -- -- --
enocean.0 2021-01-27 01:08:20.247 info (7830) starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.enocean, node: v12.18.3, js-controller: 3.1.6
host.ioBroker 2021-01-27 01:08:17.667 info instance system.adapter.enocean.0 started with pid 7830
host.ioBroker 2021-01-27 01:07:47.628 info Restart adapter system.adapter.enocean.0 because enabled
host.ioBroker 2021-01-27 01:07:47.621 info instance system.adapter.enocean.0 terminated with code 0 (NO_ERROR)
enocean.0 2021-01-27 01:07:47.074 info (7683) Terminated (NO_ERROR): Without reason
enocean.0 2021-01-27 01:07:47.072 info (7683) terminating
enocean.0 2021-01-27 01:07:47.056 info (7683) The serial port was closed.
enocean.0 2021-01-27 01:07:47.046 info (7683) cleaned everything up...
enocean.0 2021-01-27 01:07:47.041 error at processTicksAndRejections (internal/process/task_queues.js:97:5)
enocean.0 2021-01-27 01:07:47.041 error at runMicrotasks ()
enocean.0 2021-01-27 01:07:47.041 error at handleType1.main (/opt/iobroker/node_modules/iobroker.enocean/lib/tools/Packet_handler.js:157:16)
enocean.0 2021-01-27 01:07:47.041 error at handleType1.setState (/opt/iobroker/node_modules/iobroker.enocean/lib/tools/Packet_handler.js:174:22)
enocean.0 2021-01-27 01:07:47.041 error at Enocean.setStateAsync (/opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1584:16)
enocean.0 2021-01-27 01:07:47.041 error at new Promise ()
enocean.0 2021-01-27 01:07:47.041 error at /opt/iobroker/node_modules/iobroker.js-controller/lib/tools.js:1585:16
enocean.0 2021-01-27 01:07:47.041 error at Enocean.setState (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5713:17)
enocean.0 2021-01-27 01:07:47.041 error at validateId (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:518:23)
enocean.0 2021-01-27 01:07:47.041 error (7683) Error: The "enocean.0.0190xxxx." is invalid. Ids are not allowed to end in "."
enocean.0 2021-01-27 01:07:47.033 error (7683) unhandled promise rejection: The "enocean.0.0190xxxx." is invalid. Ids are not allowed to end in "."
Unhandled 2021-01-27 01:07:47.031 error promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().

Versions:

  • Adapter version: 0.3.1 (pulled on 27th Jan. 2021 from this GitHub Repo)
  • JS-Controller version: 3.1.6, EDIT: upgraded to 3.2.11 but no improvement
  • Node version: 12.18.3
  • Operating system: Linux/Raspberry Pi OS

PEHA 4511 FU-EP ST

Manufacturer: PEHA
Model: 4511 FU-EP ST
Production date/period:
Link to product:

TeachIn Probleme mit FJ62NP-230V

Describe the bug
Hallo,

ich habe das Problem, dass der TeachIn bzw. die Steuerung meines FJ62NP-230V nicht richtig funktioniert.
Der TeachIn wird zum einen vom Aktor nicht bestätgt, zum anderen können keine Befehle an den Aktor gesenden werden.
Interessanterweise werden aber die Staus-Meldungen empfagen.

To Reproduce
Der Fehler ist immer aufgetreten, sowohl bei einem Aktor welcher schon eingelernt war (FHEM) als auch nach einem Werksreset.
Auch das ein bzw. ausschalten der Bestätigungstelegramme hat keinen Unterscheid ergeben.

Screenshots & Logfiles

enocean.0 2020-12-27 14:57:59.040 warn (630) The data length for a 4BS telegram is incorrect. The length is 0
enocean.0 2020-12-27 14:57:59.030 info (630) state 04111585.CMD changed: 4 (ack = false) state: {"val":4,"ack":false,"ts":1609077479024,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1609077479024}

Versions:

  • Adapter version: 0.3.0
  • JS-Controller version: 3.1.6
  • Node version: v12.20.0
  • Operating system: docker-image on rasberrypi (debian)

Eltako F4SR14-LED

Manufacturer: Eltako
Model: F4SR14-LED
Production date/period:
Link to product:

Thermokon SR04 zeigt negative Vorzeichen

Describe the bug
Die Messwerte werden mit negativen Vorzeichen ausgegeben.
Beispiel: 18°C wird als -18°C ausgegeben.

Screenshots & Logfiles
2021-01-18 (2)

Versions:

  • Adapter version: 0.3.0
  • JS-Controller version: 4.8.4
  • Node version: v12.20.1

Compatibility check and testing for Node.js 14 and 16

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!

Eltako FMS14

Hoppe Fenstergriff SecuSignal / ConnectHome

Manufacturer: Hoppe (7FF)
Model: SecuSignal + ConnectHome
Production date/period: N/A
Link to product: Link 1 - Link 2

Vergleichbar mit diesem Issue

EEP: F6-10-00
#Teach-Methode?: RPS

  "HOPPE": {
    "SecuSignal": {
      "EEP": ["F6-10-00"],
      "autocreate": true,
      "teachin_method": "RPS",
      "id_offset": false,
      "help": {
        "en": {
          "1": "Click on 'Add Device'.",
          "2": "Start teachin mode"
        },
        "de": {
          "1": "Auf 'Gerät Hinzufügen' klicken.",
          "2": "Teach-In starten."
        }
      }
    }
  },

Rework Teachin

The Actual teachin procedure is comlicated and causes a lot of problems.
Specially when devices like Eltako TF does not check if the Telegram was sent with the own ID. So it is needed that ioBroker sends from a unique ID per device.
The BaseID offset has to be set Automatically for each device, no user interaction anymore.

Also the process should be mor guided.

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.