Code Monkey home page Code Monkey logo

node-red-contrib-bosch-shc's Introduction

Bosch Smart Home Controller (SHC) nodes for Node-Red

NPM version Downloads Build Status XO code style License

ko-fi

This module provides several nodes for interacting with Bosch Smart Home services and edge devices via the local controller API.

A full documentation of the API can be found here.

Example flows can be found here.

Compatible with Node-RED version 1.0.0 or higher.

Release Notes

Version 0.6.35 adds a new node for triggering automations.

Version 0.4.33 adds two new nodes: for Open doors/windows and for User Defined States.

Version 0.3.22 allows you to request the device meta data, e.g. the availability status of a device. In addition, it is now possible to request all device services or a specific state across all related devices at once. The result is an array that you can use, for example, to calculate the total power consumption of all smart plugs or the average temperature across all rooms.

Some legacy code has been removed. If you encounter any problem with your shc-config after the update to version 0.3.22, you will probably need to recreate it to solve this problem.

With version 0.2.14 the smart thermostat (TRV) was introduced and optimizations were implemented that improves the interaction with the Node-RED dashboard:

  • msg.topic now contains the name of a device, so that several devices can be separated in a dashboard chart. You are also free to configure msg.topic via the device property name.
  • The output of boolean services has been aligned with the input if the corresponding state is set. The Node-RED dashboard switch can now be wired directly to boolean services to toggle a switch state, such as for the camera or the smart plug.
  • The output for all services of a device is no longer an array. Instead each service is send as a separate msg.

With the update to version 0.1.7 or higher, the configuration of the SHC must be created again if you have created SHC configurations with version 0.0.6 or earlier. Therefore, please delete old SHC configurations first and recreate them after the update.

The reason for this is a change of the certificate handling. As of version 0.1.7, the certificates are stored in Node-RED. This makes the whole thing more secure if Node-RED itself is properly secured. After the update you can delete the directory "/certs" in "~/.node-red".

If you encounter any problem, do not hesitate to create an issue.

Features

  • Local network discovery of the SHC
  • Pairing with SHC
  • Event polling (long polling)
  • Get all services from devices
  • Get and set states of devices
  • Trigger scenarios

Device Node

There are two ways to receive data from the SHC, either by long polling or by a request. Please note that you should always prefer the long polling mechanism to receive data from the SHC rather than requesting it. However, sometimes it is useful to request a state at a specific time, but you should not do this too often in a short time period, as described here.

Long Polling

By default events are received via long polling from the SHC as soon as any state of a service changes. Each device has several services. A device node sends either the meta data of a device, all related services of a device, a specific service or a single state.

Device node

Requesting

To request a device any msg can be used, if the msg.payload does not match the values to set a state. The device node overwrites msg.topic and msg.payload with the selected information as configured in the device node configuration page.

Request a device

Get all services of a device

To send all related services of a device, select a Device and select all as a Service. The State input field can be left empty. This node sends a message when one of the device services has been updated.

All services

Get a specific service of a device

Select a Service to send only JSON objects of the specified service. Requesting the service sends an ENTITY_NOT_FOUND error message if the service does not exist or is not related to the device. Via long polling, no msg will be sent from the node.

Specific service

Get a state

If you only need a value instead of the entire service object, enter the name of the State in the corresponding field. No msg is sent from the node if the state does not exist or is not related to the service.

State of a service

Set a state

If the msg.payload matches the predefined type and range of the service, the associated state will be updated with the specified payload value. The following services can be updated:

Service Payload Type Payload Range Information
IntrusionDetectionControl boolean true, false Activate/deactivate alarm system
PresenceSimulationConfiguration boolean true, false Activate/deactivate presence simulation
SmokeDetectorCheck boolean true, false Triggers a test alarm on this device
PowerSwitch boolean true, false Turn device on/off
PrivacyMode boolean true, false Activate/deactivate camera privacy mode
HeatingCircuit, RoomClimateControl number 5.0, 5.5, ..., 29.5, 30.0 Set a temperature
ShutterControl number 0.000, 0.005, ..., 0.995, 1.000 Set the level of a shutter (0 = close)
string stop, close, open Set the operation state of a shutter (case insensitive)

Set the temperature of a thermostat with setpointTemperature via RoomClimateControl.

Set state flow

Set state device

Example payload to trigger the device state change

Trigger state device

OpenDoorsWindows Node

Use this node to get open doors and windows.

OpenDoorsWindows node

Automation Node

Use this node to trigger the defined automation. Each msg can be used as a trigger. This node sends an event message when the defined automation has been triggered.

Automation node

Scenario Node

Use this node to trigger the defined scenario. Each msg can be used as a trigger. This node sends an event message when the defined scenario has been triggered.

Scenario node

User Defined State Node

Use this node to get/set user defined states. Use true/false to enable/disable a state, everything else to get the state. This node sends an event message when the defined state has been changed.

State node

Faults Node

This node sends all events containing the faults property. These messages usually refer to low-battery events of battery-powered edge devices.

Faults node

By activating the Debug check box, this node sends all messages that are received from the SHC via long polling.

node-red-contrib-bosch-shc's People

Contributors

dependabot[bot] avatar hobbyquaker avatar hxmelab avatar raytiw avatar saemmy avatar thomaslagies avatar

Stargazers

 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  avatar  avatar  avatar  avatar

node-red-contrib-bosch-shc's Issues

Node red do not start after update bosch-shc

Hello,
I have updated node.js. Now I have the problem that node red hangs on startup. Attached is the log at startup.

Welcome to Node-RED

5 Apr 16:53:02 - [info] Node-RED version: v3.0.2
5 Apr 16:53:02 - [info] Node.js version: v20.12.1
5 Apr 16:53:02 - [info] Windows_NT 10.0.22631 x64 LE
5 Apr 16:53:03 - [info] Loading palette nodes
5 Apr 16:53:04 - [debug] Module: @alainx277/node-red-miele 0.1.0 \Users\micha.node-red\node_modules@alainx277\node-red-miele
5 Apr 16:53:04 - [debug] Module: @rotflorg/node-red-contrib-ecoflow-powerstream 0.5.1 \Users\micha.node-red\node_modules@rotflorg\node-red-contrib-ecoflow-powerstream
5 Apr 16:53:04 - [debug] Module: google-translate-tts 0.4.0-dev \Users\micha.node-red\node_modules\google-translate-tts
5 Apr 16:53:04 - [debug] Module: node-red-contrib-boolean-logic 0.0.3 \Users\micha.node-red\node_modules\node-red-contrib-boolean-logic
5 Apr 16:53:04 - [debug] Module: node-red-contrib-boolean-logic-ultimate 1.0.56 \Users\micha.node-red\node_modules\node-red-contrib-boolean-logic-ultimate
5 Apr 16:53:04 - [debug] Module: node-red-contrib-bosch-shc 0.4.31 \Users\micha.node-red\node_modules\node-red-contrib-bosch-shc
5 Apr 16:53:04 - [debug] Module: node-red-contrib-buffer-parser 3.2.2 \Users\micha.node-red\node_modules\node-red-contrib-buffer-parser
5 Apr 16:53:04 - [debug] Module: node-red-contrib-calc 1.0.5 \Users\micha.node-red\node_modules\node-red-contrib-calc
5 Apr 16:53:04 - [debug] Module: node-red-contrib-color-convert 0.0.8 \Users\micha.node-red\node_modules\node-red-contrib-color-convert
5 Apr 16:53:04 - [debug] Module: node-red-contrib-colorspace 1.0.2 \Users\micha.node-red\node_modules\node-red-contrib-colorspace
5 Apr 16:53:04 - [debug] Module: node-red-contrib-credentials 0.2.2 \Users\micha.node-red\node_modules\node-red-contrib-credentials
5 Apr 16:53:04 - [debug] Module: node-red-contrib-dashboard-bar-chart-data 0.9.8 \Users\micha.node-red\node_modules\node-red-contrib-dashboard-bar-chart-data
5 Apr 16:53:04 - [debug] Module: node-red-contrib-daylight-rgbw 2.1.7 \Users\micha.node-red\node_modules\node-red-contrib-daylight-rgbw
5 Apr 16:53:04 - [debug] Module: node-red-contrib-ecoflow 0.9.7 \Users\micha.node-red\node_modules\node-red-contrib-ecoflow
5 Apr 16:53:04 - [debug] Module: node-red-contrib-enocean 0.8.5 \Users\micha.node-red\node_modules\node-red-contrib-enocean
5 Apr 16:53:04 - [debug] Module: node-red-contrib-enocean-esp2 0.0.6 \Users\micha.node-red\node_modules\node-red-contrib-enocean-esp2
5 Apr 16:53:04 - [debug] Module: node-red-contrib-enocean-telegram-decoder 1.0.1 \Users\micha.node-red\node_modules\node-red-contrib-enocean-telegram-decoder
5 Apr 16:53:04 - [debug] Module: node-red-contrib-enoceanip 0.1.2 \Users\micha.node-red\node_modules\node-red-contrib-enoceanip
5 Apr 16:53:04 - [debug] Module: node-red-contrib-float 1.0.3 \Users\micha.node-red\node_modules\node-red-contrib-float
5 Apr 16:53:04 - [debug] Module: node-red-contrib-full-msg-json-schema-validation 1.1.0 \Users\micha.node-red\node_modules\node-red-contrib-full-msg-json-schema-validation
5 Apr 16:53:04 - [debug] Module: node-red-contrib-geofox-api 0.1.3 \Users\micha.node-red\node_modules\node-red-contrib-geofox-api
5 Apr 16:53:04 - [debug] Module: node-red-contrib-homekit-rgb 1.0.3 \Users\micha.node-red\node_modules\node-red-contrib-homekit-rgb
5 Apr 16:53:04 - [debug] Module: node-red-contrib-hue-tunable-white 1.1.1 \Users\micha.node-red\node_modules\node-red-contrib-hue-tunable-white
5 Apr 16:53:04 - [debug] Module: node-red-contrib-huemagic 4.2.2 \Users\micha.node-red\node_modules\node-red-contrib-huemagic
5 Apr 16:53:04 - [debug] Module: node-red-contrib-influxdb 0.6.1 \Users\micha.node-red\node_modules\node-red-contrib-influxdb
5 Apr 16:53:04 - [debug] Module: node-red-contrib-jsonfilter 0.1.0 \Users\micha.node-red\node_modules\node-red-contrib-jsonfilter
5 Apr 16:53:04 - [debug] Module: node-red-contrib-light 1.0.0 \Users\micha.node-red\node_modules\node-red-contrib-light
5 Apr 16:53:04 - [debug] Module: node-red-contrib-modbus 5.26.0 \Users\micha.node-red\node_modules\node-red-contrib-modbus
5 Apr 16:53:04 - [debug] Module: node-red-contrib-modbustcp 1.2.3 \Users\micha.node-red\node_modules\node-red-contrib-modbustcp
5 Apr 16:53:04 - [debug] Module: node-red-contrib-skyremote-new 0.1.2 \Users\micha.node-red\node_modules\node-red-contrib-skyremote-new
5 Apr 16:53:04 - [debug] Module: node-red-contrib-sonospollytts 2.0.8 \Users\micha.node-red\node_modules\node-red-contrib-sonospollytts
5 Apr 16:53:04 - [debug] Module: node-red-contrib-state 1.6.1 \Users\micha.node-red\node_modules\node-red-contrib-state
5 Apr 16:53:04 - [debug] Module: node-red-contrib-sum 0.1.1 \Users\micha.node-red\node_modules\node-red-contrib-sum
5 Apr 16:53:04 - [debug] Module: node-red-contrib-sun-position 2.2.0-beta3 \Users\micha.node-red\node_modules\node-red-contrib-sun-position
5 Apr 16:53:04 - [debug] Module: node-red-contrib-tofloat 1.0.0 \Users\micha.node-red\node_modules\node-red-contrib-tofloat
5 Apr 16:53:04 - [debug] Module: node-red-contrib-tts-ultimate 1.0.50 \Users\micha.node-red\node_modules\node-red-contrib-tts-ultimate
5 Apr 16:53:04 - [debug] Module: node-red-contrib-tuya-smart-device 5.1.0 \Users\micha.node-red\node_modules\node-red-contrib-tuya-smart-device
5 Apr 16:53:04 - [debug] Module: node-red-contrib-ui-iro-color-picker 0.1.6 \Users\micha.node-red\node_modules\node-red-contrib-ui-iro-color-picker
5 Apr 16:53:04 - [debug] Module: node-red-dashboard 3.5.0 \Users\micha.node-red\node_modules\node-red-dashboard
5 Apr 16:53:04 - [debug] Module: node-red-node-openweathermap 0.5.1 \Users\micha.node-red\node_modules\node-red-node-openweathermap
5 Apr 16:53:04 - [debug] Module: node-red-node-random 0.4.1 \Users\micha.node-red\node_modules\node-red-node-random
5 Apr 16:53:04 - [debug] Module: node-red-node-serialport 1.0.3 \Users\micha.node-red\node_modules\node-red-node-serialport
5 Apr 16:53:04 - [debug] Module: node-red-node-tail 0.3.2 \Users\micha.node-red\node_modules\node-red-node-tail
5 Apr 16:53:04 - [debug] Module: nr-strompreis 1.0.0 \Users\micha.node-red\node_modules\nr-strompreis
5 Apr 16:53:04 - [debug] Module: json-db-node-red 0.5.3 C:\Users\micha\node_modules\json-db-node-red
5 Apr 16:53:04 - [debug] ! Module: node-red-contrib-bosch-shc 0.3.25 C:\Users\micha\node_modules\node-red-contrib-bosch-shc ignored due to local copy
5 Apr 16:53:04 - [debug] Module: node-red-contrib-json 0.2.0 C:\Users\micha\node_modules\node-red-contrib-json
5 Apr 16:53:11 - [info] Dashboard version 3.5.0 started at /ui
5 Apr 16:53:11 - [warn] ------------------------------------------------------
5 Apr 16:53:11 - [warn] [node-red-contrib-enocean/enocean-config-node] Error: The module '\?\C:\Users\micha.node-red\node_modules@serialport\bindings\build\Release\bindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 83. This version of Node.js requires
NODE_MODULE_VERSION 115. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).
5 Apr 16:53:11 - [warn] ------------------------------------------------------
5 Apr 16:53:11 - [info] Settings file : C:\Users\micha.node-red\settings.js
5 Apr 16:53:11 - [info] Context store : 'default' [module=localfilesystem]
5 Apr 16:53:11 - [info] User directory : \Users\micha.node-red
5 Apr 16:53:11 - [warn] Projects disabled : editorTheme.projects.enabled=false
5 Apr 16:53:11 - [warn] Flows file name not set. Generating name using hostname.
5 Apr 16:53:11 - [info] Flows file : \Users\micha.node-red\flows_WSMD01.json
5 Apr 16:53:11 - [info] Server now running at http://127.0.0.1:1880/
5 Apr 16:53:11 - [debug] loaded flow revision: 7583d62c8f1ceb5c27e2e0a21544fa69
5 Apr 16:53:11 - [debug] red/runtime/nodes/credentials.load : no user key present
5 Apr 16:53:11 - [debug] red/runtime/nodes/credentials.load : using default key
5 Apr 16:53:11 - [debug] red/runtime/nodes/credentials.load : keyType=system
5 Apr 16:53:11 - [warn]


Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.

