Skip to content

windkh/node-red-contrib-grohe-sense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grohe Sense nodes for node-red

Platform License NPM Known Vulnerabilities Downloads Total Downloads Package Quality Open Issues Closed Issues ...

This package contains nodes for controlling grohe sense devices via the following API: https://idp2-apigw.cloud.grohe.com

Dependencies

This package depends on the following libraries

  • superagent
  • he
  • url

Disclaimer

This package is not developed nor officially supported by the company Grohe. It is for demonstrating how to communicate to the devices using node-red. Use on your own risk!

The code was ported from C# and Java and TypeScript which can be found here: https://github.com/J0EK3R/Grohe.Ondus.Api https://github.com/FlorianSW/grohe-ondus-api-java https://github.com/faune/homebridge-grohe-sense

Thanks for your donation

If you want to support this free project. Any help is welcome. You can donate by clicking one of the following links:

Buy Me A Coffee

Credits

  • FlorianSW for developing the initial version in JAVA
  • J0EK3R for porting the original JAVA implementation to C#
  • faune for doing the great work in TypeScript. This made me port my code from axios to superagent.

Changelog

Changes can be followed here

Grohe Sense Node

The node is able to get the status of a Grohe Sense, Grohe Plus or Grohe Guard node.

Sense

To get the status simply send any msg.payload to the input.

See the example flow sense in the examples folder.

Sense Guard

To get the status simply send any msg.payload to the input. To send a command to open the valve you need to send the following message:

msg.payload = {  
    command : {
        valve_open: true,
    }
};

See the example flow sense guard in the examples folder.

Getting Historical Data

To read out the internal measurement history you need to specify the start and end data as follows:

let end = new Date();
let start = new Date();
start.setDate(end.getDate() - 2); // last 2 days.

msg.payload = {  
    data : {
        from : start,
		to : end,
		groupBy : 'hour' // or 'day', 'week', ...
    }
};

Date can be passed in milliseconds format, too: e.g. Date.now

let now = Date.now();
let end = now;
let start = now - 24 * 60 * 60000;

msg.payload = {
    data : {
        from : start,
        to : end,
		groupBy : 'hour' // or 'day', 'week', ...
    }
}

See the example flow sense guard last values in the examples folder.
See the example flow sense guard history in the examples folder.

See the example flow sense last values in the examples folder.
See the example flow sense history in the examples folder.

License

Author: Karl-Heinz Wind

The MIT License (MIT) Copyright (c) 2022 by Karl-Heinz Wind

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.