import requests
import json
import csv

### dxsIds
#       ID_DCEingangGesamt = 33556736;         // in W
#       ID_Ausgangsleistung = 67109120;        // in W
#       ID_Eigenverbrauch = 83888128;          // in W
#       //Status
#       ID_Status = 16780032;                  // 0:Off
#       //Statistik - Tag
#       ID_Ertrag_d = 251658754;               // in Wh
#       ID_Hausverbrauch_d = 251659010;        // in Wh
#       ID_Eigenverbrauch_d = 251659266;       // in Wh
#       ID_Eigenverbrauchsquote_d = 251659278; // in %
#       ID_Autarkiegrad_d = 251659279;         // in %
#       //Statistik - Gesamt
#       ID_Ertrag_G = 251658753;               // in kWh
#       ID_Hausverbrauch_G = 251659009;        // in kWh
#       ID_Eigenverbrauch_G = 251659265;       // in kWh
#       ID_Eigenverbrauchsquote_G = 251659280; // in %
#       ID_Autarkiegrad_G = 251659281;         // in %
#       ID_Betriebszeit = 251658496;           // in h
#       //Momentanwerte - PV Genertor
#       ID_DC1Spannung = 33555202;             // in V
#       ID_DC1Strom = 33555201;                // in A
#       ID_DC1Leistung = 33555203;             // in W
#       ID_DC2Spannung = 33555458;             // in V
#       ID_DC2Strom = 33555457;                // in A
#       ID_DC2Leistung = 33555459;             // in W
#       ID_DC3Spannung = 33555714;             // in V
#       ID_DC3Strom = 33555713;                // in A
#       ID_DC3Leistung = 33555715;             // in W
#       //Momentanwerte Haus
#       ID_HausverbrauchSolar = 83886336;      // in W
#       ID_HausverbrauchBatterie = 83886592;   // in W
#       ID_HausverbrauchNetz = 83886848;       // in W
#       ID_HausverbrauchPhase1 = 83887106;     // in W
#       ID_HausverbrauchPhase2 = 83887362;     // in W
#       ID_HausverbrauchPhase3 = 83887618;     // in W
#       //Netz Netzparameter
#       ID_NetzAusgangLeistung = 67109120;     // in W
#       ID_NetzFrequenz = 67110400;            // in Hz
#       ID_NetzCosPhi = 67110656;
#       //Netz Phase 1
#       ID_P1Spannung = 67109378;              // in V
#       ID_P1Strom = 67109377;                 // in A
#       ID_P1Leistung = 67109379;              // in W
#       //Netz Phase 2
#       ID_P2Spannung = 67109634;              // in V
#       ID_P2Strom = 67109633;                 // in A
#       ID_P2Leistung = 67109635;              // in W
#       //Netz Phase 3
#       ID_P3Spannung = 67109890;              // in V
#       ID_P3Strom = 67109889;                 // in A
#       ID_P3Leistung = 67109891;              // in W


def get_data():
    #ship_api_url = "http://192.168.178.26/api/dxs.json?dxsEntries=33556736&dxsEntries=67109120&dxsEntries=16780032"
    ship_api_url = "http://192.168.178.26/api/dxs.json?dxsEntries=16780032&dxsEntries=67109120&dxsEntries=33556736&dxsEntries=33555202&dxsEntries=33555458&dxsEntries=33555714&dxsEntries=33555201&dxsEntries=33555457&dxsEntries=33555713&dxsEntries=33555203&dxsEntries=33555459&dxsEntries=33555715&dxsEntries=251658754&dxsEntries=251658753&dxsEntries=251658496"
    request_data = requests.get(ship_api_url)
    return request_data.json()

data = get_data()

#data.replace("16780032", "Status")
#data.replace("67109120", "ID_Ausgangsleistung")
#data.replace("33556736", "DCEingangGesamt")
#data.replace("33555202", "DC1Spannung")      
#data.replace("33555458", "DC2Spannung")
#data.replace("33555714", "DC3Spannung")
#data.replace("33555201", "DC1Strom")
#data.replace("33555457", "DC2Strom")
#data.replace("33555713", "DC3Strom")
#data.replace("33555203", "DC1Leistung")
#data.replace("33555459", "DC2Leistung")
#data.replace("33555715", "DC3Leistung")
#data.replace("251658754", "Tagesertrag")
#data.replace("251658753", "Gesamtertrag")
#data.replace("251658496", "Gesamtbetriebszeit")

jsondump = json.dumps(data)

json_parsed = json.loads(jsondump)

json_data = json_parsed['dxsEntries']


# open a file for writing

log_data = open('log.csv', 'w')

# create the csv writer object

csvwriter = csv.writer(log_data)

count = 0

for dxsId in json_data:

      if count == 0:

             header = dxsId.keys()

             csvwriter.writerow(header)

             count += 1

      csvwriter.writerow(dxsId.values())

log_data.close()
print("data")
print(data)
print("")
print("json_parsed")
print(json_parsed)
