Commits

M Haidar Hanif committed 6f7a578 Merge

Merge branch 'release/0.8' into develop

Comments (0)

Files changed (35)

+*.un~
+
+*.py[co]
+
+# Packages
+*.egg
+*.egg-info
+dist
+build
+eggs
+parts
+bin
+var
+sdist
+develop-eggs
+.installed.cfg
+
+# Installer logs
+pip-log.txt
+
+# Unit test / coverage reports
+.coverage
+.tox
+
+# Translations
+*.mo
+
+# Mr Developer
+.mr.developer.cfg
+# Energy Usage Calculator (EUC) / Kargupy
+
+Build Version 0.8
+EUC/Kargupy Documentation (lang=en-US)
+
+[![EUC/Kargupy Logo](https://raw.github.com/mhaidarh/kargupy/master/logo/euc-logo-text_red-trans-small.png)](https://github.com/mhaidarh/kargupy/ "EUC/Kargupy logo")
+
+[![EUC/Kargupy Screenshot](https://raw.github.com/mhaidarh/kargupy/master/screen/euc-cli_0.8_light.png)](https://github.com/mhaidarh/kargupy/ "EUC/Kargupy light screenshot")
+
+## Intro
+
++ Calculate home energy usage per day and month
++ Estimate energy cost which will be paid monthly
++ Help saving energy by knowing estimation
+- Calculation is not from live data or history
+- Based on maximum possibility
+- Accurate prediction is not guaranteed
+
+* * * * *
+
+## Base Formula
+
+```
+VA = W
+KVA = KW
+WHn = W * H
+DWH = WH1 + .. + WHn [NEA]
+MWH = TWH * 30
+MKWH = MWH / 1000
+MB = FKWH * P
+```
+
+## Additional Formula
+
+```
+DWH < VA
+Based on maximum usage & time per day
+Possibility : Result - 50 %
+```
+
+## Declaration
+
+```
+VA = Volt-ampere (VA)
+W = Watt (W)
+WHn = Watt of n / Hour (Wh) [Limited to 24]
+DWH = Daily Watt / Hour (Wh) [Limited to VA]
+MWH = Monthly Watt / Hour (Wh)
+MKWH = Monthly KiloWatt / Hour (kWh)
+MC = Monthly Cost (Rp)
+```
+
+## Usage | Monthly | Tax
+
+```
+>= 6600 VA = Non-Subsidy = Rp 1.000 / kWh
+<  6600 VA = Subsidy     = Rp   600 / kWh
+TP = 5 % = 0.05
+```
+
+* * * * *
+
+## Input Example
+
+```
+[Separator I]
+[Title]
+[Separator II]
+- Name : Person
+- Household Power (VA) : 2200
+- Number of electronic appliances : 3 [NEA]
+  Electronic appliances list :
+  EA 1 | Power (Watt) = 10
+  -    | Usage (Hour) = 1 [Limited to 24]
+  -  2 | Power (Watt) = 20
+  -    | Usage (Hour) = 2
+  -  3 | Power (Watt) = 30
+  -    | Usage (Hour) = 3
+```
+
+## Process Example
+
+```
+WH1 = 10 * 1 = 10
+WH2 = 20 * 2 = 40
+WH3 = 30 * 3 = 90
+DWH = 10 + 40 + 90 = 140
+MWH = 140 * 30 = 4200
+MKWH = 4200 / 1000 = 4.2
+MB = 4.2 * 600 = 2520
+```
+
+## Output Example
+
+```
+[Separator II]
+Your name         = Person
+Household power   = 2200 VA
+Electronic 1 Watt = 10 Wh
+Electronic 2 Watt = 40 Wh
+Electronic 3 Watt = 90 Wh
+Daily   Watt Hour = 140 Wh
+Monthly Watt Hour = 4200 Wh
+Monthly kWh       = 4.2 kWh
+Monthly Price/kWh = Rp 600
+Monthly Bills     = Rp 2520
+[Separator I]
+```
+
+* * * * *
+
+## Future Formula
+
+```
+I = V / R
+V = I * R
+P = I^2 * R
+P = V^2 / R
+W = I^2 * R * t
+W = (V^2 * t) / R
+W = P * t
+TAX = MP + (MP * TP)
+```
+
+## Future Features
+
+- Naming each electronic appliance item.
+- Using future formula
+- Specific tax by place & location
+- Pluggable Authentication Module (PAM)
+
+## Reference
+
+- [Electricity pricing](http://en.wikipedia.org/wiki/Electricity_pricing)
+- [Tarif dasar listrik](http://id.wikipedia.org/wiki/Tarif_dasar_listrik)
+
+## Future reference
+
+- [Cost of electricity by source](http://en.wikipedia.org/wiki/Cost_of_electricity_by_source)
+- [TDL 2004](http://plnbukittinggi.com/webplncbkt/images/stories/TDL%202004%20&%20SE%20018.pdf)

data/dataEnergy.euc

+"Light Bulb",150
+"Fluorscent Low",60
+"Fluorscent Medium",80
+"Fluorscent High",100
+"Laptop",20
+"PC",50
+"TV",100
+"Radio",20
+"AC",200
+"Water Pump",300

data/dataPerson.euc

+"Haidar"
+"Hanif"
+"Hero"

Empty file added.

data/priceTable.txt

+==========================================================
+GROUP  VA     BC     USAGE/KWH  MP/KWH			   LC
+                     1  2	  3   1    2    3
+----------------------------------------------------------
+S-1	   220    14800  -  -   -   -    -    -    -
+S-2	   450    10000  0  30  60	123  265  360  5000
+       900    15000  0  20  60	200  295  360  10000
+       1300   25000  0  20  60	250  335  405  15000
+       2200   27000  0  20  60	250  370  420  20000
+       3500   30500  0  60  -   380  430  -    50000
+       6600   30500  0  60  -   380  430  -    75000
+       14000  30500  0  60  -   380  430	-    100000
+==========================================================
+#!/usr/bin/python3
+# Kargupy
+# Energy Usage Calculator
+version = 0.8
+
+import os
+title = "Energy Usage Calculator"
+L1 = "=================================================="
+L2 = "--------------------------------------------------"
+
+def euc():
+  global VA, KVA, NEA
+  print(L1)
+  print(title, version)
+  print(L2)
+  VA = eval(input("Household Power (VA) : "))
+  KVA = VA / float(1000)
+  def askNEA():
+    global NEA, dataW, dataH
+    NEA = eval(input("Number of electronic appliances : "))
+    if NEA > 1000:
+      print("[Impossible!]")
+      askNEA()
+    dataW = []; dataH = []
+    print("[Input your data based on maximum/day]")
+    for n in range(1,NEA+1):
+      def askEA():
+        global W,H
+        ansW = "EA {}\t| Power (Watt) : ".format(n)
+        ansH = "\t| Usage (Hour) : "
+        W = eval(input(ansW)) # ask W
+        if W > 100000 or W <= 0:
+          print("[Impossible power!]")
+          askEA()
+        H = eval(input(ansH)) # ask H
+        if H > 24 or H <= 0:
+          print("[Impossible usage in a day!]")
+          askEA()
+        else:
+          dataW.append(W)
+          dataH.append(H)
+      askEA()
+  askNEA()
+  countDaily(dataW,dataH)
+
+def countDaily(dataW,dataH):
+  global dataWHn, dataWH, HW, DWH, DKWH
+  HW = 0; DWH = 0; DKWH = 0
+  dataWHn = []
+  for x in range(len(dataW)): # append dataW & dataH to dataWHn
+    W = dataW[x]
+    H = dataH[x]
+    dataWHn.append([W,H])
+  for W in dataW: # count HW
+    HW += W
+  dataWH = []
+  for W,H in dataWHn: # append W * H to dataWH
+    WH = W * H
+    dataWH.append(WH)
+  if HW <= VA: # check W <= VA
+    for WH in dataWH:
+      DWH += WH
+    DKWH = DWH / float(1000)
+    countMonthly(DKWH)
+  else:
+    print("[Usage exceeded!]")
+    reportFail()
+
+def countMonthly(DKWH):
+  global MKWH, SC, MPKWH, TAX, MC1, MC2, MT1, MC3, MC4, MT2
+  MKWH = DKWH * 30
+  if VA < 450:
+    SC = KVA * 5000
+    MPKWH = 415
+  elif VA < 900:
+    SC = KVA * 10000
+    MPKWH = 605
+  elif VA < 1300:
+    SC = KVA * 15000
+    MPKWH = 790
+  elif VA < 2200:
+    SC = KVA * 25000
+    MPKWH = 605
+  elif VA < 3500:
+    SC = KVA * 27000
+    MPKWH = 650
+  elif VA < 200000:
+    SC = KVA * 30500
+    MPKWH = 1330
+  else:
+    SC = 0; MPKWH = 0
+  TAX = 0.1
+  MC1 = (MKWH * MPKWH) + SC; MT1 = MC1*TAX; MC2 = MC1 + MT1
+  MC3 = (MKWH * MPKWH); MT2 = MC3*TAX; MC4 = MC3 + MT2
+  report()
+
+def report():
+  print(L2)
+  print("Household Power\t\t= {} VA".format(VA))
+  print("[Result based on maximum estimation]")
+  for n in range(1,NEA+1):
+    print("Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1]))
+  print("Hourly  Watt\t\t= {} Wh".format(HW))
+  print("Daily   Watt Hour\t= {} Wh".format(DWH))
+  print("Daily   kWh\t\t= {} kWh".format(DKWH))
+  print("Monthly kWh\t\t= {} kWh".format(MKWH))
+  print("Subscription Cost/kWh\t= Rp {}".format(SC))
+  print("Monthly Price/kWh\t= Rp {}".format(MPKWH))
+  print("Monthly Cost w/o Tax (prepaid)\t= Rp {}".format(MC3))
+  print("Monthly Cost w/o Tax (postpaid)\t= Rp {}".format(MC1))
+  print("Monthly Tax\t\t= {}%".format(TAX*100))
+  print(L2)
+  print("Monthly Cost (prepaid)\t= Rp {}".format(MC4))
+  print("Monthly Cost (postpaid)\t= Rp {}".format(MC2))
+  print(L1)
+  again()
+
+def reportFail():
+  print(L2)
+  print("Household Power\t\t= {} VA".format(VA))
+  print(L2)
+  print("[Result based on maximum estimation]")
+  for n in range(1,NEA+1):
+    print("Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1]))
+  print("Hourly  Watt\t\t= {} W".format(HW))
+  print("""
+  Your usage is over from maximum possible capability in an hour/day.
+  You need to calculate again or disable some appliances.
+  """)
+  print(L1)
+  again()
+
+def again():
+  a = input("Calculate again [Y/N]? ")
+  if a == "Y" or a == "y":
+    print(""); run()
+  elif a == "N" or a == "n":
+    exit()
+  else:
+    print("[Wrong choice. Please answer Y or N]")
+    again()
+
+def clear():
+  os.system(['clear','cls'][os.name == 'nt'])
+
+def run():
+  try:
+    euc()
+  except:
+    print("[Exited!]")
+    exit()
+euc()

euc-cli/euc-cli_0.1.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.1
+#============================
+
+SI = "========================================"
+SII = "----------------------------------------"
+
+print SI
+print "Energy Usage Calculator"
+print SII
+
+name = raw_input("What's your name? ")
+VA = input("How much your VA? ")
+NEA =  input("Number of electronic appliances : ")
+dataWHn = []
+for n in range(1,NEA+1):
+  def ask():
+    global W,H
+    askW = "EA %d\t| Power (Watt) = " % n
+    askH = "\t| Usage (Hour) = "
+    W = input(askW)
+    H = input(askH)
+  ask()
+  if H > 24:
+    print "Usage must be <24 hours!"
+    ask()
+  else:
+    dataWHn.append([W,H])
+
+print SII
+print "Your name\t\t= %s" % name
+print "Household power\t\t= %s VA" % VA
+for n in range(1,NEA+1):
+  print "Electronic Appliance %d\t= %d Wh" % (n,dataWH[n-1])
+print SI

euc-cli/euc-cli_0.2.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.2
+#============================
+
+SI = "========================================"
+SII = "----------------------------------------"
+
+print SI
+print "Energy Usage Calculator"
+print SII
+
+def askdata():
+  global name, VA, NEA, dataWHn
+  name = raw_input("What's your name? ")
+  VA = input("How much your VA? ")
+  NEA =  input("Number of electronic appliances : ")
+  dataWHn = []
+  for n in range(1,NEA+1):
+    def ask():
+      global W,H
+      askW = "EA %d\t| Power (Watt) = " % n
+      askH = "\t| Usage (Hour) = "
+      W = input(askW)
+      H = input(askH)
+    ask()
+    if H > 24:
+      print "Usage must be <24 hours!"
+      ask()
+    else:
+      dataWHn.append([W,H])
+def countWH(dataWHn):
+  global dataWH
+  dataWH = []
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+def countDWH(dataWH):
+  global DWH
+  DWH = 0
+  for WH in dataWH:
+    DWH += WH
+def countMWH(DWH):
+  global MWH
+  MWH = 0
+  MWH = DWH * 30
+def countMKWH(MWH):
+  global MKWH
+  MKWH = 0
+  MKWH = MWH / float(1000)
+def countMPKWH():
+  global MPKWH, TAX
+  if VA >= 6600: MPKWH = 1380
+  elif VA < 6600: MPKWH = 600
+  else: MPKWH = 0
+  if VA >= 450 and VA <= 1300: TAX = 0.03
+  elif VA > 1300 and VA <= 5500: TAX = 0.05
+  elif VA > 5500: TAX = 0.06
+  else: TAX = 0.06
+def countMB(MKWH):
+  global MB
+  MB = 0
+  MB = MKWH * MPKWH
+  MB = MB + (MB*TAX)
+
+askdata()
+countWH(dataWHn)
+countDWH(dataWH)
+countMWH(DWH)
+countMKWH(MWH)
+countMPKWH()
+countMB(MKWH)
+
+print SII
+print "Your name\t\t= %s" % name
+print "Household power\t\t= %s VA" % VA
+for n in range(1,NEA+1):
+  print "Electronic Appliance %d\t= %d Wh" % (n,dataWH[n-1])
+print "Daily   Watt Hour\t= %d Wh" % DWH
+print "Monthly Watt Hour\t= %d Wh" % MWH
+print "Monthly kWh\t\t= %s kWh" % str(MKWH)
+print "Monthly Price/kWh\t= Rp %d" % MPKWH
+print "Monthly Tax\t\t= %d %% = Rp %d" % ((TAX*100),(MB*TAX))
+print "Monthly Bills\t\t= Rp %d" % MB
+print SI

euc-cli/euc-cli_0.3.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.3 | Functional
+#============================
+
+# Initial
+SI = "========================================"
+SII = "----------------------------------------"
+
+# Input
+print SI
+print "Energy Usage Calculator"
+print SII
+
+# Count
+
+def askdata():
+  global name, VA, NEA, dataWHn
+  name = raw_input("What's your name? ")
+  VA = input("How much your VA? ")
+  NEA =  input("Number of electronic appliances : ")
+  dataWHn = []
+  for n in range(1,NEA+1):
+    def ask():
+      global W,H
+      askW = "EA %d\t| Power (Watt) = " % n
+      askH = "\t| Usage (Hour) = "
+      W = input(askW)
+      H = input(askH)
+    ask()
+    if H > 24:
+      print "Usage must be <24 hours!"
+      ask()
+    else:
+      dataWHn.append([W,H])
+def countWH(dataWHn):
+  global dataWH
+  dataWH = []
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+def countDWH(dataWH):
+  global DWH
+  DWH = 0
+  for WH in dataWH:
+    DWH += WH
+def countMWH(DWH):
+  global MWH
+  MWH = 0
+  MWH = DWH * 30
+def countMKWH(MWH):
+  global MKWH
+  MKWH = 0
+  MKWH = MWH / float(1000)
+def countMPKWH():
+  global MPKWH, TAX
+  if VA >= 6600: MPKWH = 1380
+  elif VA < 6600: MPKWH = 600
+  else: MPKWH = 0
+  if VA >= 450 and VA <= 1300: TAX = 0.03
+  elif VA > 1300 and VA <= 5500: TAX = 0.05
+  elif VA > 5500: TAX = 0.06
+  else: TAX = 0.06
+def countMB(MKWH):
+  global MB
+  MB = 0
+  MB = MKWH * MPKWH
+  MB = MB + (MB*TAX)
+
+# Process
+
+askdata()
+countWH(dataWHn)
+countDWH(dataWH)
+countMWH(DWH)
+countMKWH(MWH)
+countMPKWH()
+countMB(MKWH)
+
+# Output
+
+print SII
+print "Your name\t\t= %s" % name
+print "Household power\t\t= %s VA" % VA
+for n in range(1,NEA+1):
+  print "Electronic Appliance %d\t= %d Wh" % (n,dataWH[n-1])
+print "Daily   Watt Hour\t= %d Wh" % DWH
+print "Monthly Watt Hour\t= %d Wh" % MWH
+print "Monthly kWh\t\t= %s kWh" % str(MKWH)
+print "Monthly Price/kWh\t= Rp %d" % MPKWH
+print "Monthly Tax\t\t= %d %% = Rp %d" % ((TAX*100),(MB*TAX))
+print "Monthly Bills\t\t= Rp %d" % MB
+print SI

euc-cli/euc-cli_0.4.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.4 | Functional
+#============================
+
+import os
+SI = "========================================"
+SII = "----------------------------------------"
+def BUG(n):
+  return "<DEBUG %d>" % n
+
+def count(dataWHn):
+  global dataWH, DWH, MWH, MKWH, MPKWH, TAX, MB1, MB2
+  dataWH = []
+  DWH = 0; MWH = 0; MKWH = 0; MPKWH = 0
+  TAX = 0; MB1 = 0; MB2 = 0
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+  for WH in dataWH:
+    DWH += WH
+  MWH = DWH * 30
+  MKWH = MWH / float(1000)
+  if VA >= 6600: MPKWH = 1380
+  elif VA < 6600: MPKWH = 600
+  else: MPKWH = 0
+  if VA >= 450 and VA <= 1300: TAX = 0.03
+  elif VA > 1300 and VA <= 5500: TAX = 0.05
+  elif VA > 5500: TAX = 0.06
+  else: TAX = 0.06
+  MB1 = MKWH * MPKWH
+  MB2 = MB1 + (MB1*TAX)
+
+def report():
+  print SII
+  print "Your name\t\t= {}".format(name)
+  print "Household power\t\t= {} VA".format(VA)
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} Wh".format(n,dataWH[n-1])
+  print "Daily   Watt Hour\t= {} Wh".format(DWH)
+  print "Monthly Watt Hour\t= {} Wh".format(MWH)
+  print "Monthly kWh\t\t= {} kWh".format(str(MKWH))
+  print "Monthly Price/kWh\t= Rp {0}".format(MPKWH)
+  print "Monthly Bills w/o Tax\t= Rp {0}".format(MB1)
+  print "Monthly Tax\t\t= {0} % = Rp {1}".format((TAX*100),(MB1*TAX))
+  print SII
+  print "Monthly Bills\t\t= Rp {0}".format(MB2)
+  print SI
+
+def again():
+  a = raw_input("Calculate again [Y/N]? ")
+  if a == "Y" or a == "y":
+    clear()
+    run()
+  elif a == "N" or a == "n":
+    exit()
+  else:
+    print "Wrong choice. Please answer Y or N."
+    again()
+
+def clear():
+  os.system(['clear','cls'][os.name == 'nt'])
+
+def euc():
+  global name, VA, NEA, dataWHn
+  print SI
+  print "Energy Usage Calculator"
+  print SII
+  name = raw_input("What's your name? ")
+  VA = input("How much your VA? ")
+  NEA =  input("Number of electronic appliances : ")
+  dataWHn = []
+  for n in range(1,NEA+1):
+    def ask():
+      global W,H
+      askW = "EA {}\t| Power (Watt) = ".format(n)
+      askH = "\t| Usage (Hour) = "
+      W = input(askW)
+      H = input(askH)
+    ask()
+    if H > 24:
+      print "Usage must be <24 hours!"
+      ask()
+    else:
+      dataWHn.append([W,H])
+  print BUG(1), "dataWHn =", dataWHn
+  count(dataWHn)
+  report()
+  again()
+
+def run():
+  try:
+    euc()
+  except:
+    print "Exited!"
+    exit()
+run()

euc-cli/euc-cli_0.5.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.5 | Functional
+#============================
+
+import os
+L1 = "========================================"
+L2 = "----------------------------------------"
+def BUG(n):
+  print "<DEBUG %d>" % n
+
+def euc():
+  global name, VA, NEA, dataWHn
+  print L1
+  print "Energy Usage Calculator"
+  print L2
+  name = raw_input("Name : ")
+  VA = input("Household Power (VA) : ")
+  KVA = VA / 1000
+  def askNEA():
+    global NEA, dataWHn
+    NEA =  input("Number of electronic appliances : ")
+    if NEA > 1000:
+      print "[Impossible!]"
+      askNEA()
+    dataWHn = []
+    print "[Input your data based on maximum/day]"
+    for n in range(1,NEA+1):
+      def askEA():
+        global W,H
+        ansW = "EA {}\t| Power (Watt) : ".format(n)
+        ansH = "\t| Usage (Hour) : "
+        W = input(ansW)
+        if W > 100000:
+          print "[Impossible power!]"
+          askEA()
+        H = input(ansH)
+        if H > 24:
+          print "[Impossible usage! Usage must be <24 hours]"
+          askEA()
+        dataWHn.append([W,H])
+      askEA()
+  askNEA()
+  countDaily(dataWHn)
+
+def countDaily(dataWHn):
+  global dataWH, DWH, DKWH
+  dataWH = []; DWH = 0
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+  for WH in dataWH:
+    DWH += WH
+  DKWH = DWH / float(1000)
+  if DWH > VA:
+    print "[Usage exceeded!]"
+    reportFail()
+  else:
+    countMonthly(DKWH)
+
+def countMonthly(DKWH):
+  global MKWH, MPKWH, TAX, MB1, MB2
+  MKWH = DKWH * 30
+  if VA >= 6600: MPKWH = 1380
+  elif VA < 6600: MPKWH = 600
+  else: MPKWH = 0
+  if VA >= 450 and VA <= 1300: TAX = 0.03
+  elif VA > 1300 and VA <= 5500: TAX = 0.05
+  elif VA > 5500: TAX = 0.06
+  else: TAX = 0.06
+  MB1 = MKWH * MPKWH
+  MB2 = MB1 + (MB1*TAX)
+  report()
+
+def report():
+  print L2
+  print "Your Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} Wh".format(n,dataWH[n-1])
+  print L2
+  print "[Data based on maximum estimation]"
+  print "Daily   Watt Hour\t= {} Wh".format(DWH)
+  print "Daily   kWh\t\t= {} kWh".format(DKWH)
+  print "Monthly kWh\t\t= {} kWh".format(MKWH)
+  print "Monthly Price/kWh\t= Rp {}".format(MPKWH)
+  print "Monthly Bills w/o Tax\t= Rp {}".format(MB1)
+  print "Monthly Tax\t\t= {} % = Rp {}".format((TAX*100),(MB1*TAX))
+  print L2
+  print "Monthly Bills\t\t= Rp {}".format(MB2)
+  print L1
+  again()
+
+def reportFail():
+  print L2
+  print "Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} Wh".format(n,dataWH[n-1])
+  print "Daily kWH > {}\t= {} kWh".format(VA,DKWH)
+  print """
+  Your usage is over from maximum possible capabilty in a day.
+  You need to calculate again or disable some appliances.
+  """
+  print L1
+  again()
+
+def again():
+  a = raw_input("Calculate again [Y/N]? ")
+  if a == "Y" or a == "y":
+    clear()
+    run()
+  elif a == "N" or a == "n":
+    exit()
+  else:
+    print "[Wrong choice. Please answer Y or N]"
+    again()
+
+def clear():
+  os.system(['clear','cls'][os.name == 'nt'])
+
+def run():
+  try:
+    euc()
+  except:
+    print "[Exited!]"
+    clear()
+    exit()
+run()

euc-cli/euc-cli_0.6.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.6 | Functional
+#============================
+
+import os
+title = "Energy Usage Calculator"
+ver = 0.6
+L1 = "=================================================="
+L2 = "--------------------------------------------------"
+def BUG(n):
+  return "<DEBUG %d>" % n
+
+def euc():
+  global name, VA, NEA
+  print L1
+  print title, ver
+  print L2
+  name = raw_input("Name : ")
+  VA = input("Household Power (VA) : ")
+  def askNEA():
+    global NEA, dataW, dataH
+    NEA =  input("Number of electronic appliances : ")
+    if NEA > 1000:
+      print "[Impossible!]"
+      askNEA()
+    dataW = []; dataH = []
+    print "[Input your data based on maximum/day]"
+    for n in range(1,NEA+1):
+      def askEA():
+        global W,H
+        ansW = "EA {}\t| Power (Watt) : ".format(n)
+        ansH = "\t| Usage (Hour) : "
+        # ask W
+        W = input(ansW)
+        if W > 100000 or W <= 0:
+          print "[Impossible power!]"
+          askEA()
+        # ask H
+        H = input(ansH)
+        if H > 24 or H <= 0:
+          print "[Impossible usage in a day!]"
+          askEA()
+        else:
+          dataW.append(W)
+          dataH.append(H)
+      askEA()
+  askNEA()
+  countDaily(dataW,dataH)
+
+def countDaily(dataW,dataH):
+  global dataWHn, dataWH, DW, DWH, DKWH
+  DW = 0; DWH = 0; DKWH = 0
+  # append dataW & dataH to dataWHn
+  dataWHn = []
+  for x in range(len(dataW)):
+    W = dataW[x]
+    H = dataH[x]
+    dataWHn.append([W,H])
+  # count DW
+  for W in dataW:
+    DW += W
+  # append W * H to dataWH
+  dataWH = []
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+  # check W <= VA
+  if DW <= VA:  
+    for WH in dataWH:
+      DWH += WH
+    DKWH = DWH / float(1000)
+    countMonthly(DKWH)
+  else:
+    print "[Usage exceeded!]"
+    reportFail()
+
+def countMonthly(DKWH):
+  global MKWH, MPKWH, TAX, MB1, MB2
+  MKWH = DKWH * 30
+  if VA >= 6600: MPKWH = 1380
+  elif VA < 6600: MPKWH = 600
+  else: MPKWH = 0
+  if VA >= 450 and VA <= 1300: TAX = 0.03
+  elif VA > 1300 and VA <= 5500: TAX = 0.05
+  elif VA > 5500: TAX = 0.06
+  else: TAX = 0
+  MB1 = MKWH * MPKWH
+  MB2 = MB1 + (MB1*TAX)
+  report()
+
+def report():
+  print L2
+  print "Your Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  print L2
+  print "[Result based on maximum estimation]"
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1])
+  print "Hourly  Watt\t\t= {} Wh".format(DW)
+  print "Daily   Watt Hour\t= {} Wh".format(DWH)
+  print "Daily   kWh\t\t= {} kWh".format(DKWH)
+  print "Monthly kWh\t\t= {} kWh".format(MKWH)
+  print "Monthly Price/kWh\t= Rp {}".format(MPKWH)
+  print "Monthly Bills w/o Tax\t= Rp {}".format(MB1)
+  print "Monthly Tax\t\t= {} % = Rp {}".format((TAX*100),(MB1*TAX))
+  print L2
+  print "Monthly Bills\t\t= Rp {}".format(MB2)
+  print L1
+  again()
+
+def reportFail():
+  print L2
+  print "Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  print L2
+  print "[Result based on maximum estimation]"
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1])
+  print "Hourly  Watt\t\t= {} W".format(DW)
+  print """
+  Your usage is over from maximum possible capability in an hour/day.
+  You need to calculate again or disable some appliances.
+  """
+  print L1
+  again()
+
+def again():
+  a = raw_input("Calculate again [Y/N]? ")
+  if a == "Y" or a == "y":
+    clear()
+    run()
+  elif a == "N" or a == "n":
+    clear()
+    exit()
+  else:
+    print "[Wrong choice. Please answer Y or N]"
+    again()
+
+def clear():
+  os.system(['clear','cls'][os.name == 'nt'])
+
+def run():
+  try:
+    euc()
+  except:
+    print "[Exited!]"
+    clear()
+    exit()
+run()

euc-cli/euc-cli_0.7.py

+#============================
+# Energy Usage Calculator
+#   Program Code
+#   Version: 0.7 | Functional
+#============================
+
+import os
+title = "Energy Usage Calculator"
+ver = 0.7
+L1 = "=================================================="
+L2 = "--------------------------------------------------"
+def BUG(n):
+  return "<DEBUG {}>".format(n)
+
+def euc():
+  global name, VA, KVA, NEA
+  print L1
+  print title, ver
+  print L2
+  name = raw_input("Name : ")
+  VA = input("Household Power (VA) : ")
+  KVA = VA / float(1000)
+  def askNEA():
+    global NEA, dataW, dataH
+    NEA =  input("Number of electronic appliances : ")
+    if NEA > 1000:
+      print "[Impossible!]"
+      askNEA()
+    dataW = []; dataH = []
+    print "[Input your data based on maximum/day]"
+    for n in range(1,NEA+1):
+      def askEA():
+        global W,H
+        ansW = "EA {}\t| Power (Watt) : ".format(n)
+        ansH = "\t| Usage (Hour) : "
+        # ask W
+        W = input(ansW)
+        if W > 100000 or W <= 0:
+          print "[Impossible power!]"
+          askEA()
+        # ask H
+        H = input(ansH)
+        if H > 24 or H <= 0:
+          print "[Impossible usage in a day!]"
+          askEA()
+        else:
+          dataW.append(W)
+          dataH.append(H)
+      askEA()
+  askNEA()
+  countDaily(dataW,dataH)
+
+def countDaily(dataW,dataH):
+  global dataWHn, dataWH, HW, DWH, DKWH
+  HW = 0; DWH = 0; DKWH = 0
+  # append dataW & dataH to dataWHn
+  dataWHn = []
+  for x in range(len(dataW)):
+    W = dataW[x]
+    H = dataH[x]
+    dataWHn.append([W,H])
+  # count HW
+  for W in dataW:
+    HW += W
+  # append W * H to dataWH
+  dataWH = []
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+  # check W <= VA
+  if HW <= VA:  
+    for WH in dataWH:
+      DWH += WH
+    DKWH = DWH / float(1000)
+    countMonthly(DKWH)
+  else:
+    print "[Usage exceeded!]"
+    reportFail()
+
+def countMonthly(DKWH):
+  global MKWH, BC, MPKWH, TAX, MB1, MB2
+  MKWH = DKWH * 30
+  if VA <= 450:
+    BC = KVA * 5000
+    MPKWH = 360
+  elif VA <= 900:
+    BC = KVA * 10000
+    MPKWH = 360
+  elif VA <= 1300:
+    BC = KVA * 15000
+    MPKWH = 360
+  elif VA <= 2200:
+    BC = KVA * 25000
+    MPKWH = 405
+  elif VA <= 3500:
+    BC = KVA * 27000
+    MPKWH = 420
+  elif VA <= 6600 or VA <= 200000:
+    BC = KVA * 30500
+    MPKWH = 430
+  else:
+    BC = 0; MPKWH = 0
+  if VA <= 1300: TAX = 0.03
+  elif VA <= 5500: TAX = 0.05
+  elif VA <= 200000: TAX = 0.06
+  else: TAX = 0
+  MB1 = (MKWH * MPKWH) + BC
+  MT = MB1*TAX
+  MB2 = MB1 + MT
+  report()
+
+def report():
+  print L2
+  print "Your Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  print L2
+  print "[Result based on maximum estimation]"
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1])
+  print "Hourly  Watt\t\t= {} Wh".format(HW)
+  print "Daily   Watt Hour\t= {} Wh".format(DWH)
+  print "Daily   kWh\t\t= {} kWh".format(DKWH)
+  print "Monthly kWh\t\t= {} kWh".format(MKWH)
+  print "Burden  Cost/kW\t\t= Rp {}".format(BC)
+  print "Monthly Price/kWh\t= Rp {}".format(MPKWH)
+  print "Monthly Bills w/o Tax\t= Rp {}".format(MB1)
+  print "Monthly Tax\t\t= {} % = Rp {}".format((TAX*100),(MB1*TAX))
+  print L2
+  print "Monthly Bills\t\t= Rp {}".format(MB2)
+  print L1
+  again()
+
+def reportFail():
+  print L2
+  print "Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  print L2
+  print "[Result based on maximum estimation]"
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1])
+  print "Hourly  Watt\t\t= {} W".format(HW)
+  print """
+  Your usage is over from maximum possible capability in an hour/day.
+  You need to calculate again or disable some appliances.
+  """
+  print L1
+  again()
+
+def again():
+  a = raw_input("Calculate again [Y/N]? ")
+  if a == "Y" or a == "y":
+    clear()
+    run()
+  elif a == "N" or a == "n":
+    clear()
+    exit()
+  else:
+    print "[Wrong choice. Please answer Y or N]"
+    again()
+
+def clear():
+  os.system(['clear','cls'][os.name == 'nt'])
+
+def run():
+  try:
+    euc()
+  except:
+    print "[Exited!]"
+    clear()
+    exit()
+run()
+
+# euc()

euc-cli/euc-cli_0.8.py

+#!/usr/bin/python
+# Energy Usage Calculator
+# Program Code
+# Version: 0.8 | Functional
+
+import os
+title = "Energy Usage Calculator"
+ver = 0.8
+L1 = "=================================================="
+L2 = "--------------------------------------------------"
+
+def euc():
+  global name, VA, KVA, NEA
+  print L1
+  print title, ver
+  print L2
+  VA = input("Household Power (VA) : ")
+  KVA = VA / float(1000)
+  def askNEA():
+    global NEA, dataW, dataH
+    NEA =  input("Number of electronic appliances : ")
+    if NEA > 1000:
+      print "[Impossible!]"
+      askNEA()
+    dataW = []; dataH = []
+    print "[Input your data based on maximum/day]"
+    for n in range(1,NEA+1):
+      def askEA():
+        global W,H
+        ansW = "EA {}\t| Power (Watt) : ".format(n)
+        ansH = "\t| Usage (Hour) : "
+        # ask W
+        W = input(ansW)
+        if W > 100000 or W <= 0:
+          print "[Impossible power!]"
+          askEA()
+        # ask H
+        H = input(ansH)
+        if H > 24 or H <= 0:
+          print "[Impossible usage in a day!]"
+          askEA()
+        else:
+          dataW.append(W)
+          dataH.append(H)
+      askEA()
+  askNEA()
+  countDaily(dataW,dataH)
+
+def countDaily(dataW,dataH):
+  global dataWHn, dataWH, HW, DWH, DKWH
+  HW = 0; DWH = 0; DKWH = 0
+  # append dataW & dataH to dataWHn
+  dataWHn = []
+  for x in range(len(dataW)):
+    W = dataW[x]
+    H = dataH[x]
+    dataWHn.append([W,H])
+  # count HW
+  for W in dataW:
+    HW += W
+  # append W * H to dataWH
+  dataWH = []
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+  # check W <= VA
+  if HW <= VA:  
+    for WH in dataWH:
+      DWH += WH
+    DKWH = DWH / float(1000)
+    countMonthly(DKWH)
+  else:
+    print "[Usage exceeded!]"
+    reportFail()
+
+def countMonthly(DKWH):
+  global MKWH, SC, MPKWH, TAX, MB1, MB2
+  MKWH = DKWH * 30
+  if VA < 450:
+    SC = KVA * 5000
+    MPKWH = 415
+  elif VA < 900:
+    SC = KVA * 10000
+    MPKWH = 605
+  elif VA < 1300:
+    SC = KVA * 15000
+    MPKWH = 790
+  elif VA < 2200:
+    SC = KVA * 25000
+    MPKWH = 605
+  elif VA < 3500:
+    SC = KVA * 27000
+    MPKWH = 650
+  elif VA < 200000:
+    SC = KVA * 30500
+    MPKWH = 1330
+  else:
+    SC = 0; MPKWH = 0
+  if VA <= 1300: TAX = 0.1
+  elif VA <= 5500: TAX = 0.1
+  elif VA <= 200000: TAX = 0.1
+  else: TAX = 0
+  MB1 = (MKWH * MPKWH) + SC
+  MT = MB1*TAX
+  MB2 = MB1 + MT
+  report()
+
+def report():
+  print L2
+  print "Household Power\t\t= {} VA".format(VA)
+  print "[Result based on maximum estimation]"
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1])
+  print "Hourly  Watt\t\t= {} Wh".format(HW)
+  print "Daily   Watt Hour\t= {} Wh".format(DWH)
+  print "Daily   kWh\t\t= {} kWh".format(DKWH)
+  print "Monthly kWh\t\t= {} kWh".format(MKWH)
+  print "Subscription Cost/kW\t= Rp {}".format(SC)
+  print "Monthly Price/kWh\t= Rp {}".format(MPKWH)
+  print "Monthly Bill w/o Tax\t= Rp {}".format(MB1)
+  print "Monthly Tax\t\t= {}% = Rp {}".format((TAX*100),(MB1*TAX))
+  print L2
+  print "Monthly Bill\t\t= Rp {}".format(MB2)
+  print L1
+  again()
+
+def reportFail():
+  print L2
+  print "Name\t\t= {}".format(name)
+  print "Household Power\t\t= {} VA".format(VA)
+  print L2
+  print "[Result based on maximum estimation]"
+  for n in range(1,NEA+1):
+    print "Electronic Appliance {}\t= {} W * {} H = {} Wh".format(
+    n,dataW[n-1],dataH[n-1],dataWH[n-1])
+  print "Hourly  Watt\t\t= {} W".format(HW)
+  print """
+  Your usage is over from maximum possible capability in an hour/day.
+  You need to calculate again or disable some appliances.
+  """
+  print L1
+  again()
+
+def again():
+  a = raw_input("Calculate again [Y/N]? ")
+  if a == "Y" or a == "y":
+    clear(); run()
+  elif a == "N" or a == "n":
+    clear(); exit()
+  else:
+    print "[Wrong choice. Please answer Y or N]"
+    again()
+
+def clear():
+  os.system(['clear','cls'][os.name == 'nt'])
+
+def run():
+  try:
+    euc()
+  except:
+    print "[Exited!]"
+    clear(); exit()
+run()

