Giter VIP home page Giter VIP logo

emoncmsorg's Introduction

Emoncms

Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms

Requirements

  • PHP (tested with 8.1.12)
  • MySQL or MariaDB (tested with 10.5.15)
  • Apache (tested with 2.4.54)
  • Redis* (tested with 6.0.16)

*Redis is recommended because it reduces the number of disk writes and therefore prolongs disk life (noticeably on SD cards e.g. Raspberry Pi). Some input-processors also require Redis and fail silently if Redis is not installed. Some environments such as shared hosting or as far as we have tried Windows servers don't support Redis hence why Emoncms has a fall back mode that allows core operation without Redis.

Documentation

View the Emoncms documentation at: https://docs.openenergymonitor.org/emoncms

Design

Emoncms timeseries database design (feed storage)

Other

Emoncms Terminology

  • Input: An incoming datasource. Each input has an associated "node" identifier and a "key" sub-identifier. Inputs are entry points, only the last value and time of the input is recorded. To record historic data a feed needs to be created from an input.
  • Input: Node: A grouping identifier for an input or feed.
  • Input: Key: A sub-identifier for items within each Node.
  • Input process list (or input processing): A list of processes* performed sequentially on each input value as it is received on that input.
  • Process: A function that can be attached to the process list of an input to change the value or to save the value to a feed*.
  • Feed: A place where data is recorded, a time-series of datapoints. The standard time-series databases used by Emoncms are PHPFina and PHPTimeSeries and were written as part of the Emoncms project.
  • For a description of what each input process does in Emoncms, see the helper note within the Emoncms input processing configuration interface.

Emoncms.org API Reference

Install

Emoncms is designed and tested to run on either Ubuntu Linux (Local, Dedicated machine or VPS) or RaspberryPi OS. It should work on other Debian Linux systems though we dont test or provide documentation for installation on these.

We do not recommend and are unable to support installation on shared hosting or XAMPP servers, shared hosting in particular has no or limited capabilities for running some of the scripts used by emoncms. There is now a large choice of low cost miniature Linux VPS hosting solutions that provide a much better installation environment at similar cost.

Recommended:

docker standalone container

An easy way to start with emoncms is to use the all-in-one docker container

A pipeline using github actions is producing builds with latest emoncms stable version for different architectures : amd64, arm64, arm/v7

These docker images, based on the alpine linux distribution, are designed for iot. Images are tagged using alpine and emoncms versions, for example alpine3.19_emoncms11.4.11.

The images have onboard :

  • the mariadb and redis databases,
  • the mosquitto mqtt broker,
  • the main modules : graph, sync, backup, dashboard and app,
  • the workers : emoncms_mqtt, service-runner and feedwriter.

You can easily :

  • deactivate the low-write
  • use an external broker.

To pull the latest image for testing :

sudo docker pull alexjunk/emoncms

More on https://emoncms-docker.github.io

Experimental

not currently up to date

Multi-platform using Docker Container

Modules

Modules can be installed by downloading or git cloning into the emoncms/Modules folder. Be sure to check for database updates in Administration menu after installing new modules. The following core modules are included on the emonSD image:

There are many other available modules such as the event module and openbem (open source building energy modelling module): check out the Emoncms repo list.

Branches

  • master - The latest and greatest developments. Potential bugs, use at your own risk! All pull-requests should be made to the master branch.

  • stable - emonPi/emonBase release branch, regularly merged from master. Slightly more tried and tested. See release change log.

Tools

  • PHPFina data file viewer - Easily explore phpfina timeseries feed engine data files directly without a full Emoncms installation. Useful for checking backups and archived data.

Android App

Google Play

GitHub Repo

Development Forum

More information

emoncmsorg's People

Contributors

glynhudson avatar pb66 avatar trystanlea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

emoncmsorg's Issues

dashboard whitespace, pixels, percent.

The whitespace doesn't seem evenly balanced on each side in dashboard creation on desktop.
Pixels and Percent usage needs to be clearer.. perhaps a guide on making dashboard for mobile / tablet / desktop.. with clear relationship to percent or pixel widths of objects. For example I might rescale an object in a dashboard, but what is the new width in pixels or percentage? Some display of this information would be useful.

input process - Wh accumulator.. why set intervals?

The Wh accumulator input process has a drop down menu of intervals.. I wanted to input an interval in seconds, to correspond with faster float-math calculation.. multiples of 10 seconds would be useful to be able to input.

The width of the bar graph is too wide.

The width of the bar graph is too wide.

zz

I tried with 2 different browser (Chrome and Microsoft Edge - currently installed browsers in my PC) , but looks the same in both browsers.

Invalid characters "/"

I'm helping amend some feeds on some existing emoncms.org hosted accounts and notice I can now not use the forward slash character but can see it has been historically used on some of the accounts (in feed and input names & tags etc).
I can see a the same issue was flagged on the non emoncms.org code and fixed (emoncms/emoncms#750) - could the fix also be pulled into this fork?

Thanks

No CORS headers, e.g. Access-Control-Allow-Origin: *

Possibly not the correct place to report this (and possibly a policy decision anyway), but am having problems using the emoncms.org APIs via JavaScript, due to apparent lack of Cross-origin request header support.

Would it be possible to add headers to appease web-browser based applications utilising emoncms.org?

Kind regards.

graph view.. missing data default behaviour.

The missing data default behaviour of drawing a line between respective points is misleading.. no line would be more accurate.. and checking the 'missing data' check box could do something like highlight in red background (100% Y-axis) where the chunks of missing data are maybe.

input view - delete node

Unimportant one really.
Feature request to delete entire node in input view please :)
Some of these fancy new firmwares are making alot of inputs :)

Low resolution icon when saving app to iOS home screen

I am a happy Emoncms.org user and saved my Emoncms apps to my iPhone and iPad homescreens. The homescreen icon looks blurry though. Would be great if you can set a new higher resolution icon (perhaps icon based on iOS app icon?).

See official documentation from Apple on home screen icons:
https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html

Pulse count to pulse increment input processor

Not sure if it's working. Seems to reset with a pulse count reset.
Behaviour like Wh accumulator I think might be the idea?
Might even be worth scrapping the processor, could even rename Wh_accumulator to just Accumulator for accumulating data in general.

Silent ok's

The emoncms.org input api currently returns ok in a number of cases where an error would be more useful. This is to ensure that old hardware is not tripped up by returned error codes where code to catch errors is not written. It would be good however to fix this and evaluate a transition that may involve notification of users with hardware that may start buffering needlessly as a result of unexpected changes to the api.

emoncms/emoncms#572

Deleted Feed still shows up in the old graph that was created via Visualization page.

Hi,
I deleted one of the feed, but it still shows up in the previous graph I created in Visualization page.
It then throws error: Request error {"success":false,"message":"Feed does not exist"}

zz

I can simply delete the problematic graph and re-create it.
But it would be better if the emoncms automatically update the missing feed.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.