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

@devctrl/communicator

v5.3.0

Published

Base device communicator files

Downloads

24

Readme

  • Communicator builds list of device controls (control templates)

  • Communicator syncs control list with messenger

  • device controls are paired with application controls based on endpoint and device control name

  • controls have default usertype, application panel controls may override this type

  • device commands can be tied to multiple device controls

  • Communicator receives a control update:

    • communicator looks up command for control template
    • device string is generated and sent
  • Communicator receives a device string:

    • device string is matched to command
    • control templates are looked up for command
    • command returns value for each control
  • Control sync process:

    • Communicator builds list of commands and a list of controls
    • Controls are synced with server
      • ncontrol requests list of server defined controls - server controls are matched with ncontrol templates based on ctid
        • "ctid" and _id are both key fields. _id is the mongo document id, "ctid" is unique within the endpoint communicator instance and generated by the class definition
      • ncontrol adds missing control templates and updates server control_templates which do not match class definition
  • CHanges from Devctrl-mysql:

    • control_template table dropped, fields moved to control objects
- Control Updates:
    - not stored in database
    - value and source

--- TCPCommunicator/Endpoint status management ---

  • Is endpoint enabled? (Endpoint.enabled)
  • Is communicator connected to messenger? (Endpoint.communicatorConnected)
    • In lieu of communicatorRunning, which is unknowable without communicator connection
  • Is device reachable (ping)? (Endpoint.reachable)
  • Is device connection established? (Endpoint.connectionEstablished)
  • Can communicator log in to device? (Endpoint.loggedIn)
  • Is device responsive? (Endpoint.responsive)
    • Keep log of last communication, establish maximum time between communication