forked from emoncms/demandshaper
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #16 from emoncms/master
Sync
- Loading branch information
Showing
7 changed files
with
148 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?php | ||
// Load all emoncms and demandshaper requirements | ||
define('EMONCMS_EXEC', 1); | ||
include "/opt/emoncms/modules/demandshaper/cli/load_base.php"; | ||
|
||
// ------------------ | ||
$userid = 1; | ||
$device_name = "openevse"; | ||
// ------------------ | ||
|
||
// Load schedule | ||
$timezone = $user->get_timezone($userid); | ||
$schedules = $demandshaper->get($userid); | ||
$schedule = $schedules->$device_name; | ||
$device_type = $schedule->settings->device_type; | ||
|
||
// Change setting | ||
$schedule->settings->target_soc = 0.8; | ||
|
||
// Automatic update of time left for schedule e.g take into account updated battery SOC of electric car, home battery, device | ||
$schedule = $device_class[$device_type]->auto_update_timeleft($schedule); | ||
|
||
$kwh_required = ($schedule->settings->target_soc-$schedule->settings->current_soc)*$schedule->settings->battery_capacity; | ||
|
||
// Print info | ||
print "Current SOC:\t".($schedule->settings->current_soc*100)."%\n"; | ||
print "Target SOC:\t".($schedule->settings->target_soc*100)."%\n"; | ||
print "SOC Increase:\t".(($schedule->settings->target_soc-$schedule->settings->current_soc)*100)."% x ".$schedule->settings->battery_capacity." kWh battery capacity = ".$kwh_required." kWh\n"; | ||
print "Charge:\t\t".($kwh_required)." kWh @ ".$schedule->settings->charge_rate." kW = ".$schedule->settings->period." hrs\n"; | ||
|
||
// 1. Compile combined forecast | ||
$combined = $demandshaper->get_combined_forecast($schedule->settings->forecast_config,$timezone); | ||
// 2. Calculate forecast min/max | ||
$combined = forecast_calc_min_max($combined); | ||
// 3. Calculate schedule | ||
if ($schedule->settings->interruptible) { | ||
$schedule->runtime->periods = schedule_interruptible($combined,$schedule->runtime->timeleft,$schedule->settings->end_timestamp,$timezone); | ||
} else { | ||
$schedule->runtime->periods = schedule_block($combined,$schedule->runtime->timeleft,$schedule->settings->end_timestamp,$timezone); | ||
} | ||
|
||
print "Scheduled periods UTC: ".json_encode($schedule->runtime->periods)."\n"; | ||
|
||
$schedules->$device_name = $schedule; | ||
$demandshaper->set($userid,$schedules); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<?php | ||
define("MAX",1); | ||
define("MIN",0); | ||
|
||
chdir("/var/www/emoncms"); | ||
require "process_settings.php"; | ||
require "Lib/EmonLogger.php"; | ||
require "core.php"; | ||
require "$linked_modules_dir/demandshaper/lib/scheduler2.php"; | ||
require "$linked_modules_dir/demandshaper/lib/misc.php"; | ||
$log = new EmonLogger(__FILE__); | ||
|
||
// ------------------------------------------------------------------------- | ||
// MYSQL, REDIS | ||
// ------------------------------------------------------------------------- | ||
$mysqli = @new mysqli( | ||
$settings["sql"]["server"], | ||
$settings["sql"]["username"], | ||
$settings["sql"]["password"], | ||
$settings["sql"]["database"], | ||
$settings["sql"]["port"] | ||
); | ||
if ( $mysqli->connect_error ) { | ||
$log->error("Can't connect to database, please verify credentials/configuration in settings.php"); | ||
if ( $display_errors ) $log->error("Error message: ".$mysqli->connect_error); | ||
die(); | ||
} | ||
|
||
$redis = new Redis(); | ||
if (!$redis->connect($settings['redis']['host'], $settings['redis']['port'])) { $log->error("Can't connect to redis"); die; } | ||
if (!empty($settings['redis']['prefix'])) $redis->setOption(Redis::OPT_PREFIX, $settings['redis']['prefix']); | ||
if (!empty($settings['redis']['auth']) && !$redis->auth($settings['redis']['auth'])) { | ||
$log->error("Can't connect to redis, autentication failed"); die; | ||
} | ||
|
||
// Load user module used to fetch user timezone | ||
require("Modules/user/user_model.php"); | ||
$user = new User($mysqli,$redis); | ||
|
||
require_once "Modules/device/device_model.php"; | ||
$device = new Device($mysqli,$redis); | ||
|
||
require "Modules/demandshaper/demandshaper_model.php"; | ||
$demandshaper = new DemandShaper($mysqli,$redis,$device); | ||
|
||
require_once "Modules/input/input_model.php"; | ||
$input = new Input($mysqli,$redis,false); | ||
|
||
$device_class = $demandshaper->load_device_classes(false,$settings['mqtt']['basetopic']); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
{ | ||
"name" : "DemandShaper", | ||
"version" : "2.1.2" | ||
"version" : "2.1.3" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters