npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-scenes

v0.2.2

Published

Module that provides scenes for Node RED

Downloads

42

Readme

node-red-contrib-scenes

Scenes for Node RED.

Build Status

What Is This?

A modification for Node RED that adds "scene" support.

A "scene" is a typical set of Node RED tabs, each with their own set of flows. Changing scenes essentially allows you to stop a set of rules (flows) and replace them with another "scene" set.

I originally wrote (hacked) this a couple of years ago when Node RED was quite new for homenet. It actually turned out to be the most valuable part of homenet so it made sense to separate it out into its own component. The Node RED internals aren't the easiest to reverse engineer and pretty scarce on comments, though there website actually has a few docs on interfaces now. Re-implementing using Typescript makes it easy to check the custom implementations match the documented interfaces.

How Does It All Work?

The modification adds 4 new node types:

The current-scene node simply indicates if the scene that is loaded in the web UI is the same scene. When the scene changes it is not possible to refresh the UI automatically. This node indicates when it has changed.

When the scene is the same as the loaded scene the status indicator is blue:

active scene

When the scene is different than the loaded scene the status indicator is red and indicates the actual scene. When this happens you need to refresh the browser:

inactive scene

The scene node changes the scene to something different.

The scene-start node is triggered after the scene has been loaded and started.

The scene-stop node is triggered before the scene is stopped in preparation for loading the next scene.

Common (Shared) Tabs

The provided scene manager and storage have a concept of shared or "common" tabs. These tabs will be available on every scene.

To create a shared tab, when you create a new tab prefix it with common. By default when a new scene is created there is always a shared tab called Common and a new tab named the same as the scene. Any tab that is not prefixed with common will not be shared.

Use

var RED = require('node-red');
var nrScenes = require('node-red-contrib-scenes');
nrScenes.start(RED, {port:1880});

To run from the command line use https://github.com/denwilliams/node-red-contrib-scenes-exec

Documentation