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

gigaset-elements-proxy

v2.2.6

Published

a simple web and mqtt local gateway for reaching gigaset-elements API

Downloads

42

Readme

gigaset-elements-proxy v2.2.6

Is a very simple gateway to gigaset-elements API:

  • periodic re-authentication
  • local proxy to the gigaset-elements APIs
  • gigaset-elements events are periodically fetched and pushed to a MQTT broker

As gigaset-elements does not provide local network APIs, I use it to access my equipement from https://home-assistant.io

Known Vulnerabilities

raw Gigaset APIs

These are the API that are published on Gigaset Cloud, gigaset-elements-proxy only re-expose them locally without authentication. Note that if you're reading this page on github, theses links does not work: you have to install the project.

convenience APIs

These extra APIs are based on raw Gigaset APIs and apply light treatment in order to make them easier to use in a 3rd party application. Note that if you're reading this page on github, theses links does not work: you have to install the project.

MQTT events

  • pushes event to queue gigaset/<sensor_friendly_name> with true or false payload
  • motions events (movement detector and camera) automatically generate a delayed false event
  • smoke detector test events automatically generate a delayed default event

| gigaset sensor type | gigaset event type | mqtt topic | mqtt value | | ------------------------------- | ---------------------------------- | ------------------------------- | ---------------------- | | ds02 door sensor | open | gigaset/<sensor name> | true | | ds02 door sensor | close | gigaset/<sensor name> | false | | ws02 window sensor | open | gigaset/<sensor name> | true | | ws02 window sensor | tilt | gigaset/<sensor name> | true | | ws02 window sensor | close | gigaset/<sensor name> | false | | ps02 motion sensor | movement | gigaset/<sensor name> | true | | ps02 motion sensor | delayed after movement | gigaset/<sensor name> | false | | ycam motion sensor | yc01.motion | gigaset/<sensor name> | true | | ycam motion sensor | delayed after yc01.motion | gigaset/<sensor name> | false | | sp01 siren | on | gigaset/<sensor name> | true | | sp01 siren | off | gigaset/<sensor name> | false | | sd01 smoke detector | smoke_detected | gigaset/<sensor name> | alarm | | sd01 smoke detector | test | gigaset/<sensor name> | test | | sd01 smoke detector | delayed after test | gigaset/<sensor name> | default | | sd01 smoke detector | smoke_no_longer_detected | gigaset/<sensor name> | default | | sd01 smoke detector | end_sd01_smoke_detected | gigaset/<sensor name> | default | | sd01 smoke detector | end_sd01_test | ignored | | | um01 universal sensor | open | gigaset/<sensor name> | true | | um01 universal sensor | tilt | gigaset/<sensor name> | true | | um01 universal sensor | close | gigaset/<sensor name> | false | | basestation: alarm mode changed | isl01.bs01.intrusion_mode_loaded | gigaset/<base name> | <new alarm mode> | | any sensor | battery_critical | gigaset/<sensor name>_battery | battery_critical | | allow_unknown_events is true | any other event | gigaset/<sensor name> | <gigaset event type> |

installation

option 1 - as a Hassio addon

point to this custom repository

https://github.com/ycardon/hassio-addons

option 2 - from git

  • (recommended if you have to customize the application to your needs)
  • nodejs is required
> git clone https://github.com/ycardon/gigaset-elements-proxy
> cd gigaset-elements-proxy
> npm install
> vim config/default.yaml
> node app.js

option 3 - from npm

install
> [sudo] npm install gigaset-elements-proxy -g

locate then edit config/default.yaml with
> npm list gigaset-elements-proxy

run
> ge-proxy

then

Have a look on the examples directory for instructions on creating a service or configure the sensors inside home-assistant

You can get extra help on this home-assistant community topic or in the issue section

You can also check https://github.com/lorenwest/node-config/wiki/Configuration-Files

restrictions

  • only read events and states from the Gigaset Cloud API, no writes (eg. cannot change the status of the alarm system)
  • track ds02 (door sensors) ws02(window sensors) and yc01 / ps02(movement and camera movement sensors) event types
  • since v1.4, track sp01 (siren command event)
  • since v1.5, track sd01 (smoke detector event)

improvements

v1.3.2 Halloween (1 november 2018)

  • when the server starts, send the actual status of the sensors and the alarm mode
  • added the /force-refresh API to send again the actual status of the sensors and the alarm mode
  • added examples directory
  • added ws02 window sensors type
  • added /intrusion_settings API to monitor selected alarm mode
  • added handling of basestation events (selected alarm mode)
  • added more options to configue MQTT broker connections
  • fixed CVE in dependency
  • logging server version

v1.3.5 Armistice (11 november 2018)

  • logging mqtt connection errors
  • basestation event now returns the mode of the alarm mode instead of true for home

v1.4.6 Happy new year (24 february 2019)

  • fire an mqtt event when an alarm is trigered (true) or acknowledged (false)
  • better handling of parsing errors when gigaset API returns unexpected message (try to re-authorize)
  • added sensor type in the /sensors API

v1.5.5 Spring (5 april 2019)

  • added sd01 smoke detector sensors
  • added a new configuration parameter to allow or not the propagation of unknown gigaset events
  • added low battery in the form of topic: gigaset/<sensor name>_battery value: low_battery
  • added an gigaset events to MQTT events table in the documentation (thanks to @sracing)

v2.0.0 Typescript (11 april 2019)

  • heavy code reorganization (moved to typescript, introduced modules)
  • no functionnality added

v2.1.5 Labour Day (1 may 2019)

  • added a new API: sensors/<sensor-friendly-name> to ease treatment from home-assistant
  • now return initial state of smoke detectors (cf. this issue)
  • API sensors/ no longer returns a array of objects but a plain object indexed with the sensor's friendly name
  • now using a proper build system for the project
  • filtering out the Philips Hue devices in the sensors/ API

v2.2.0 Hassio (24 sept 2019)

  • can now be installed as an Hassio Addon
  • breaking change REST API port is now 8094 (and not 3000 as it used to be), can be changed in config/default.yaml

v2.2.1 Universal (18 oct 2019)

  • added um01 universal sensor

v2.2.6 Confinement (14 avril 2020)

  • merged @ginkel fix for intrusion events: now using basestation id instead of friendly name (no more present in the event), discussion here

credits

  • Strongly inspired by the Python command line version that can be find under https://github.com/dynasticorpheus/gigaset-elements (thank you !!)
  • Security audits
    • https://www.iot-tests.org/2017/01/testing-gigaset-elements-camera/
    • https://team-sik.org/sik-2016-044/
    • https://team-sik.org/sik-2016-045/
    • https://team-sik.org/sik-2016-046/
    • https://team-sik.org/sik-2016-047/
    • https://team-sik.org/sik-2016-048/
  • Thank you to @h4nc, @dotvav, @sracing and @ginkel for their comments, suggestions, testing and code improvement

building the project

  • run
    > git clone https://github.com/ycardon/gigaset-elements-proxy
    > npm install
  • code new stuff
  • update version in ./package.json
  • run either
    > npm run build
    > npm run dev
    > npm publish