1. M Haidar Hanif
  2. kargupy

Commits

M Haidar Hanif  committed 39f202f Merge

Merge branch 'release/0.8' for rerelease

  • Participants
  • Parent commits c77dc04, 1ed3927
  • Branches master

Comments (0)

Files changed (35)

File .gitignore

View file
  • Ignore whitespace
+*.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

File README.mkd

View file
  • Ignore whitespace
+# 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)

File data/dataEnergy.euc

View file
  • Ignore whitespace
+"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

File data/dataPerson.euc

View file
  • Ignore whitespace
+"Haidar"
+"Hanif"
+"Hero"

File data/dataPrice.euc

  • Ignore whitespace
Empty file added.

File data/priceTable.txt

View file
  • Ignore whitespace
+==========================================================
+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
+==========================================================

File euc

View file
  • Ignore whitespace
+#!/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()

File euc-cli/euc-cli_0.1.py

View file
  • Ignore whitespace
+#============================
+# 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

File euc-cli/euc-cli_0.2.py

View file
  • Ignore whitespace
+#============================
+# 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

File euc-cli/euc-cli_0.3.py

View file
  • Ignore whitespace
+#============================
+# 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

File euc-cli/euc-cli_0.4.py

View file
  • Ignore whitespace
+#============================
+# 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()

File euc-cli/euc-cli_0.5.py

View file
  • Ignore whitespace
+#============================
+# 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()

File euc-cli/euc-cli_0.6.py

View file
  • Ignore whitespace
+#============================
+# 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()

File euc-cli/euc-cli_0.7.py

View file
  • Ignore whitespace
+#============================
+# 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()

File euc-cli/euc-cli_0.8.py

View file
  • Ignore whitespace
+#!/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()

File euc-cli/prototype/command.py

View file
  • Ignore whitespace
+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)

File euc-cli/prototype/data_count.py

View file
  • Ignore whitespace
+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

File euc-cli/prototype/data_nea.py

View file
  • Ignore whitespace
+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

File euc-cli/prototype/list_appendpos.py

View file
  • Ignore whitespace
+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

File euc-cli/prototype/list_category.py

View file
  • Ignore whitespace
+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

File euc-cli/prototype/list_multiply.py

View file
  • Ignore whitespace
+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

File euc-cli/prototype/list_orderprinter.py

View file
  • Ignore whitespace
+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

File euc-gui/euc-gui_0.1.py

  • Ignore whitespace
Empty file added.

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

View file
  • Ignore whitespace
+#!/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()

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

View file
  • Ignore whitespace
+import numpy
+x = numpy.sin(1)
+y = numpy.cos(0)
+print x
+print y

File log.mkd

View file
  • Ignore whitespace
+## 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

File logo/euc-logo-text_red-gray.png

  • Ignore whitespace
Added
New image

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

  • Ignore whitespace
Added
New image

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

  • Ignore whitespace
Added
New image

File logo/euc-logo.svg

View file
  • Ignore whitespace
Added
New image

File logo/euc-logo_red-small.png

  • Ignore whitespace
Added
New image

File logo/euc-logo_red.png

  • Ignore whitespace
Added
New image

File notes.mkd

View file
  • Ignore whitespace
+# 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

File screen/euc-cli_0.8.png

  • Ignore whitespace
Added
New image

File screen/euc-cli_0.8_light.png

  • Ignore whitespace
Added
New image