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

rpi-profalux-shutters

v1.0.0

Published

Node library to control Profalux roller shutters with a Raspberry Pi through an HTTP API

Downloads

45

Readme

Profalux Roller Shutter Controller

This Node.js library allow control of a Profalux roller shutter by wiring its remote control to a Raspberry Pi.

Installation

You'll need:

  • a Raspberry Pi with Node.js 6 installed
  • a Profalux remote control paired with one or multiple roller shutters (i use the model MAI-EMPX)

You'll also need to create a config.json file with these informations:

{
    "port": 19240,
    "shutter": {
        "name": "Living room",
        "travel": 30000,
        "pins": {
            "common": 37,
            "down": 36,
            "stop": 35,
            "up": 38
        }
    }
}

Simply enter the physical GPIO pin number assigned to each of the remote dry-contact pinouts. They are located on the bottom-left of the remote motherboard and are (from top to bottom):

  • Down
  • Stop
  • Up
  • Common

The travel parameter allows rpi-profalux-shutters to simulate the position in percent of the shutter (starting from 0, closed).

Remember to run npm install before actually running the server.

Usage

To start the server, simply type the following command on your terminal. You'll probably need to be root or execute the script as sudo for GPIO access.

(sudo) node index.js 

You can also display debug logs on your terminal with the following command.

DEBUG=Profalux* (sudo -E) node index.js

The application will initialize the GPIO pins and start the webserver. By default, it will listen globally on port 19240. You can change the port number in the config file.

Then you'll be able to issue commands on your roller shutter with a PUT request on these URLs:

curl -X PUT http://raspberrypi:19240/shutter/set/100
curl -X PUT http://raspberrypi:19240/shutter/stop
curl -X PUT http://raspberrypi:19240/shutter/set/0

You can also retrieve the current position and state of the shutter with:

curl -X GET http://raspberrypi:19240/shutter/get/position
curl -X GET http://raspberrypi:19240/shutter/get/state

Valid values for current state are:

  • 0: the shutter is closing
  • 1: the shutter is opening
  • 2: the shutter is stopped

Web interface

You can control your shutter with a virtual remote by going to http://raspberrypi:19240/, where:

  • raspberrypi is the IP address or the local network name of your Raspberry Pi
  • 19240 is the port specified in the configuration file

Todo

  • [x] Create a simple web interface
  • [ ] Handle multiple shutters
  • [x] Compute approximate shutter position