5 Apr 16:53:11 - [info] Waiting for missing types to be registered:
5 Apr 16:53:11 - [info] - enocean-config-node

Nodes go offline after time

Nodes go offline (status: "disconnected") after hours/days of usage.

Might be because to receiving an upload on the smart home controller? Nodes never recovered even BOSCH system ist working fine. Restart or re-deploy without any other changes successfully reconnected the nodes.

12 Jan 17:42:52 - [info] [shc-config:36aa8089.711ec8] Long polling SHC: XXX.XX.XXX.XX with poll Id: e7ejd3chh-342
15 Jan 07:44:47 - [error] [shc-config:36aa8089.711ec8] Error: connect EHOSTUNREACH XXX.XX.XXX.XX:8444
15 Jan 07:45:10 - [error] [shc-config:36aa8089.711ec8] Error: connect EHOSTUNREACH XXX.XX.XXX.XX:8444
15 Jan 07:45:33 - [error] [shc-config:36aa8089.711ec8] Error: connect EHOSTUNREACH XXX.XX.XXX.XX:8444
15 Jan 07:45:56 - [error] [shc-config:36aa8089.711ec8] Error: connect EHOSTUNREACH XXX.XX.XXX.XX:8444
15 Jan 07:46:19 - [error] [shc-config:36aa8089.711ec8] Error: connect EHOSTUNREACH XXX.XX.XXX.XX:8444
15 Jan 07:46:43 - [error] [shc-config:36aa8089.711ec8] Error: connect EHOSTUNREACH XXX.XX.XXX.XX:8444