euc-cli/prototype/command.py

+import argparse
+
+parser = argparse.ArgumentParser(description="Basic direct input.")
+parser.add_argument('integers', metavar='N', type=int, nargs='+',
+                   help="User's name")
+parser.add_argument('--sum', dest='accumulate', action='store_const',
+                   const=sum, default=max,
+                   help="sum the integers (default: find the max)")
+
+args = parser.parse_args()
+print args.accumulate(args.integers)

euc-cli/prototype/data_count.py

+def countWH(dataWHn):
+  global dataWH
+  dataWH = []
+  for W,H in dataWHn:
+    WH = W * H
+    dataWH.append(WH)
+def countDWH(dataWH):
+  global DWH
+  DWH = 0
+  for WH in dataWH:
+    DWH += WH
+def countMWH(DWH):
+  global MWH
+  MWH = 0
+  MWH = DWH * 30
+def countMKWH(MWH):
+  global MKWH
+  MKWH = 0
+  MKWH = MWH / float(1000)
+def countMB(MKWH):
+  global MB
+  MB = 0
+  MB = MKWH * P
+
+print "WHn  =",dataWHn
+countWH(dataWHn)
+print "WH   =",dataWH
+countDWH(dataWH)
+print "DWH  =",DWH
+countMWH(DWH)
+print "MWH  =",MWH
+countMKWH(MWH)
+print "MKWH =",MKWH
+countMB(MKWH)
+print "MB   = Rp",MB

