Naively Programmable Module

    aframe-smart-home

    0.0.2 • Public • Published

    AFRAME-SMART-HOME

    GitHub forks license GitHub version NPM

    Aframe-smart-home is a demo project illustrating digital twins, using different technologies:

    • WoT/Mozilla's WebThing schema to describe resources
    • webthing-iotjs to simulate some sensors (only one here)
    • aframe for rendering to XR devices
    • aframe-webthing to update XR view from webthing

    EXPLANATION:

    Today, the smart house is empty but has a solar pannel on the roof and we are monitoring the voltage in real time.

    For demo purposes a real model of the house was used along a tiny but real solar pannel (item found in garden lamp).

    Real

    The output voltage of the solar panel is measured using on board analog input and value is shared to the web using WebThing API.

    Then a model can be updated by reading the actual value, the device's color is updated according to an heatmap palette:

    Demo

    USAGE:

    SIMULATOR:

    Default application is a simulator that mock sensor(s) values.

    $ npm install aframe-smart-home
    cd node_modules/aframe-smart-home/
    $ npm install && npm start
    $ curl http://localhost:8888/
    { "id""urn:dev:ops:smarthome-1234"(...)
      "properties"{
        "level"{
          "description""Solar sensor level",
          "links": [ {
              "rel""property",
              "href""/properties/level" (...)
    $ curl http://localhost:8888/properties
    {"level":42}
    cd aframe
    npm install && PORT=42080 npm start
    x-www-browser http://localhost:42080/aframe/

    CLOUD:

    Glitch can run this previous simulator

    NODE TARGET:

    Any board with ADC port could be used.

    Here an example on ARTIK1020 using webthing-node:

    git clone --depth=1 --recursive https://github.com/rzr/aframe-smart-home
    cd aframe-smart-home
    make -C example/artik1020/ start
    #| Listening: 
    #http://localhost:8888/ 
    #| log: ADC: level: open: null (null expected) 
    #| log: ADC: level: update: 0x2a : 40 
    #| 0.03515625 V 
    #| log: ADC: level: change: 48% 
    #| (...) 

    In other shell value can be queried:

    curl http://artik1020.local:8888/properties
    #| {"level":36.69597260346487}p 

    For convenience this can be enabled on boot:

    sudo ln -fs $PWD /usr/local/opt/aframe-smart-home
    unit=aframe-smart-home
    service=/usr/local/opt/aframe-smart-home/example/artik1020/aframe-smart-home.service
    sudo ln -fs $service /usr/lib/systemd/system/
    sudo systemctl restart $unit
    sudo journalctl -xu $unit

    IOTJS TARGET:

    Any board with ADC port could be used.

    It should be easy to adapt from supported boards of webthing-iotjs, see STM32F7 platform example.

    Anyway it's possible to use it on Linux using the same simulator:

    make start

    GATEWAY:

    Mozilla gateway could be also used with additional bearer token.

    RESOURCES:

    Install

    npm i aframe-smart-home

    DownloadsWeekly Downloads

    1

    Version

    0.0.2

    License

    MPL-2.0

    Unpacked Size

    841 kB

    Total Files

    31

    Last publish

    Collaborators

    • rzr