No SHC found in local network

Hey hymelab,

thanks for deploy the bosch smart home plugin for nodered.

When i search my Smart Home Controller - Press the Button till the lights are blinking - i become the follow message:

Searching SHCs in local network, please wait...
No SHC found in local network

Do you have any idea?

Thank you :D

Provide room name in the devices msg object

At the moment the device name is provided in msg.topic. I´m also interested to get the devices room name in the msg object.

What I would like to achieve: an easy way to get all my devices in InfluxDB and have a speaking name and room for all devices. At the moment I have for each single device an extra node and grap the device name from the msg.topic. When I filter for all devices and some specific services I loose the device name, and just have the deviceId. That would be ok, if there would be the possibility in NodeRed to fetch all deviceId and according deviceNames from SHC and same for roome: roomId + roomName.

So may the better solution instead of adding room name to message object would be to have a node for requestion room and device names together with their ids.

Setting RoomClimateControl of TRV (TargetTemperature)

Hey hxmelab,

Thanks a lot for your great node RED implementation of the BSH controller! Now I am able to control contact sensors and rollershutters and forward their state in OpenHab using simple flows.

I also own two TRVs. Reading temperature levels from the TRVs works fine. When I try to change their temperature by simple injecting a number like 20, I do not get any response from the TRV except for the output of the current temperature (I tested this in automatic and manual mode of the TRV). Is there anything I have to consider here?

And is there any option to read the TargetTemperature (ie. the number displayed) from the device instead to see whether the injection was accepted?

Not able to pair controller

Hello!

I'm running node-red in a docker containner running on a Synology NAS. My Android Smartphone is connected to the controller and everything works properly.

When I try to pair the node with the controller, I always getting the following error:
image

What can I do?

Pairing fails

Hi,

pairing fails.

image

I do not imagine why.

Can you help? I read all posts related to this and could not find an answer.

Running in docker container on Synology NAS.

Best regards, tossa-fan

Add support for HEATING_CIRCUIT devices.

The Bosch MB LANi gateway exposes Junker and Bosch heaters to Bosch SHC with deviceModel name "HEATING_CIRCUIT" and a HeatingSystemInformation service as parent.

{ "@type": "device", "rootDeviceId": "64-da-a0-02-8a-b2", "id": "hdm:ICom:0404200XX", "deviceServiceIds": [ "HeatingSystemInformation" ], "manufacturer": "JUNKERS", "roomId": "hz_4", "deviceModel": "LOGAMATIC_WEB_KM200", "serial": "0404200XX", "profile": "GENERIC", "name": "MB LANi", "status": "AVAILABLE", "childDeviceIds": [ "hdm:ICom:0404200XX:HC1", "hdm:ICom:0404200XX:HC2" ] },

Each heating circuit with a separate pump is labelled HC1, HC2 and so on and has its own device created. Here is the example for HC1:
{ "@type": "device", "rootDeviceId": "64-da-a0-02-8a-b2", "id": "hdm:ICom:0404200XX:HC1", "deviceServiceIds": [ "HeatingCircuit" ], "manufacturer": "JUNKERS", "roomId": "hz_10", "deviceModel": "HEATING_CIRCUIT", "serial": "0404200XXHC1", "profile": "GENERIC", "properties": { "heater.type": "RADIATOR" }, "name": "Heater Circuit 1", "status": "AVAILABLE", "parentDeviceId": "hdm:ICom:0404200XX", "childDeviceIds": [] },

The service is called via /services/HeatingCircuit/state
Example output:
{ "@type": "heatingCircuitState", "operationMode": "AUTOMATIC", "setpointTemperature": 22.0, "setpointTemperatureForLevelEco": 15.0, "setpointTemperatureForLevelComfort": 22.0, "schedule": { "profiles": [ { "day": "MONDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 300, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1290, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] }, { "day": "TUESDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 300, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1290, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] }, { "day": "WEDNESDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 300, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1290, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] }, { "day": "THURSDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 300, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1290, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] }, { "day": "FRIDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 300, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1290, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] }, { "day": "SATURDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 390, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1320, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] }, { "day": "SUNDAY", "switchPoints": [ { "startTimeMinutes": 0, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } }, { "startTimeMinutes": 390, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "COMFORT" } }, { "startTimeMinutes": 1320, "value": { "@type": "temperatureLevelSwitchPointValue", "temperatureLevel": "ECO" } } ] } ] }, "temperatureOverrideModeActive": false, "temperatureOverrideFeatureEnabled": true, "energySavingFeatureEnabled": false, "comfortTemperatureRange": { "minTemperature": 15.5, "maxTemperature": 30.0 }, "ecoTemperatureRange": { "minTemperature": 5.0, "maxTemperature": 21.5 }, "setPointTemperatureRange": { "minTemperature": 5.0, "maxTemperature": 30.0 }, "on": true }