euc-cli/prototype/data_nea.py

+dataWHn = []
+def askdata():
+  NEA =  input("Number of electronic appliances : ")
+  for n in range(1,NEA+1):
+    def ask():
+      global W,H
+      askW = "EA%d | Power (Watt) = " % n
+      askH = "    | Usage (Hour) = "
+      W = input(askW)
+      H = input(askH)
+    ask()
+    if H > 24:
+      print "Usage must be <24 hours!"
+      ask()
+    else:
+      dataWHn.append([W,H])
+askdata()
+print dataWHn

euc-cli/prototype/list_appendpos.py

+L = "-----"
+dataW = [200, 100, 50]
+dataH = [20, 10, 5]
+dataWHn = []
+
+# check dataW & dataH
+print L
+print "dataW =",dataW
+print "dataH =",dataH
+print L
+
+# append to dataWHn from dataW * dataH
+for x in range(len(dataW)):
+  W = dataW[x]
+  H = dataH[x]
+  dataWHn.append([W,H])
+
+# check dataWH
+print "dataWHn =",dataWHn

euc-cli/prototype/list_category.py

+def R1(VA):
+    if VA >= 450:
+	MPKWH = 415
+    if VA >= 900:
+	MPKWH = 605
+    if VA >= 1300:
+	MPKWH = 790
+    if VA >= 2200:
+	MPKWH = 795
+def R2(VA):
+    MPKWH = 890
+def R3(VA):
+    MPKWH = 1330

