Coder Social home page Coder Social logo

adlerweb / volkszaehler.org Goto Github PK

View Code? Open in Web Editor NEW

This project forked from volkszaehler/volkszaehler.org

4.0 2.0 0.0 6.48 MB

Open Source Smart Meter with focus on privacy - you remain the master of your data.

Home Page: http://volkszaehler.org

License: GNU General Public License v3.0

PHP 59.35% JavaScript 22.74% CSS 2.03% Shell 5.20% Perl 2.05% Perl 6 2.81% Lua 0.70% Python 2.87% ApacheConf 0.09% HTML 2.15%

volkszaehler.org's Introduction

volkszaehler.org

Join the chat at https://gitter.im/volkszaehler/volkszaehler.org

volkszaehler.org is a free smart meter implementation with focus on data privacy.

Build Status

Demo

http://demo.volkszaehler.org

Screenshot

Quickstart

From the shell:

wget --no-check-certificate https://raw.github.com/volkszaehler/volkszaehler.org/master/misc/tools/install.sh
sudo bash install.sh

Or follow the detailed installation instructions at http://wiki.volkszaehler.org/software/middleware/installation

Documentation

Support

Repository structure

volkszaehler.org/
 |_ etc/                    configuration files
 |_ htdocs/                 public web files
 |   |_ middleware.php      middleware
 |   \_ frontend            web ui
 |
 |_ lib/                    middleware libraries
 \_ misc/
     |_ controller/
     |   |_ vzlogger/       command line tool to log meters/sensors
     |   \_ mbus/           a controller for mbus/messbus
     |
     |_ docs/               documentation
     |_ frontend/           alternative frontends
     |_ graphics/           several graphics for docs, etc.
     |_ sql/                database schema dumps
     |   \_ demo/           demo data
     |
     |_ tools/              scripts for imports, installation etc.
     \_ tests/              simple tests for middleware classes

Copyright

Copyright © 2015 volkszaehler.org
Licensed under the GNU Public License (http://opensource.org/licenses/gpl-license.php).

volkszaehler.org's People

Contributors

adlerweb avatar amenk avatar andig avatar bgewehr avatar ctvoigt avatar f10 avatar gitter-badger avatar justinotherguy avatar kusemuckl avatar phunkafizer avatar r00t- avatar r3wald avatar stv0g avatar tabacha avatar w3llschmidt avatar weiznich avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

volkszaehler.org's Issues

Löschung Redundanter Nullwerte

Hallo Zusammen,

eine Optimierung welche mir für vzcompress noch einfiele wäre die Löschung (nicht nur Komprimierung) redundanter Nullwerte.

Hintergrund: bei "normalen" Stromzählern (aber auch Verbrauchsmessern) ist tagsüber während die PV läuft der Bezug meist 0, ebenso sind Einspeisung und Erzeugung nachts eigentlich immer 0. Diese Nullen ließen sind- bis auf die jeweils erste und letzter einer 0-Strecke einsparen. Die letzte 0 wird benötige, damit das Frontend keine Rampen in die Darstellung einbaut.

Nachteilig ist natürlich dass man nich tmehr so einfach auf der Datenbank Werte mehrerer Kanäle für einen Timestamp "zusammenjoinen" kann- aber andererseits ist auch klar, dass kein Wert automatisch eine 0 im Verbrauch bedeutet.

Wie wär's- bekommen wir das in die Neuimplementierung noch mit rein?

Viele Grüße,
Andreas

Log-Output mit Timestamp

Hallo!

Ich möchte darum bitten, die Echos mit einem Timestamp zu versehen:

echo date("Y-m-d H:i:s", time()) ...

Da ich vzcompress2 im root-Crontab habe mit Output in /var/log/vzcompress.log:

1 1 * * * php /var/www/volkszaehler.org/misc/tools/vzcompress2.php >> /var/log/vzcompress.log

hätte ich gern die Zeitangaben dazu...

Wenn ich es schaffe, mache ich einen pull request...

Danke!

Kompression ohne Datenverlust

Hallo Zusammen,

und gleich noch ein Vorschlag hinterher- mit untenstehendem SQL konnte ich meine DB mit 5 Kanälen um 30% reduzieren- ohne Information zu verlieren:

delete from data
where id in (
select id from (
select o.id,
(
select max(timestamp)
from data i_p
where i_p.channel_id = o.channel_id
and i_p.timestamp < o.timestamp
) as prev_ts,
p.id as prev_id, p.value as prev_value,
(
select min(timestamp)
from data i_n
where i_n.channel_id = o.channel_id
and i_n.timestamp > o.timestamp
) as next_ts,
n.id as next_id, n.value as next_value
from data o
left join data p on p.timestamp = prev_ts and o.channel_id = p.channel_id
left join data n on n.timestamp = next_ts and o.channel_id = n.channel_id
where o.channel_id in (select id from entities where class = "channel")
and o.value = 0
and p.value = 0
and n.value = 0
)
)

Viele Grüße,
Andreas

Letzte Kompressionsdefinition funktioniert nicht

Am Sonntag, 14. April 2013 um 11:26 schrieb Daniel Lauckner:
Sieht bei mir im Moent so aus (Z. 259 - 263):
'default' => array( //Definition for all other channels
(1_24_60_60) => (1_60), //Older than 1 Days
(org: 7) Datapoint per 1 Minute
(30_24_60_60) => (5_60), //Older than 30 Days Datapoint per 5 Minutes
// (6_30_24_60_60) => (15_60), //Older than 6 Month Datapoint per 15 Minutes
// (365_24_60_60) => (30*60), //Older than 1 Year Datapoint per 30 Minutes

Processing Sensor ID 7...
Compressing datapoints between 17.03.2013 14:39:26 and 13.04.2013
10:40:14 using a 60 second timeframe
Removed 2834 Datapoints in 623 Seconds.
Skipping compression pass for datapoints between 14.04.2013
10:40:16 and 15.03.2013 09:40:16 using a 300 second timeframe: No Datapoints found

Hab was getestet:

        (1*24*60*60)    => (1*60),      //Older than 1 Days (org: 7)      D$
        (30*24*60*60)   => (5*60),      //Older than 30 Days     Datapoint $
        (6*30*24*60*60) => (6*60),     //Older than 6 Month     Datapoint p$

Processing Sensor ID 7...
Compressing datapoints between 17.03.2013 14:39:26 and 13.04.2013 11:25:49 using a 60 second timeframe
Removed 1777 Datapoints in 601 Seconds.
Compressing datapoints between 17.01.2013 16:55:47 and 14.03.2013 13:59:03 using a 300 second timeframe
Removed 558059 Datapoints in 3917 Seconds.
Skipping compression pass for datapoints between 14.04.2013 11:25:51 and 16.10.2012 11:25:51 using a 360 second timeframe: No Datapoints found

17.01. ist der erste Tag meines volkszählers.
Scheint so als würde das Script die letze Zeile falsch interpretieren.

mfg Daniel

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.