It would be great, if this could be supported, so we could read "setpointTemperature" values into NodeRed flows. Of course I can test this with my setup.
Currently I don't think it is possible to change setpointTemperature via REST API.

Door/Window sensors not available

Hi,

I'm running the provided node-red docker container with version 3.0.2.
Version of the node-red-contrib-bosch-shc is in version 0.3.28.

I have set up the connection to the bosch smart home controller successfully and the device node discovers all my rooms and my hue lamps.
Unfortunately I'm not able to find my door/window sensors

Am I doing something wrong or are the sensors not yet supported?

If it is not yet supported, is it already planned?

Feature Request

Hi,
I like your Bosch Smart Home nodes !
would it be possible to get the device name (additionally to deviceId) in msg.topic?
would it be possible to get the temperature and the valve position for each thermostat in msg.topic?
Thank you in advance
Best regards
Gabriel

Always "ERROR - please check password"

Hi @hxmelab and thanks for developing this integration which I was looking for since some years.
Unfortunately I can not use it.
After configuring the properties of my Smart Home Controller in Node-Red, I always get "ERROR - please check password" when trying to pair with my Controller. I have now changed the System password three times but am still getting this error message.
Is this a known bug? Any ideas what to do?

My environment:

  • Node-Red V 1.1.3 running in docker container on Raspberry PI 3
  • Bosch SHC V 9.21.x

Bosch SHC Connection Problems on node-red-contrib-bosch-shc

Hello,
I hope I'm in the right place...
I'm trying to connect the SHC Device Node to my SHC Device.
Unfortunately I'm not able to establish a connection.
Everytime I give it try I get the error that the Password isn't correct, eventhough I changed it on both sides.

I hope my problem is somewhat clear.

thx
Ralf

Node red do not start after update bosch-shc

Hello,
I have the following problem:
After updating the node, node red no longer starts.
Below is the log output at startup
What can I do to make node-red start again?

Microsoft Windows [Version 10.0.22631.3296]
(c) Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\micha>cd appdata

C:\Users\micha\AppData>cd roaming

C:\Users\micha\AppData\Roaming>cd npm

C:\Users\micha\AppData\Roaming\npm>node.red.cmd
Der Befehl "node.red.cmd" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

C:\Users\micha\AppData\Roaming\npm>node-red.cmd
4 Apr 14:38:18 - [info]

Welcome to Node-RED