euc-cli/prototype/list_multiply.py

+a = ['a1', 'a2', 'a3']
+b = ['b1', 'b2', 'b3']
+print "Multiplied Matrix:"
+for x, y in [(x,y) for x in a for y in b]:
+  print x, y

euc-cli/prototype/list_orderprinter.py

+one = [[10,100],[20,200],[30,300]]
+two = []
+
+for x,y in one:
+  z = x * y
+  two.append(z)
+  print "x = %d and y = %d then x*y = %d" % (x,y,z)
+print two

Empty file added.

euc-gui/euc-gui_prototype/num-matplot.py

+#!/usr/bin/python
+import numpy
+from matplotlib import pyplot
+x = numpy.linspace(0, 2 * numpy.pi, 100)
+y = numpy.sin(x)
+pyplot.plot(x, y)
+pyplot.show()

euc-gui/euc-gui_prototype/num.py

+import numpy
+x = numpy.sin(1)
+y = numpy.cos(0)
+print x
+print y
+## 0.1 [2012-05-05]
+-  Initial CLI program
+
+## 0.2 [2012-05-14]
+-  Functional style
+-  Program finished
+-  Some parts are missing
+
+## 0.3 [2012-05-16]
+-  Working program
+-  Few bugs detected
+
+## 0.4 [2012-05-17]
+-  Unified program flow
+-  Using new string format
+
+## 0.5 [2012-05-27]
+-  Better formatting
+
+## 0.6 [2012-06-04]
+-  Fixed few flaw operation
+
+## 0.7 [2012-06-11]
+-  Fully working
+
+## 0.8 [2012-07-05]
+-  Changed few design
+-  Revamped calculation
+-  Streamlined comments
+-  "Burden" to "Subscription"
+-  Ported to Python 3.x
+-  Prepaid and postpaid info
Add a comment to this file

