From 963b42ef221f6c7b0458ecc70597e40fe96cf253 Mon Sep 17 00:00:00 2001 From: telegnom Date: Sun, 8 Mar 2015 16:24:31 +0100 Subject: [PATCH] initialer checkin --- power.py | 36 +++++++++++++++++++++++++++++++ powerpi | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ powertrans | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ transfer.sh | 8 +++++++ 4 files changed, 166 insertions(+) create mode 100755 power.py create mode 100755 powerpi create mode 100755 powertrans create mode 100755 transfer.sh diff --git a/power.py b/power.py new file mode 100755 index 0000000..41cd713 --- /dev/null +++ b/power.py @@ -0,0 +1,36 @@ +#!/usr/bin/python + +import RPi.GPIO as GPIO +import time + +# set gpio port numeration to bcm style +GPIO.setmode(GPIO.BCM) + +#initialise gpio on pi 24 as input with an pull_up resistor +GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_UP) + +#initialise some startup values +last = time.time() +lpower = 10000 + +#start busy loop +while True: + #wait for a falling edge on gpio 24 + GPIO.wait_for_edge(24, GPIO.FALLING) + + #get current time and calculate current power from difference + current = time.time() + diff = current - last + power = 1800 / diff + + #write into logfile + logfile = open("/srv/powerpi/power.out", "w+", 0) + if (power < lpower + 1500): + out = str(current) + ";" + str(round(power,0)) + else: + out = str(current) + ";0" + logfile.write(out) + logfile.close() + lpower = power + last = current +GPIO.cleanup() diff --git a/powerpi b/powerpi new file mode 100755 index 0000000..fc410ae --- /dev/null +++ b/powerpi @@ -0,0 +1,61 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: powerpi +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Put a short description of the service here +# Description: Put a long description of the service here +### END INIT INFO + +# Change the next 3 lines to suit where you install your script and what you want to call it +DIR=/srv/powerpi +DAEMON=$DIR/power.py +DAEMON_NAME=PowerPi + +# Add any command line options for your daemon here +DAEMON_OPTS="" + +# This next line determines what user the script runs as. +# Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python. +DAEMON_USER=root + +# The process ID of the script when it runs is stored here: +PIDFILE=/var/run/$DAEMON_NAME.pid + +. /lib/lsb/init-functions + +do_start () { +log_daemon_msg "Starting system $DAEMON_NAME daemon" +start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --startas $DAEMON -- $DAEMON_OPTS +log_end_msg $? +} +do_stop () { +log_daemon_msg "Stopping system $DAEMON_NAME daemon" +start-stop-daemon --stop --pidfile $PIDFILE --retry 10 +log_end_msg $? +} + +case "$1" in + +start|stop) +do_${1} +;; + +restart|reload|force-reload) +do_stop +do_start +;; + +status) +status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $? +;; +*) +echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}" +exit 1 +;; + +esac +exit 0 diff --git a/powertrans b/powertrans new file mode 100755 index 0000000..403929c --- /dev/null +++ b/powertrans @@ -0,0 +1,61 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: powertrans +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Put a short description of the service here +# Description: Put a long description of the service here +### END INIT INFO + +# Change the next 3 lines to suit where you install your script and what you want to call it +DIR=/srv/powerpi +DAEMON=$DIR/transfer.sh +DAEMON_NAME=PowerTrans + +# Add any command line options for your daemon here +DAEMON_OPTS="" + +# This next line determines what user the script runs as. +# Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python. +DAEMON_USER=pi + +# The process ID of the script when it runs is stored here: +PIDFILE=/var/run/$DAEMON_NAME.pid + +. /lib/lsb/init-functions + +do_start () { +log_daemon_msg "Starting system $DAEMON_NAME daemon" +start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --startas $DAEMON -- $DAEMON_OPTS +log_end_msg $? +} +do_stop () { +log_daemon_msg "Stopping system $DAEMON_NAME daemon" +start-stop-daemon --stop --pidfile $PIDFILE --retry 10 +log_end_msg $? +} + +case "$1" in + +start|stop) +do_${1} +;; + +restart|reload|force-reload) +do_stop +do_start +;; + +status) +status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $? +;; +*) +echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}" +exit 1 +;; + +esac +exit 0 diff --git a/transfer.sh b/transfer.sh new file mode 100755 index 0000000..e50b357 --- /dev/null +++ b/transfer.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +host="http://datengammelstelle.de/hq_strom" + +while true; do + sleep 5; + wget $host/get.php?val=$(tail -1 /srv/powerpi/power.out) -O /dev/null -q +done