4 Apr 14:38:18 - [info] Node-RED version: v3.0.2
4 Apr 14:38:18 - [info] Node.js version: v14.15.4
4 Apr 14:38:18 - [info] Windows_NT 10.0.22631 x64 LE
4 Apr 14:38:19 - [info] Loading palette nodes
4 Apr 14:38:19 - [debug] Module: @alainx277/node-red-miele 0.1.0 \Users\micha.node-red\node_modules@alainx277\node-red-miele
4 Apr 14:38:19 - [debug] Module: @rotflorg/node-red-contrib-ecoflow-powerstream 0.5.1 \Users\micha.node-red\node_modules@rotflorg\node-red-contrib-ecoflow-powerstream
4 Apr 14:38:19 - [debug] Module: google-translate-tts 0.4.0-dev \Users\micha.node-red\node_modules\google-translate-tts
4 Apr 14:38:19 - [debug] Module: node-red-contrib-boolean-logic 0.0.3 \Users\micha.node-red\node_modules\node-red-contrib-boolean-logic
4 Apr 14:38:19 - [debug] Module: node-red-contrib-boolean-logic-ultimate 1.0.56 \Users\micha.node-red\node_modules\node-red-contrib-boolean-logic-ultimate
4 Apr 14:38:19 - [debug] Module: node-red-contrib-bosch-shc 0.4.31 \Users\micha.node-red\node_modules\node-red-contrib-bosch-shc
4 Apr 14:38:19 - [debug] Module: node-red-contrib-buffer-parser 3.2.2 \Users\micha.node-red\node_modules\node-red-contrib-buffer-parser
4 Apr 14:38:19 - [debug] Module: node-red-contrib-calc 1.0.5 \Users\micha.node-red\node_modules\node-red-contrib-calc
4 Apr 14:38:19 - [debug] Module: node-red-contrib-color-convert 0.0.8 \Users\micha.node-red\node_modules\node-red-contrib-color-convert
4 Apr 14:38:19 - [debug] Module: node-red-contrib-colorspace 1.0.2 \Users\micha.node-red\node_modules\node-red-contrib-colorspace
4 Apr 14:38:19 - [debug] Module: node-red-contrib-credentials 0.2.2 \Users\micha.node-red\node_modules\node-red-contrib-credentials
4 Apr 14:38:19 - [debug] Module: node-red-contrib-dashboard-bar-chart-data 0.9.8 \Users\micha.node-red\node_modules\node-red-contrib-dashboard-bar-chart-data
4 Apr 14:38:19 - [debug] Module: node-red-contrib-daylight-rgbw 2.1.7 \Users\micha.node-red\node_modules\node-red-contrib-daylight-rgbw
4 Apr 14:38:19 - [debug] Module: node-red-contrib-ecoflow 0.9.7 \Users\micha.node-red\node_modules\node-red-contrib-ecoflow
4 Apr 14:38:19 - [debug] Module: node-red-contrib-enocean 0.8.5 \Users\micha.node-red\node_modules\node-red-contrib-enocean
4 Apr 14:38:19 - [debug] Module: node-red-contrib-enocean-esp2 0.0.6 \Users\micha.node-red\node_modules\node-red-contrib-enocean-esp2
4 Apr 14:38:19 - [debug] Module: node-red-contrib-enocean-telegram-decoder 1.0.1 \Users\micha.node-red\node_modules\node-red-contrib-enocean-telegram-decoder
4 Apr 14:38:19 - [debug] Module: node-red-contrib-enoceanip 0.1.2 \Users\micha.node-red\node_modules\node-red-contrib-enoceanip
4 Apr 14:38:19 - [debug] Module: node-red-contrib-float 1.0.3 \Users\micha.node-red\node_modules\node-red-contrib-float
4 Apr 14:38:19 - [debug] Module: node-red-contrib-full-msg-json-schema-validation 1.1.0 \Users\micha.node-red\node_modules\node-red-contrib-full-msg-json-schema-validation
4 Apr 14:38:19 - [debug] Module: node-red-contrib-geofox-api 0.1.3 \Users\micha.node-red\node_modules\node-red-contrib-geofox-api
4 Apr 14:38:19 - [debug] Module: node-red-contrib-homekit-rgb 1.0.3 \Users\micha.node-red\node_modules\node-red-contrib-homekit-rgb
4 Apr 14:38:19 - [debug] Module: node-red-contrib-hue-tunable-white 1.1.1 \Users\micha.node-red\node_modules\node-red-contrib-hue-tunable-white
4 Apr 14:38:19 - [debug] Module: node-red-contrib-huemagic 4.2.2 \Users\micha.node-red\node_modules\node-red-contrib-huemagic
4 Apr 14:38:19 - [debug] Module: node-red-contrib-influxdb 0.6.1 \Users\micha.node-red\node_modules\node-red-contrib-influxdb
4 Apr 14:38:19 - [debug] Module: node-red-contrib-jsonfilter 0.1.0 \Users\micha.node-red\node_modules\node-red-contrib-jsonfilter
4 Apr 14:38:19 - [debug] Module: node-red-contrib-light 1.0.0 \Users\micha.node-red\node_modules\node-red-contrib-light
4 Apr 14:38:19 - [debug] Module: node-red-contrib-modbus 5.26.0 \Users\micha.node-red\node_modules\node-red-contrib-modbus
4 Apr 14:38:19 - [debug] Module: node-red-contrib-modbustcp 1.2.3 \Users\micha.node-red\node_modules\node-red-contrib-modbustcp
4 Apr 14:38:19 - [debug] Module: node-red-contrib-skyremote-new 0.1.2 \Users\micha.node-red\node_modules\node-red-contrib-skyremote-new
4 Apr 14:38:19 - [debug] Module: node-red-contrib-sonospollytts 2.0.8 \Users\micha.node-red\node_modules\node-red-contrib-sonospollytts
4 Apr 14:38:19 - [debug] Module: node-red-contrib-state 1.6.1 \Users\micha.node-red\node_modules\node-red-contrib-state
4 Apr 14:38:19 - [debug] Module: node-red-contrib-sum 0.1.1 \Users\micha.node-red\node_modules\node-red-contrib-sum
4 Apr 14:38:19 - [debug] Module: node-red-contrib-sun-position 2.2.0-beta3 \Users\micha.node-red\node_modules\node-red-contrib-sun-position
4 Apr 14:38:19 - [debug] Module: node-red-contrib-tofloat 1.0.0 \Users\micha.node-red\node_modules\node-red-contrib-tofloat
4 Apr 14:38:19 - [debug] Module: node-red-contrib-tts-ultimate 1.0.50 \Users\micha.node-red\node_modules\node-red-contrib-tts-ultimate
4 Apr 14:38:19 - [debug] Module: node-red-contrib-tuya-smart-device 5.1.0 \Users\micha.node-red\node_modules\node-red-contrib-tuya-smart-device
4 Apr 14:38:19 - [debug] Module: node-red-contrib-ui-iro-color-picker 0.1.6 \Users\micha.node-red\node_modules\node-red-contrib-ui-iro-color-picker
4 Apr 14:38:19 - [debug] Module: node-red-dashboard 3.5.0 \Users\micha.node-red\node_modules\node-red-dashboard
4 Apr 14:38:19 - [debug] Module: node-red-node-openweathermap 0.5.1 \Users\micha.node-red\node_modules\node-red-node-openweathermap
4 Apr 14:38:19 - [debug] Module: node-red-node-random 0.4.1 \Users\micha.node-red\node_modules\node-red-node-random
4 Apr 14:38:19 - [debug] Module: node-red-node-serialport 1.0.3 \Users\micha.node-red\node_modules\node-red-node-serialport
4 Apr 14:38:19 - [debug] Module: node-red-node-tail 0.3.2 \Users\micha.node-red\node_modules\node-red-node-tail
4 Apr 14:38:19 - [debug] Module: nr-strompreis 1.0.0 \Users\micha.node-red\node_modules\nr-strompreis
4 Apr 14:38:19 - [debug] Module: json-db-node-red 0.5.3 C:\Users\micha\node_modules\json-db-node-red
4 Apr 14:38:19 - [debug] ! Module: node-red-contrib-bosch-shc 0.3.25 C:\Users\micha\node_modules\node-red-contrib-bosch-shc ignored due to local copy
4 Apr 14:38:19 - [debug] Module: node-red-contrib-json 0.2.0 C:\Users\micha\node_modules\node-red-contrib-json
4 Apr 14:38:22 - [info] Dashboard version 3.5.0 started at /ui
4 Apr 14:38:22 - [info] Settings file : C:\Users\micha.node-red\settings.js
4 Apr 14:38:22 - [info] Context store : 'default' [module=localfilesystem]
4 Apr 14:38:22 - [info] User directory : \Users\micha.node-red
4 Apr 14:38:22 - [warn] Projects disabled : editorTheme.projects.enabled=false
4 Apr 14:38:22 - [warn] Flows file name not set. Generating name using hostname.
4 Apr 14:38:22 - [info] Flows file : \Users\micha.node-red\flows_WSMD01.json
4 Apr 14:38:22 - [debug] loaded flow revision: 7583d62c8f1ceb5c27e2e0a21544fa69
4 Apr 14:38:22 - [debug] red/runtime/nodes/credentials.load : no user key present
4 Apr 14:38:22 - [debug] red/runtime/nodes/credentials.load : using default key
4 Apr 14:38:22 - [debug] red/runtime/nodes/credentials.load : keyType=system
4 Apr 14:38:22 - [warn]


Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.