logo/euc-logo-text_red-gray.png

Added
New image
Add a comment to this file

logo/euc-logo-text_red-trans-small.png

Added
New image
Add a comment to this file

logo/euc-logo-text_red-trans.png

Added
New image
Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="500"
+   height="500"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.3.1 r9886"
+   sodipodi:docname="euc-logo.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.3472222222"
+     inkscape:cx="789.2446862"
+     inkscape:cy="313.1341756"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showborder="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="744"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-552.3621826)">
+    <rect
+       style="color:#000000;fill:#ececec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0"
+       id="rect3417"
+       width="1500"
+       height="600"
+       x="-50"
+       y="502.3621826"
+       inkscape:export-filename="/home/mhaidarh/repo/project/eneryusage/logo/euc-logo-text_red-trans.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <rect
+       style="color:#000000;fill:#ff2a2a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect3256"
+       width="500"
+       height="500"
+       x="0"
+       y="552.3621826"
+       inkscape:export-filename="/home/mhaidarh/repo/project/eneryusage/logo/euc-logo-text_red-trans.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <path
+       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="m 100,652.3621822 0,300.0000004 300,0 0,-50.0000004 -150,0 0,-75 150,0 0,-50 -150,0 0,-75 150,0 0,-50 z"
+       id="rect3004-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccc"
+       inkscape:export-filename="/home/mhaidarh/repo/project/eneryusage/logo/euc-logo-text_red-trans.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <g
+       style="font-size:155.10450744630000486px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;font-family:Sans"
+       id="text3294"
+       inkscape:export-filename="/home/mhaidarh/repo/project/eneryusage/logo/euc-logo-text_red-trans.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90">
+      <g
+         id="g3388"
+         transform="translate(75.0772501,0)"
+         style="fill:#ff2a2a">
+        <path
+           id="path3346"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 504.9227499,663.0862427 0,-110.7240185 63.7685524,0 0,19.2365942 -40.2908193,0 0,24.3108139 37.4886383,0 0,19.2365942 -37.4886383,0 0,28.5519527 40.2908193,0 0,19.3880635 -63.7685524,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3348"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 590.0484631,663.0862427 0,-84.6713083 17.6461671,0 3.1051195,10.8300511 1.2874886,0 c 2.5749405,-4.0895917 6.1092193,-7.1694633 10.6028472,-9.239624 4.5440281,-2.1204842 9.6939773,-3.1807679 15.4498631,-3.1808542 9.8454309,8.63e-5 17.3179062,2.6760403 22.4174483,8.02787 5.0993769,5.3014966 7.6491066,12.9759307 7.6491969,23.0233254 l 0,55.21054 -23.0990599,0 0,-49.4547087 c -6.72e-5,-6.109204 -1.0855957,-10.6785217 -3.2565888,-13.7079667 -2.1711209,-3.0798084 -5.6296653,-4.6197442 -10.3756433,-4.619812 -6.4627349,6.78e-5 -11.133032,2.1711248 -14.0109052,6.5131775 -2.8779524,4.2916857 -4.3169088,11.4359779 -4.3168735,21.4328983 l 0,39.8364116 -23.09906,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3350"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 686.9887798,621.3564655 c -7e-6,-14.1875634 3.5342718,-25.1438279 10.6028471,-32.8688263 7.1190299,-7.7753389 16.9392762,-11.6630456 29.4607683,-11.6631319 11.9660114,8.63e-5 21.2813607,3.4081409 27.9460758,10.2241741 6.6645652,6.8161853 9.9968852,16.232514 9.9969702,28.2490143 l 0,11.2087242 -54.604663,0 c 0.2524181,6.5636973 2.1962715,11.6884016 5.8315659,15.3741284 3.6352221,3.6857692 8.7346816,5.5286431 15.2983938,5.5286275 5.099408,1.56e-5 9.9211742,-0.5301262 14.465313,-1.5904271 4.5440069,-1.0602664 9.2900385,-2.7516713 14.2381091,-5.0742197 l 0,17.8733709 c -4.0392561,2.0195924 -8.3561252,3.5090385 -12.9506205,4.4683428 -4.5946298,1.0097939 -10.1989863,1.5146909 -16.8130863,1.5146924 -13.6322689,-1.5e-6 -24.2855952,-3.761484 -31.9600108,-11.2844588 -7.6744526,-7.5229552 -11.5116696,-18.1762815 -11.5116626,-31.9600108 m 23.9321408,-10.224174 32.4144185,0 c -0.1010427,-5.705284 -1.5904888,-10.0978877 -4.4683427,-13.1778244 -2.8779717,-3.1302962 -6.7656784,-4.6954768 -11.663132,-4.6955466 -4.8975478,6.98e-5 -8.7347649,1.5652504 -11.5116626,4.6955466 -2.7769691,3.0799367 -4.3673946,7.4725404 -4.7712812,13.1778244"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3352"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 783.9290936,663.0862427 0,-84.6713083 17.4946979,0 3.408058,14.2381091 1.1360193,0 c 2.6254302,-4.7459612 6.159709,-8.5579334 10.6028472,-11.435928 4.4935384,-2.9283207 9.3657942,-4.3925219 14.6167822,-4.3926082 3.1303019,8.63e-5 5.7305214,0.2272899 7.8006662,0.6816116 l -1.7418964,21.6601022 c -1.8681842,-0.5048331 -4.1402206,-0.7572816 -6.816116,-0.7573463 -7.3715545,6.47e-5 -13.1273801,1.8934284 -17.267494,5.6800967 -4.0897069,3.7867864 -6.1345397,9.0882047 -6.1345045,15.9042708 l 0,43.0930004 -23.0990599,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3354"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 842.8506175,676.869944 c -5e-7,-5.0994733 1.590425,-9.3658527 4.7712812,-12.7991512 3.1808457,-3.4333005 7.8511428,-5.8820508 14.0109052,-7.3462584 -2.373035,-1.0097876 -4.4431127,-2.6507028 -6.2102391,-4.9227505 -1.7671524,-2.3225148 -2.6507221,-4.7712652 -2.6507118,-7.3462584 -1.03e-5,-3.2313221 0.9340491,-5.9072761 2.8021811,-8.02787 1.8681056,-2.1710304 4.5693045,-4.2915977 8.1036046,-6.3617084 -4.4431147,-1.9185755 -7.9773936,-4.998447 -10.6028472,-9.2396239 -2.5749852,-4.2410924 -3.8624725,-9.2395725 -3.8624657,-14.9954553 -6.8e-6,-9.2395575 3.0041302,-16.3838498 9.0124201,-21.4328983 6.0082582,-5.0488911 14.5915069,-7.573376 25.7497717,-7.5734623 2.3729743,8.63e-5 5.1751525,0.2272899 8.4065431,0.6816116 3.2817804,0.4040032 5.3771029,0.7069414 6.2859737,0.9088155 l 29.5365029,0 0,11.7388665 -13.253559,3.4080581 c 2.423433,3.7867968 3.6351857,8.0279315 3.6352619,12.7234166 -7.62e-5,9.0882024 -3.1809271,16.182005 -9.5425624,21.281429 -6.3112789,5.0490053 -15.0964864,7.5734902 -26.3556488,7.5734623 l -4.1654042,-0.2272039 -3.408058,-0.3786731 c -2.3730486,1.8176577 -3.5595565,3.8372456 -3.5595273,6.0587698 -2.92e-5,3.3323426 4.2411055,4.9985026 12.7234166,4.9984851 l 14.3895783,0 c 9.2900482,1.75e-5 16.3586059,1.9943606 21.2056944,5.9830352 4.8974232,3.9886977 7.3461736,9.8455026 7.3462584,17.5704325 -8.48e-5,9.8959748 -4.14024,17.5704089 -12.4204781,23.0233253 -8.2298932,5.4528583 -20.0697274,8.179302 -35.5195381,8.1793393 -11.8146262,-3.73e-5 -20.8522822,-2.0701149 -27.1129949,-6.2102391 -6.2102427,-4.0896966 -9.3153591,-9.8455222 -9.3153586,-17.267494 m 19.9939404,-1.8176309 c -2.05e-5,3.180839 1.5146705,5.680079 4.5440773,7.4977276 3.0798466,1.8176097 7.371471,2.7264243 12.8748859,2.7264464 8.2802726,-2.21e-5 14.7681988,-1.1360403 19.4637981,-3.408058 4.6954845,-2.2720552 7.0432555,-5.3771716 7.0433199,-9.3153586 -6.44e-5,-3.1808604 -1.3885311,-5.3771623 -4.1654043,-6.5889122 -2.7769936,-1.2117556 -7.0686179,-1.817632 -12.8748858,-1.8176309 l -11.9660704,0 c -4.24117,-1.1e-6 -7.8006938,0.984548 -10.6785819,2.9536503 -2.8274477,2.0195839 -4.2411593,4.670293 -4.2411388,7.9521354 m 8.4065431,-68.9185068 c -2.89e-5,4.5946195 1.0350099,8.2298778 3.1051195,10.9057857 2.1205354,2.6760001 5.3266312,4.0139771 9.6182971,4.013935 4.3420725,4.21e-5 7.5229234,-1.3379349 9.5425625,-4.013935 2.0195368,-2.6759079 3.0293308,-6.3111662 3.0293849,-10.9057857 -5.41e-5,-10.198862 -4.1906991,-15.2983215 -12.5719474,-15.2983938 -8.4823108,7.23e-5 -12.7234455,5.0995318 -12.7234166,15.2983938"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3356"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 929.9454651,578.4149344 25.295364,0 15.9800054,47.6370777 c 1.3631806,4.1401923 2.29724,9.037693 2.802181,14.6925169 l 0.4544078,0 c 0.5553421,-5.2004166 1.6408706,-10.0979173 3.2565888,-14.6925169 l 15.6770669,-47.6370777 24.765222,0 -35.822477,95.5013593 c -3.2818827,8.8356864 -7.9774246,15.4498368 -14.0866398,19.8424712 -6.0588021,4.3925731 -13.1526046,6.5888749 -21.281429,6.5889122 -3.9887032,-3.73e-5 -7.9016548,-0.4291997 -11.7388665,-1.2874886 l 0,-18.3277787 c 2.7769281,0.6563484 5.80631,0.9845314 9.0881547,0.9845501 4.0896512,-1.87e-5 7.6491749,-1.2622611 10.6785818,-3.7867312 3.0798465,-2.47401 5.4781072,-6.2354925 7.1947892,-11.2844588 l 1.3632232,-4.1654042 -33.6261725,-84.0654313"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         id="g3396"
+         transform="translate(75.8345963,0)"
+         style="fill:#ff2a2a">
+        <path
+           id="path3358"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 504.1654037,817.5848731 0,-71.3420146 23.4019984,0 0,67.7824874 c -3.65e-5,8.5328019 1.7166132,14.7935244 5.1499544,18.7821864 3.4332577,3.9887103 9.1133488,5.9830534 17.0402901,5.9830352 7.6743754,1.82e-5 13.2282421,-1.9943249 16.661617,-5.9830352 3.4837138,-4.0391517 5.2256083,-10.3503639 5.225689,-18.9336557 l 0,-67.6310181 23.4019984,0 0,71.6449531 c -1.04e-4,8.1793702 -1.842978,15.3489073 -5.5286274,21.5086329 -3.6353568,6.1597607 -8.9115303,10.8805475 -15.8285362,14.1623745 -6.9171713,3.2818337 -15.0965024,4.9227489 -24.5380178,4.9227504 -14.238153,-1.5e-6 -25.2953968,-3.6352597 -33.1717647,-10.9057856 -7.8764179,-7.3209969 -11.8146144,-17.3179571 -11.8146012,-29.9909107"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3360"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 615.1923625,794.3343439 c -7e-6,-7.5229023 2.9031507,-13.3292176 8.7094816,-17.4189632 5.8567893,-4.1400752 14.1370998,-6.2101528 24.8409563,-6.2102391 10.1988785,8.63e-5 20.1201042,2.221633 29.7637068,6.6646468 l -6.9675853,16.6616171 c -4.241198,-1.8175662 -8.2046393,-3.3070123 -11.8903358,-4.4683428 -3.6857994,-1.1611956 -7.4472819,-1.7418272 -11.2844588,-1.7418963 -6.8161494,6.91e-5 -10.224204,1.8429431 -10.2241741,5.5286275 -2.99e-5,2.0701412 1.0854986,3.8625255 3.2565888,5.3771582 2.2215135,1.5147491 7.0432797,3.7615407 14.4653129,6.7403814 6.6141029,2.6760055 11.4611139,5.1752455 14.5410476,7.4977277 3.0798094,2.3225701 5.3518458,4.9985241 6.8161161,8.02787 1.4641322,3.0294178 2.1962328,6.6394312 2.196304,10.830051 -7.12e-5,8.6842532 -3.029453,15.2984037 -9.0881547,19.8424712 -6.0083362,4.5440781 -15.0207473,6.8161145 -27.0372603,6.816116 -6.1597783,-1.5e-6 -11.4107069,-0.4291639 -15.7528016,-1.2874885 -4.3421333,-0.8078354 -8.406554,-2.0195882 -12.1932742,-3.6352619 l 0,-19.085125 c 4.2916172,2.0196104 9.1133833,3.7110153 14.4653129,5.0742197 5.4023761,1.3632393 10.1484077,2.0448502 14.2381091,2.0448349 8.381254,1.53e-5 12.571899,-2.4234902 12.5719474,-7.2705238 -4.84e-5,-1.8176065 -0.5554351,-3.2818078 -1.6661617,-4.3926081 -1.1108201,-1.1612361 -3.0294286,-2.4487234 -5.7558314,-3.8624658 -2.7264846,-1.4641704 -6.3617429,-3.1555752 -10.9057856,-5.0742197 -6.5132011,-2.7264078 -11.3097225,-5.2508927 -14.3895784,-7.5734623 -3.0293975,-2.3224826 -5.2509442,-4.9731917 -6.6646468,-7.9521354 -1.3632308,-3.0293304 -2.0448418,-6.7403232 -2.0448348,-11.1329896"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3362"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 691.9872681,831.671513 c -6.5e-6,-8.987141 3.1303548,-15.6012914 9.3910933,-19.8424712 6.3111963,-4.2915792 15.8032595,-6.664595 28.4762181,-7.1190545 l 14.6925168,-0.4544078 0,-3.7109965 c -5.9e-5,-8.5831922 -4.3926628,-12.8748166 -13.1778243,-12.8748859 -6.7656655,6.93e-5 -14.7177929,2.0449021 -23.8564062,6.1345045 l -7.6491969,-15.6013323 c 9.7444973,-5.0993807 20.5492927,-7.6491105 32.4144186,-7.6491969 11.3601352,8.64e-5 20.0696081,2.4740816 26.1284448,7.421993 6.0586908,4.9480694 9.0880727,12.4710344 9.0881547,22.5689176 l 0,56.422294 -16.1314746,0 -4.4683428,-11.5116627 -0.6058769,0 c -3.8877676,4.8975122 -7.9016986,8.3055669 -12.0418051,10.2241741 -4.0897143,1.8681201 -9.4416223,2.8021795 -16.05574,2.802181 -8.1288741,-1.5e-6 -14.5410657,-2.3225276 -19.2365942,-6.9675853 -4.6450657,-4.6450467 -6.9675918,-11.2591972 -6.9675853,-19.8424711 m 23.704937,0.1514692 c -3.03e-5,6.5131962 3.7362074,9.7697817 11.2087241,9.7697664 5.3518666,1.53e-5 9.6182461,-1.5399205 12.7991513,-4.619812 3.2312864,-3.0798516 4.8469568,-7.1695172 4.8470158,-12.2690089 l 0,-6.9675853 -8.9366854,0.3029385 c -6.71518,0.2019977 -11.7136601,1.4137504 -14.9954554,3.6352619 -3.2818655,2.221582 -4.9227807,5.6043917 -4.9227504,10.1484394"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3364"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 779.5365,870.7505783 c -4e-7,-5.0994733 1.5904251,-9.3658527 4.7712813,-12.7991512 3.1808457,-3.4333005 7.8511428,-5.8820508 14.0109052,-7.3462584 -2.3730351,-1.0097876 -4.4431127,-2.6507028 -6.2102391,-4.9227505 -1.7671525,-2.3225148 -2.6507222,-4.7712652 -2.6507118,-7.3462584 -1.04e-5,-3.2313221 0.934049,-5.9072761 2.802181,-8.02787 1.8681057,-2.1710304 4.5693045,-4.2915977 8.1036047,-6.3617083 -4.4431147,-1.9185756 -7.9773936,-4.9984471 -10.6028472,-9.239624 -2.5749853,-4.2410924 -3.8624726,-9.2395725 -3.8624658,-14.9954553 -6.8e-6,-9.2395575 3.0041303,-16.3838498 9.0124201,-21.4328983 6.0082583,-5.0488911 14.5915069,-7.573376 25.7497718,-7.5734623 2.3729742,8.63e-5 5.1751525,0.2272899 8.4065431,0.6816116 3.2817804,0.4040032 5.3771029,0.7069414 6.2859737,0.9088155 l 29.5365029,0 0,11.7388665 -13.253559,3.4080581 c 2.423433,3.7867969 3.6351857,8.0279315 3.6352619,12.7234166 -7.62e-5,9.0882024 -3.1809272,16.182005 -9.5425625,21.281429 -6.3112789,5.0490053 -15.0964863,7.5734902 -26.3556487,7.5734623 l -4.1654043,-0.2272039 -3.408058,-0.3786731 c -2.3730485,1.8176577 -3.5595564,3.8372456 -3.5595272,6.0587698 -2.92e-5,3.3323426 4.2411054,4.9985026 12.7234166,4.9984851 l 14.3895783,0 c 9.2900482,1.75e-5 16.3586059,1.9943606 21.2056944,5.9830352 4.8974232,3.9886977 7.3461736,9.8455026 7.3462584,17.5704325 -8.48e-5,9.8959748 -4.1402401,17.5704089 -12.4204781,23.0233253 -8.2298932,5.4528583 -20.0697274,8.179302 -35.5195381,8.1793393 -11.8146262,-3.73e-5 -20.8522822,-2.0701149 -27.112995,-6.2102391 -6.2102426,-4.0896966 -9.315359,-9.8455221 -9.3153586,-17.267494 m 19.9939404,-1.8176309 c -2.04e-5,3.180839 1.5146705,5.680079 4.5440774,7.4977276 3.0798466,1.8176097 7.3714709,2.7264243 12.8748859,2.7264465 8.2802726,-2.22e-5 14.7681988,-1.1360404 19.463798,-3.4080581 4.6954846,-2.2720552 7.0432556,-5.3771716 7.0433199,-9.3153586 -6.43e-5,-3.1808604 -1.388531,-5.3771623 -4.1654042,-6.5889122 -2.7769936,-1.2117556 -7.0686179,-1.817632 -12.8748859,-1.8176309 l -11.9660704,0 c -4.24117,-1.1e-6 -7.8006937,0.9845481 -10.6785818,2.9536503 -2.8274478,2.0195839 -4.2411593,4.670293 -4.2411389,7.9521354 m 8.4065432,-68.9185067 c -2.89e-5,4.5946194 1.0350099,8.2298777 3.1051195,10.9057856 2.1205354,2.6760001 5.3266312,4.0139771 9.6182971,4.013935 4.3420724,4.21e-5 7.5229234,-1.3379349 9.5425625,-4.013935 2.0195368,-2.6759079 3.0293307,-6.3111662 3.0293849,-10.9057856 -5.42e-5,-10.1988621 -4.1906991,-15.2983216 -12.5719474,-15.2983938 -8.4823109,7.22e-5 -12.7234455,5.0995317 -12.7234166,15.2983938"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3366"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 873.5989024,815.2370998 c -6.9e-6,-14.1875634 3.5342719,-25.1438279 10.6028472,-32.8688263 7.1190299,-7.7753388 16.9392761,-11.6630456 29.4607683,-11.6631319 11.9660114,8.63e-5 21.2813607,3.4081409 27.9460758,10.2241741 6.6645651,6.8161853 9.9968852,16.232514 9.9969702,28.2490143 l 0,11.2087242 -54.604663,0 c 0.2524181,6.5636973 2.1962715,11.6884017 5.8315659,15.3741284 3.6352221,3.6857692 8.7346816,5.5286431 15.2983938,5.5286275 5.099408,1.56e-5 9.9211742,-0.5301262 14.465313,-1.5904271 4.5440068,-1.0602664 9.2900384,-2.7516713 14.2381091,-5.0742197 l 0,17.8733709 c -4.0392561,2.0195924 -8.3561253,3.5090385 -12.9506205,4.4683428 -4.5946298,1.0097939 -10.1989863,1.5146909 -16.8130863,1.5146924 -13.6322689,-1.5e-6 -24.2855952,-3.761484 -31.9600108,-11.2844588 -7.6744526,-7.5229552 -11.5116696,-18.1762815 -11.5116627,-31.9600108 m 23.9321408,-10.224174 32.4144186,0 c -0.1010427,-5.705284 -1.5904888,-10.0978877 -4.4683428,-13.1778244 -2.8779716,-3.1302962 -6.7656783,-4.6954768 -11.6631319,-4.6955466 -4.8975479,6.98e-5 -8.7347649,1.5652504 -11.5116626,4.6955466 -2.7769691,3.0799367 -4.3673946,7.4725404 -4.7712813,13.1778244"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         id="g3403"
+         transform="translate(80,0)"
+         style="fill:#ff2a2a">
+        <path
+           id="path3368"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 499.9999995,995.6369713 c -9.1e-6,-11.511596 2.0953134,-21.5842907 6.2859736,-30.2181145 4.1906297,-8.6841426 10.1989037,-15.3235379 18.0248403,-19.9182058 7.8763595,-4.6449469 17.0907294,-6.967473 27.6431373,-6.9675853 10.7542447,1.123e-4 21.5590401,2.6003318 32.4144185,7.8006662 l -7.5734622,19.0851249 c -4.1402411,-1.9690128 -8.3056412,-3.6856625 -12.4962128,-5.1499543 -4.1907183,-1.4641107 -8.3056286,-2.1962113 -12.3447435,-2.1963041 -8.8357581,9.28e-5 -15.6771122,3.3324128 -20.5240828,9.9969702 -4.8470514,6.6142332 -7.2705569,15.853848 -7.2705238,27.7188719 -3.31e-5,24.6895175 9.2648264,37.0342485 27.7946066,37.0342305 7.7753525,1.8e-5 17.1916812,-1.943835 28.2490143,-5.831566 l 0,19.691002 c -9.0882349,3.786732 -19.2366642,5.680095 -30.4453184,5.680097 -16.1062724,-2e-6 -28.4257587,-4.872258 -36.9584959,-14.616782 -8.5327808,-9.794989 -12.7991603,-23.831125 -12.7991512,-42.1084507"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3370"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 596.2587067,1025.552147 c -6.5e-6,-8.987141 3.1303548,-15.601291 9.3910933,-19.842471 6.3111963,-4.291579 15.8032595,-6.6645949 28.4762181,-7.1190544 l 14.6925168,-0.4544078 0,-3.7109965 c -5.9e-5,-8.5831922 -4.3926628,-12.8748166 -13.1778243,-12.8748858 -6.7656655,6.92e-5 -14.7177929,2.044902 -23.8564062,6.1345044 l -7.6491969,-15.6013323 c 9.7444973,-5.0993807 20.5492927,-7.6491105 32.4144186,-7.6491969 11.3601352,8.64e-5 20.0696081,2.4740816 26.1284448,7.421993 6.0586908,4.9480694 9.0880727,12.4710344 9.0881547,22.5689176 l 0,56.4222937 -16.1314746,0 -4.4683428,-11.511662 -0.6058769,0 c -3.8877676,4.897512 -7.9016986,8.305566 -12.0418051,10.224174 -4.0897143,1.86812 -9.4416223,2.802179 -16.05574,2.802181 -8.1288741,-2e-6 -14.5410657,-2.322528 -19.2365942,-6.967586 -4.6450657,-4.645046 -6.9675918,-11.259197 -6.9675853,-19.842471 m 23.704937,0.15147 c -3.03e-5,6.513196 3.7362074,9.769781 11.2087241,9.769766 5.3518666,1.5e-5 9.6182461,-1.539921 12.7991513,-4.619812 3.2312864,-3.079852 4.8469568,-7.169517 4.8470158,-12.269009 l 0,-6.967585 -8.9366854,0.302938 c -6.71518,0.201998 -11.7136601,1.413751 -14.9954554,3.635262 -3.2818655,2.221582 -4.9227807,5.604392 -4.9227504,10.14844"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3372"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 695.4710553,1050.847511 0,-117.8430727 23.0990599,0 0,117.8430727 -23.0990599,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3374"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 737.5795085,1008.966265 c -7e-6,-14.3895222 3.5847616,-25.3710315 10.7543164,-32.944561 7.1695194,-7.6238696 17.444173,-11.4358418 30.8239915,-11.4359281 9.7949529,8.63e-5 18.5801603,1.9186948 26.3556487,5.7558314 l -6.816116,17.873371 c -3.6353263,-1.4641387 -7.0181361,-2.6506466 -10.1484395,-3.5595273 -3.1304192,-0.9592381 -6.2607805,-1.4388902 -9.3910932,-1.4389578 -12.0165967,6.76e-5 -18.0248707,8.5328265 -18.0248402,25.5983028 -3.05e-5,16.560663 6.0082435,24.840973 18.0248402,24.840956 4.4430449,1.7e-5 8.5579553,-0.580614 12.3447435,-1.741896 3.7866665,-1.211734 7.5733938,-3.079853 11.3601934,-5.604362 l 0,19.766736 c -3.7363099,2.373021 -7.5230372,4.013936 -11.3601934,4.922751 -3.7867882,0.908814 -8.5833095,1.363221 -14.3895783,1.363223 -26.3556689,-2e-6 -39.5334801,-14.4653 -39.5334731,-43.395939"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3376"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 821.9478914,1021.386743 0,-55.21054 23.09906,0 0,49.454709 c -3.48e-5,6.109288 1.0854937,10.703851 3.2565888,13.783701 2.171019,3.029403 5.6295633,4.544094 10.3756433,4.544077 6.4626329,1.7e-5 11.13293,-2.145795 14.0109052,-6.437443 2.8778504,-4.34209 4.3168068,-11.511627 4.3168735,-21.508632 l 0,-39.836412 23.0990599,0 0,84.671308 -17.7219017,0 -3.1051195,-10.830051 -1.211754,0 c -2.474063,3.938208 -5.983097,6.992834 -10.5271126,9.16389 -4.54413,2.120569 -9.7193241,3.180852 -15.5255976,3.180854 -9.9465123,-2e-6 -17.4442324,-2.650711 -22.493183,-7.952136 -5.048989,-5.351901 -7.5734739,-13.026335 -7.5734623,-23.023325"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3378"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 924.4925702,1050.847511 0,-117.8430727 23.0990599,0 0,117.8430727 -23.0990599,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3380"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 966.1466004,1025.552147 c -6.5e-6,-8.987141 3.1303548,-15.601291 9.3910932,-19.842471 6.3111964,-4.291579 15.8032596,-6.6645949 28.4762184,-7.1190544 l 14.692517,-0.4544078 0,-3.7109965 c -5.9e-5,-8.5831922 -4.392663,-12.8748166 -13.177825,-12.8748858 -6.7656652,6.92e-5 -14.7177926,2.044902 -23.8564059,6.1345044 l -7.6491969,-15.6013323 c 9.7444973,-5.0993807 20.5492927,-7.6491105 32.4144188,-7.6491969 11.360135,8.64e-5 20.069608,2.4740816 26.128445,7.421993 6.05869,4.9480694 9.088072,12.4710344 9.088154,22.5689176 l 0,56.4222937 -16.131474,0 -4.468343,-11.511662 -0.605877,0 c -3.887768,4.897512 -7.901699,8.305566 -12.041805,10.224174 -4.089714,1.86812 -9.4416224,2.802179 -16.0557401,2.802181 -8.1288741,-2e-6 -14.5410658,-2.322528 -19.2365942,-6.967586 -4.6450657,-4.645046 -6.9675918,-11.259197 -6.9675853,-19.842471 m 23.7049369,0.15147 c -3.02e-5,6.513196 3.7362075,9.769781 11.2087247,9.769766 5.351866,1.5e-5 9.618246,-1.539921 12.799151,-4.619812 3.231286,-3.079852 4.846957,-7.169517 4.847016,-12.269009 l 0,-6.967585 -8.936686,0.302938 c -6.71518,0.201998 -11.7136599,1.413751 -14.9954552,3.635262 -3.2818655,2.221582 -4.9227807,5.604392 -4.9227505,10.14844"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3382"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 1056.800952,983.5194316 0,-9.7697663 12.723416,-7.7249315 6.664647,-17.873371 14.768252,0 0,18.0248402 23.704937,0 0,17.3432286 -23.704937,0 0,40.8209614 c -3.8e-5,3.281857 0.908777,5.705363 2.726446,7.270524 1.868079,1.5652 4.316829,2.34779 7.346259,2.347773 4.039128,1.7e-5 8.886139,-0.883552 14.541047,-2.650711 l 0,17.191759 c -5.755888,2.574977 -12.824446,3.862464 -21.205694,3.862466 -9.239656,-2e-6 -15.980031,-2.322528 -20.221145,-6.967586 -4.190665,-4.695536 -6.285988,-11.713604 -6.285973,-21.054225 l 0,-40.8209614 -11.057255,0"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3384"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 1127.461329,1008.360388 c -7e-6,-13.8341349 3.610007,-24.5884405 10.830051,-32.2629494 7.220009,-7.6743593 17.368439,-11.5115764 30.445319,-11.5116627 8.128793,8.63e-5 15.29833,1.7672257 21.508632,5.3014236 6.210164,3.5343599 10.98144,8.6085745 14.313844,15.2226592 3.332236,6.6142162 4.998396,14.3643848 4.998485,23.2505293 -8.9e-5,13.78373 -3.635347,24.56328 -10.905785,32.338684 -7.270595,7.775423 -17.39378,11.66313 -30.369584,11.663132 -8.128889,-2e-6 -15.298426,-1.767141 -21.508633,-5.301424 -6.210259,-3.584765 -10.981536,-8.709469 -14.313844,-15.374128 -3.332332,-6.664621 -4.998492,-14.440035 -4.998485,-23.326264 m 23.553468,0 c -3.1e-5,8.381332 1.363191,14.717789 4.08967,19.00939 2.776898,4.291648 7.270481,6.43746 13.480762,6.437443 6.159695,1.7e-5 10.577544,-2.12055 13.253559,-6.361708 2.726383,-4.291601 4.089605,-10.653303 4.08967,-19.085125 -6.5e-5,-8.3812475 -1.363287,-14.6672149 -4.08967,-18.8579212 -2.726505,-4.1905835 -7.194843,-6.285906 -13.405028,-6.2859736 -6.159791,6.76e-5 -10.602884,2.0953901 -13.329293,6.2859736 -2.726479,4.1402166 -4.089701,10.426184 -4.08967,18.8579212"
+           inkscape:connector-curvature="0" />
+        <path
+           id="path3386"
+           style="font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Open Sans;-inkscape-font-specification:Open Sans;fill:#ff2a2a"
+           d="m 1228.642778,1050.847511 0,-84.671308 17.494698,0 3.408058,14.2381091 1.136019,0 c 2.62543,-4.7459612 6.159709,-8.5579334 10.602847,-11.435928 4.493538,-2.9283206 9.365794,-4.3925219 14.616782,-4.3926082 3.130302,8.63e-5 5.730522,0.22729 7.800666,0.6816117 l -1.741896,21.6601021 c -1.868184,-0.5048331 -4.140221,-0.7572816 -6.816116,-0.7573463 -7.371554,6.47e-5 -13.12738,1.8934284 -17.267494,5.6800967 -4.089707,3.7867864 -6.13454,9.0882049 -6.134504,15.9042709 l 0,43.093 -23.09906,0"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+  </g>
+</svg>
Add a comment to this file

