{"id":22154176,"url":"https://github.com/rdmtc/node-red-contrib-combine","last_synced_at":"2025-07-26T06:32:29.872Z","repository":{"id":96614045,"uuid":"130463972","full_name":"rdmtc/node-red-contrib-combine","owner":"rdmtc","description":"Node-RED Nodes that outputs combinations of consecutive incoming messages","archived":false,"fork":false,"pushed_at":"2019-07-11T21:07:33.000Z","size":348,"stargazers_count":6,"open_issues_count":2,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-06T00:57:07.039Z","etag":null,"topics":["combine","list","logic","node-red","statistics"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rdmtc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-21T10:37:41.000Z","updated_at":"2022-07-07T00:49:04.000Z","dependencies_parsed_at":"2023-04-07T12:35:05.534Z","dependency_job_id":null,"html_url":"https://github.com/rdmtc/node-red-contrib-combine","commit_stats":{"total_commits":49,"total_committers":2,"mean_commits":24.5,"dds":0.08163265306122447,"last_synced_commit":"88e064444cc014ad7d4ec693fd739814dc040a64"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rdmtc/node-red-contrib-combine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdmtc%2Fnode-red-contrib-combine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdmtc%2Fnode-red-contrib-combine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdmtc%2Fnode-red-contrib-combine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdmtc%2Fnode-red-contrib-combine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rdmtc","download_url":"https://codeload.github.com/rdmtc/node-red-contrib-combine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rdmtc%2Fnode-red-contrib-combine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267130061,"owners_count":24040390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combine","list","logic","node-red","statistics"],"created_at":"2024-12-02T01:41:38.475Z","updated_at":"2025-07-26T06:32:29.858Z","avatar_url":"https://github.com/rdmtc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# node-red-contrib-combine\n\n[![NPM version](https://badge.fury.io/js/node-red-contrib-combine.svg)](http://badge.fury.io/js/node-red-contrib-combine)\n[![dependencies Status](https://david-dm.org/rdmtc/node-red-contrib-combine/status.svg)](https://david-dm.org/rdmtc/node-red-contrib-combine)\n[![Build Status](https://travis-ci.org/rdmtc/node-red-contrib-combine.svg?branch=master)](https://travis-ci.org/rdmtc/node-red-contrib-combine)\n[![Coverage Status](https://coveralls.io/repos/github/rdmtc/node-red-contrib-combine/badge.svg?branch=master)](https://coveralls.io/github/rdmtc/node-red-contrib-combine?branch=master)\n[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)\n[![License][mit-badge]][mit-url]\n\n\u003e Node-RED Nodes that output combinations of consecutive incoming messages\n\nThese nodes aim to solve typical use cases where multi-input nodes (something that doesn't exist in Node-RED's concept)\nwould be convenient. Incoming messages are stored internally by the nodes so combinations of multiple messages can be\nprovided. Distinction of these messages is based on their `topic` property.\n\n## Prerequisites\n\nnode-red-contrib-combine requires Node.js version 7.0.0 or higher.\n\n\n## Nodes\n\n#### If\n\nForwards messages to the first output when previously received a truthy payload on \"Condition Topic\", otherwise messages \nwill be routed to the second output.\n\n#### Logic\n\nLogic combination of incoming messages (And, Or, Xor, Nand, Nor, Xnor).\n\n#### Delta\n\nSimple subtraction of the values received on two configured topics.\n\n#### Bangbang\n\nBang-bang (2 step / on-off) Controller. Emits `true` when the the payload value exceeds the upper bound, emits\n`false` when the payload goes below the lower bound. You could e.g. use this as a simple thermostat for a\nclimate control, feed in the actual temperature and use the output to control a cooling device. For a heating\ndevice you would have to use the \"invert\" option, so you receive `false` when exceeding the upper bound and\n`true` when going below the lower bound.\n\n\n#### Statistic\n\nCalculate statistic samples like e.g. min, max, mean, median, ... from incoming payloads. Message distinction can be\nconfigured to `msg.topic` or `msg._id`. A timeout can be configured that removes messages from the internal cache. \nThe statistics are re-composed when a message times out.\n \n#### List\n\nCompose a table of consecutive incoming topics and payloads. Output as array, csv, html table or html list. Columns and \nsort order can be configured. Message distinction can be configured to `msg.topic` or `msg._id`. A timeout can be \nconfigured that removes messages from the internal cache. The tables are re-composed when a message times out.\n\n#### Defer\n\nDefer a message with truthy payload for given time.\nIf another message arrives with falsy payload the timer is cancelled.\nKeeps track on each topics state, only one message per topic will be sent until reset by a falsy payload.\n\n\n## License\n\nMIT (c) Sebastian Raff\n\n[mit-badge]: https://img.shields.io/badge/License-MIT-blue.svg?style=flat\n[mit-url]: LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdmtc%2Fnode-red-contrib-combine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frdmtc%2Fnode-red-contrib-combine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frdmtc%2Fnode-red-contrib-combine/lists"}