@p4d/rpi
Raspberry Pi utility that handles messaging to Hermes server via a queue daemon.
Last updated 3 years ago by tmigone .
WTFPL · Repository · Original npm · Tarball · package.json
$ cnpm install @p4d/rpi 
SYNC missed versions from official npm registry.

RPi

RPi is a nodejs library that provides access to basic Raspberry Pi info and functionality.

Installation

RPi is distributed via NPM:

npm install --save @p4d/rpi

Usage

// Include library
const RPi = require('@p4d/rpi')

// Access RPi data
console.log(RPi.Kronos.id)
console.log(RPi.Project.name)

// Exposed functionality
if (RPi.Cmd.exists('rpi-config')) {     // This is actually not required since RPi.Cmd.run already checks if the command exists.
  console.log(RPi.Cmd.run('rpi-config', ['hostname', 'PAPA4D']))
}

Classes

RPi library exposes RPi data and functionality as static classes:

Serial

  • Serial.id - gets the Serial Id for the RPi. Gets value from /proc/cpuinfo. Returns 0000000000000000 on non-RPi architectures.
  • Serial.exists - returns true if /proc/cpuinfo file exists.

Kronos

  • Kronos.id - gets the Kronos Id for the RPi stored at /etc/kronos. Returns null if no id is assigned.
  • Kronos.exists - returns true if /etc/kronos file exists.
  • Kronos.update(newId) - Updates Kronos Id value to newId. /etc/kronos is updated.

Hermes

  • Hermes.id - gets the Hermes URL for the RPi stored at /etc/hermes. Returns null if no url is assigned.
  • Hermes.exists - returns true if /etc/hermes file exists.
  • Hermes.update(newUrl) - Updates Hermes URL value to newUrl. /etc/hermes is updated.

Cloud

  • Cloud.id - gets the Cloud URL for the RPi stored at /etc/cloud. Returns null if no url is assigned.
  • Cloud.exists - returns true if /etc/cloud file exists.
  • Cloud.update(newUrl) - Updates Cloud URL value to newUrl. /etc/cloud is updated.

Project

  • Project.id - gets the Project Id for the RPi stored at /etc/project. Project Id is the snake case formated version of the Project Name. Returns null if no id is assigned.
  • Project.name - gets the Project Name for the RPi stored at /etc/project. Project name is the full string formated name for the current project. Returns null if no name is assigned.
  • Project.exists - returns true if /etc/project file exists.
  • Project.update(newName) - Updates Project Name value to newName and Project Id to snake_cased_newName. /etc/project is updated.

Status

  • Status.ready() - Checks wether RPi is ready to send data packets to Hermes. Three conditions are needed: RPi must have assigned Project Id, Kronos Id and Hermes URL.
  • Serial.data() - Generates a data package with status information on the RPi. It does NOT check if RPi is ready to send the data to Hermes - Status.ready() needs to be checked before sending it.

The data package includes the following info:

serial - Serial id
kronosId - Kronos id
hermesUrl - Hermes url
cloudUrl - Cloud url
project: {
  name - Project name
  id - Project Id
}
hostname - OS Hostname
ip - IP Address
uptime - OS Uptime
disk: {
  free - Free space in bytes
  freeGB - Free space in GBytes
  freePer - Free space in percentile
  total - Total space in bytes
  totalGB - Total space in GBytes
}
ram: {
  free - Free RAM in bytes
  freeMB - Free RAM in MBytes
  freePer - Free RAM in percentile
  total - Total RAM in bytes
  totalMB - Total RAM in MBytes
}
platform: {
  os - OS Pretty Name for Rasbpian with version. For example `Raspbian GNU/Linux 8 (jessie)`
  version - OS version release identifier. For example `16.4.0` on macOS Sierra
  type - OS string identifier. For example `Linux` on Linux, `Darwin` on macOS, `Windows_NT` on Windows
}

Cmd

  • Cmd.run(cmd, args) - Runs a command with arguments. Equivalent of doing cmd args[0] args[1] ... args[n]. args can be a string for single argument commands or an array with multiple arguments.
  • Cmd.exists(cmd) - Checks wether cmd command exists on the current environment.

Temperature

  • Temperature.measure() - gets CPU and GPU temperature in Celsius.
  • Temperature.existsCPUTemp() - returns true if /sys/class/thermal/thermal_zone0/temp file exists.

RAM

  • RAM.measure() - gets RAM usage statistics

Disk

  • Disk.measure() - gets Disk usage statistics

Network

  • Network.data() - gets Network information

Current Tags

  • 1.14.0                                ...           latest (3 years ago)

22 Versions

  • 1.14.0                                ...           3 years ago
  • 1.13.0                                ...           3 years ago
  • 1.12.0                                ...           3 years ago
  • 1.11.0                                ...           3 years ago
  • 1.10.0                                ...           3 years ago
  • 1.9.2                                ...           3 years ago
  • 1.9.1                                ...           3 years ago
  • 1.9.0                                ...           3 years ago
  • 1.8.0                                ...           3 years ago
  • 1.7.2                                ...           3 years ago
  • 1.7.1                                ...           3 years ago
  • 1.7.0                                ...           3 years ago
  • 1.6.2                                ...           3 years ago
  • 1.6.1                                ...           3 years ago
  • 1.6.0                                ...           3 years ago
  • 1.5.0                                ...           3 years ago
  • 1.4.0                                ...           3 years ago
  • 1.3.0                                ...           3 years ago
  • 1.2.0                                ...           3 years ago
  • 1.1.1                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 3
Dependencies (8)
Dev Dependencies (1)

Copyright 2014 - 2016 © taobao.org |