logo/euc-logo_red-small.png

Added
New image
Added
New image
+# REFERENSI
+
+[Simulasi Rekening TDL 201X] (http://www.pln.co.id/simulasi/tagihan/index.php)
+[Simulasi Rekening TDL 2010] (http://pln-jatim.co.id/red/?m=sim&p=simrek2010)
+[TDL 2010] (https://wikisopo.files.wordpress.com/2012/05/tdl-2010.xlsx)
+[Rumus TDL 2010] (http://wikipediapln.files.wordpress.com/2012/03/rumus.xlsx)
+[Porting to Python 3] (http://python3porting.com)
+
+# Yang Harus Dilakukan
+
+Pindah sumber kode Python ke versi 3
+Berdasar dan evaluasi TDL 2012
+Pembagian golongan: R1/R2/R3, S1/S2/S3
+Tambah PPJ per wilayah yang mempegaruhi kWh
+Ada yang berdasarkan pulsa prabayar
+Basis data TDL sederhana
+Semua golongan: Rumah Tangga, Sosial, Bisnis, Industri, Kantor, Penerangan, Traksi, Curah, Layanan Khusus
+
+# Yang Akan Dilakukan
+
+Masukan biaya suai
+Data masukan dapat disimpan ke berkas
+Perapihan dalam bentuk GUI
+
+# Rumus
+
+Base Cost	| Biaya Dasar	= kWh gol * PkWh
+Subsc. Cost | Biaya Abonemen= PkVA gol * kVA
+Gross Cost	| Biaya Kotor	= Biaya Dasar + Biaya Abonemen
+Net Cost	| Biaya Bersih	= Pajak 10% * Biaya Kotor
+PSLT		| PPJU			= Pajak Daerah * Biaya Bersih
+Other		| Lainnya		= Faktor X
+Total Cost	| Biaya Total	= Biaya Bersih + PPJU + Lainnya
+
+# Kasus
+
+R3, 6600 VA, 720 kWh = Rp 1jt+
+R1, 1300 VA, 350 kWh = Rp 276rb+
+Pulsa Rp 500rb bisa 400-500 kWh, otomatis disesuaikan
+
+# Yang Sudah Diketahui
+
+Manual dan token meteran listrik
+Perhitungan nyata sangat berbeda dengan soal Fisika
+PLN tidak mempublikasikan tabel TDL 2012 secara jelas langsung
+Simulasi PLN hanya menghitung harga dasar, tidak detail, masih TDL 2010
+Pasca bayar bisa terdapat blok biaya yang bisa menjadikan lebih murah
+Pra bayar bebas biaya abonemen yang ditagih per bulan
+Pajak TDL rata-rata sekarang semuanya 10%
+PPJ dihitung terpisah dan berbeda setiap wilayah
+Prabayar dan pasca bayar beda sedikit
+Kenaikan TDL bersubsidi 3 bulan 1 kali, mulai November Rp 796/kWh
+
+# Yang Bisa Dijelaskan
+
+Bukan berarti ide asli tapi tidak meniru
+Buat versi sendiri, luring (offline), sumber terbuka, dan dapat dimodifikasi
+Bahasa Inggris untuk mempersingkat istilah dan waktu pengembangan
+Klarifikasi purwarupa, simulasi perkiraan maksimum pada 2012
+Bentuk aplikasi hanya praktis sederhana dan target masih ke personal
+Tabel lain hanya perhitungan bukan aplikasi dan tidak dapat ditransfer
+Masukan dan hitungan berdasarkan daya (watt) per alat elektronik dan waktu (jam) yang diketahui langsung, tanpa harus mengetahui hasil kWh yang perlu dihitung atau dilihat di meteran listrik
+Memperkirakan tanpa harus terjadi dahulu sehingga dapat dihitung sebelum membeli elektronik dengan daya tertentu
+Penerapan alternatif yang murah di masa depan pada alat elektronik
+
+# Hal Serupa
+
+Google PowerMeter : Khusus USA, tidak dilanjutkan
+http://google.com/powermeter
+Belkin WeMo : Mahal, Hanya iOS, belum sumber terbuka
+http://belkin.com/wemo
+Nest The Learning Thermostat : Mahal, tidak cocok di Indonesia
+http://nest.com
+
+# Yang Harus Ditanyakan
+
+Lama presentasi : 10 menit
+Bentuk dan cara presentasi : Biasa tanpa demonstrasi kecuali diminta
+
+# Yang Dipresentasikan
+
+1. Konsep awal
+2. Perbandingan dan kelebihan
+3. Tampilan demonstrasi
+4. Cara Kerja
+
+# Jadwal
+
+Sesi 1 | 18 September 2012 | 13.00-14.30 | Ruang 3 | Moderator : Dr. Sudaryanto
Added
New image
Add a comment to this file

screen/euc-cli_0.8_light.png

Added
New image
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.