4 Apr 14:38:22 - [info] Server now running at http://127.0.0.1:1880/
4 Apr 14:38:22 - [info] Starting flows
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : global
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 593a85b4.6a767c
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 32f6f8da36fc32c4
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : e0af9963.0d7968
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 4c782aa344103c77
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : f3f675617868bd08
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 3517b1eac4a6f855
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 25ed9911.fab896
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 7e16d47e.426bec
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 3968c7e3.f7c908
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 89d61cf.f984ae
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : c61d4a81.eb89f8
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : b759a05d.b66c5
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 6b15d3b0.d6b42c
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : ca7c2a8c26593921
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 047cabf3b01a38b4
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : e96a871b3627b615
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 82fe13c52934dda0
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 2d80d0e879331701
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 511dbef953fcdc92
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : d9df8445fff9cd76
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 83cc87bb0d227cfe
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 50b3e16823bf05ab
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 8af171e5c452924a
4 Apr 14:38:22 - [debug] red/nodes/flows.start : not starting disabled flow : e0dd44b7.b17f88
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : a6d29d13.3c30c
4 Apr 14:38:22 - [debug] red/nodes/flows.start : starting flow : 7bfc25e6d0f5de5e
4 Apr 14:38:22 - [info] [miele-config:Waschmaschine] Fetching Miele API token
4 Apr 14:38:22 - [info] [miele-config:Waschmaschine] Authenticated with Miele API
4 Apr 14:38:22 - [debug] [inject:cb3d7d284a9e7b76] repeat = 3600000
4 Apr 14:38:22 - [debug] [inject:967e8805.289488] repeat = 10000
4 Apr 14:38:22 - [debug] [inject:4da80c5c97c57659] repeat = 20000
4 Apr 14:38:22 - [debug] [inject:bfc20ae1fce10669] repeat = 10000
4 Apr 14:38:22 - [debug] [inject:50a081b9a5b24bba] repeat = 15000
4 Apr 14:38:22 - [debug] [inject:a0a8da6c8c26c701] repeat = 15000
4 Apr 14:38:22 - [debug] [inject:6ec4ee28da2d7028] repeat = 10000
4 Apr 14:38:22 - [debug] [inject:dbecab38996ec535] repeat = 15000
4 Apr 14:38:22 - [info] Started flows
(node:21960) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
(Use node --trace-warnings ... to show where the warning was created)
4 Apr 14:38:22 - [debug] [inject:c0629413c3ca6379] repeat = 300000
4 Apr 14:38:22 - [info] [enocean-config-node:240c5ec1127cd57d] port opened
4 Apr 14:38:22 - [info] [enocean-config-node:240c5ec1127cd57d] Your BaseID is fffdd380
4 Apr 14:38:22 - [info] [mqtt-broker:Ecoflow mqtt] Connected to broker: ANDROID_FF12A24A-B3D1-3719-9314-DF617C735742_1526082573203865602@mqtts://mqtt.ecoflow.com
4 Apr 14:38:23 - [info] [mqtt-broker:supla] Connected to broker: mqtts://mqtt66.supla.org:8883
(node:21960) UnhandledPromiseRejectionWarning: Error: Request failed with status code 401
at createError (C:\Users\micha.node-red\node_modules\axios\lib\core\createError.js:16:15)
at settle (C:\Users\micha.node-red\node_modules\axios\lib\core\settle.js:17:12)
at IncomingMessage.handleStreamEnd (C:\Users\micha.node-red\node_modules\axios\lib\adapters\http.js:322:11)
at IncomingMessage.emit (events.js:327:22)
at IncomingMessage.EventEmitter.emit (domain.js:467:12)
at endReadableNT (internal/streams/readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
(node:21960) UnhandledPromiseRejectionWarning: Unhandled 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(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:21960) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
4 Apr 14:38:23 - [info] [shc-config:9ecabc82.cab5] Long polling SHC: 192.168.2.108 with poll Id: fd7hd7jhi-5
4 Apr 14:38:27 - [debug] [inject:ac33f8c010b28004] repeat = 10000
4 Apr 14:38:27 - [debug] [inject:6eb2b29fd90f14f4] repeat = 15000
4 Apr 14:38:27 - [debug] [inject:01005674b4435c67] repeat = 30000
4 Apr 14:38:28 - [red] Uncaught Exception:
4 Apr 14:38:28 - [error] TypeError: Object.hasOwn is not a function
at SHCDeviceNode.setMsgObject (C:\Users\micha.node-red\node_modules\node-red-contrib-bosch-shc\nodes\shc-device.js:111:42)
at Object.next (C:\Users\micha.node-red\node_modules\node-red-contrib-bosch-shc\nodes\shc-device.js:81:47)
at ConsumerObserver.next (C:\Users\micha.node-red\node_modules\rxjs\src\internal\Subscriber.ts:161:25)
at SafeSubscriber.Subscriber._next (C:\Users\micha.node-red\node_modules\rxjs\src\internal\Subscriber.ts:119:22)
at SafeSubscriber.Subscriber.next (C:\Users\micha.node-red\node_modules\rxjs\src\internal\Subscriber.ts:75:12)
at IncomingMessage. (C:\Users\micha.node-red\node_modules\bosch-smart-home-bridge\dist\api\abstract-bshc-client.js:152:38)
at IncomingMessage.emit (events.js:327:22)
at IncomingMessage.EventEmitter.emit (domain.js:467:12)
at endReadableNT (internal/streams/readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21)

C:\Users\micha\AppData\Roaming\npm>

Connection Error

Hi, i receive an error when trying to connect to my BSC. I already tried to reset the Password and NodeRed. No Success. I also tried with different previous versions without success.

This is the log output

BshbError: [ERROR] call to BSHC failed with HTTP status=401
at PairingClient.handleError (/opt/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:186:32)
at IncomingMessage. (/opt/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:149:34)
at IncomingMessage.emit (node:events:529:35)
at endReadableNT (node:internal/streams/readable:1400:12)
at processTicksAndRejections (node:internal/process/task_queues:82:21) {
cause: undefined,
errorType: 0
}

Can you help

Bosch REST API 3.2

Bosch changed the REST API from 2.x to 3.2. The node-red-contrib-bosch-shc is no longer working. Please update it.

cannot get /shc/tls

On entering shc IP adress and password, I always receive
cannot get /shc/tls
cannot get /shc/id

How to set the Client Id

Hi

I'm using node red on a raspi and want to connect to my BSHC. The search does not work, but can ping the BSHC from my raspi. I can enter the IP manually but I can not enter an ID. When I try to pair anyway it says some information is missing.

Any hints? And what is the ID anyway?

Cheers
Wfif

Demo flows

Hello Philippe - I had a Skype with Mr. Volker Grahn regarding Node-Red shc today.

https://flows.nodered.org/node/node-red-contrib-bosch-shc

What he misses are the demo flows which you e.g. once here
https://sourcecode.socialcoding.bosch.com/projects/IT/repos/intouch.project.smarthome.nodered.sh/browse/nodes
have filed. These are no longer up to date.

Have you or can you send us a few training or demo nodes at short notice or anchor them in Node-Red ORG
which work with the latest version?
Would be great.
Thank you.

Hallo Philippe – ich hatte heute ein Skype mit Herrn Volker Grahn bezüglich Node-Red shc.

https://flows.nodered.org/node/node-red-contrib-bosch-shc

Was er vermisst sind die Demo Flows welche Ihr z.B. einmal hier
https://sourcecode.socialcoding.bosch.com/projects/IT/repos/intouch.project.smarthome.nodered.sh/browse/nodes
abgelegt habt. Diese sind ja nicht mehr auf dem neusten Stand.

Hast du bzw. kannst du uns kurzfristig ein paar Schulungs bzw. Demo Nodes zusenden bzw. diese in Node-Red ORG verankern
welche mit der neusten Version arbeiten ?
Wäre prima.
Danke.

Select devices of a specific type

Hi, is it possible to get events from all devices of a specific type or device services of a specific type? E.g. get all events of plugs? Or get all events of airquality from twinguards?

ERROR when trying to connect controller to Node-RED

Hey there!
I know there is a topic which is essentially the same case and there is a solution posted but atm it does not work for me :(
So I am trying to connect the SHC to my Node-RED via the plugin.

I am using Docker/Portainer but there I could not find a solution to my problem either.
Tried it with setting the network-mode to host, restarted it, nothing changed.

Node-RED: v3.0.2 (in Docker container on Raspberry Pi 3)
Bosch-SHC is on the newest update

Hope someone can help me.

Pair dosent work

Hello, I have the current Node Red installed on an Intel NUC which also has Home a
Assistant is running. The controller is found in Node Red. Unfortunately, when I try to pair, I get the error (400 Bad Request). Password is correct and I have activated the controller for pairing. Is the error known?

Stop ShutterControl

Hi hxmelab,

is it possible to send a Stop-Command to a ShutterControl? I was only able to set a level, but not to interrupt the moving of the shutter.

Get Temperature Level of Device

Hey,
on Path "/devices/roomClimateControl_hz_4/services/TemperatureLevel" i only get the temperature that is there in the room. Is it somehow possible to also get the temperature which is currently set?

Add support for BWTH wall thermostat

Hello Phil,

Thanks for your great work and adding support for THB (battery powered wall thermostat) with #28

It is possible to add the mains-powered BWTH devices as well in Node Red? I recently purchased one device. My REST API output:

"manufacturer": "BOSCH", "roomId": "hz_10", "deviceModel": "BWTH", "serial": "3014F711A000239BB858E68B", "profile": "GENERIC", "name": "Thermostat", "status": "AVAILABLE", "parentDeviceId": "roomClimateControl_hz_10", "childDeviceIds": []

They also support humidity according to the REST api:
{ "@type": "humidityLevelState", "humidity": 42.0 }

I guess extending function isSupported(model) { with adding 'BWTH' should do the trick?

Thanks!
jensflorian

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.