Compare commits
18 Commits
249c97ce8e
...
main
Author | SHA1 | Date | |
---|---|---|---|
dfb87fad9b | |||
72325374f3 | |||
4c9d9ad7eb | |||
0442f586e4 | |||
2cf2dabe71 | |||
de8db51676 | |||
a235bc46ba | |||
0fa5a92086 | |||
db460df4a9 | |||
bd9444f38c | |||
3f47a4640d | |||
1527935c8a | |||
9e7753645d | |||
e45ca1b2d3 | |||
ac230bf35a | |||
1402c07e70 | |||
87d5b2fddd | |||
b6f433d13c |
@@ -26,4 +26,4 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
|
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
|
||||||
docker build -t git.hamik.net/paradizelost/enphase:dev .
|
docker build -t git.hamik.net/paradizelost/enphase:dev .
|
||||||
docker push git.hamik.net/paradizelost/enphse:dev
|
docker push git.hamik.net/paradizelost/enphase:dev
|
@@ -7,7 +7,6 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
Plan:
|
Plan:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -20,14 +19,14 @@ jobs:
|
|||||||
- name: Deploy
|
- name: Deploy
|
||||||
run: |
|
run: |
|
||||||
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
|
echo "${{ secrets.GITEASECRET_TOKEN }}" | docker login git.hamik.net -u paradizelost --password-stdin
|
||||||
docker build -t git.hamik.net/paradizelost/librarynotices:latest .
|
docker build -t git.hamik.net/paradizelost/enphase:latest .
|
||||||
docker push git.hamik.net/paradizelost/librarynotices
|
docker push git.hamik.net/paradizelost/enphase:latest
|
||||||
Deploy:
|
Deploy:
|
||||||
needs: [Plan] #
|
needs: [Plan]
|
||||||
runs-on: librarynoticehost
|
runs-on: enphasecollector
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: /docker/librarynotices
|
working-directory: /docker/enphase
|
||||||
steps:
|
steps:
|
||||||
- name: Destroy Container
|
- name: Destroy Container
|
||||||
id: down
|
id: down
|
||||||
|
11
Dockerfile
11
Dockerfile
@@ -1,11 +1,8 @@
|
|||||||
FROM debian:bullseye-slim
|
FROM debian:trixie-slim
|
||||||
#
|
#
|
||||||
RUN apt update && apt install python3 python3-pip -y
|
|
||||||
COPY enphase.py /usr/local/bin/
|
|
||||||
COPY requirements.txt /
|
COPY requirements.txt /
|
||||||
COPY init.sh /
|
COPY init.sh /
|
||||||
RUN chmod +x /init.sh
|
RUN apt update && apt install python3 python3-pip -y && pip3 install -r /requirements.txt --break-system-packages && apt clean
|
||||||
RUN chmod +x /usr/local/bin/enphase.py
|
COPY enphase.py /usr/local/bin/
|
||||||
RUN pip3 install -r /requirements.txt
|
RUN chmod +x /init.sh && chmod +x /usr/local/bin/enphase.py
|
||||||
RUN apt clean
|
|
||||||
CMD ["/init.sh"]
|
CMD ["/init.sh"]
|
@@ -1,9 +1,11 @@
|
|||||||
services:
|
services:
|
||||||
libnotices:
|
enphase:
|
||||||
image: git.hamik.net/paradizelost/enphase:latest
|
image: git.hamik.net/paradizelost/enphase:latest
|
||||||
container_name: libnotices
|
container_name: enphase
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
environment:
|
||||||
- "80:80"
|
- ENPHASE_TOKEN=${ENPHASE_TOKEN}
|
||||||
volumes:
|
- ENPHASE_URL=${ENPHASE_URL}
|
||||||
- "./credentials:/var/www/.aws/credentials"
|
- INFLUX_USER=${INFLUX_USER}
|
||||||
|
- INFLUX_PASSWORD=${INFLUX_PASSWORD}
|
||||||
|
- INFLUX_URI=${INFLUX_URI}
|
37
enphase.py
37
enphase.py
@@ -162,7 +162,6 @@ enphaseurl = os.environ["ENPHASE_URL"]
|
|||||||
infdbuser = os.environ["INFLUX_USER"]
|
infdbuser = os.environ["INFLUX_USER"]
|
||||||
infdbpass = os.environ["INFLUX_PASSWORD"]
|
infdbpass = os.environ["INFLUX_PASSWORD"]
|
||||||
influxuri = os.environ["INFLUX_URI"]
|
influxuri = os.environ["INFLUX_URI"]
|
||||||
infdbuser = os.environ["INFLUX_USER"]
|
|
||||||
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
@@ -172,18 +171,42 @@ while True:
|
|||||||
session.headers.update({"Authorization":"Bearer "+enphasetoken})
|
session.headers.update({"Authorization":"Bearer "+enphasetoken})
|
||||||
details = enphaseurl + "/production.json?details=1"
|
details = enphaseurl + "/production.json?details=1"
|
||||||
inverteruri= enphaseurl + "/api/v1/production/inverters"
|
inverteruri= enphaseurl + "/api/v1/production/inverters"
|
||||||
mainresponse = session.get(details,verify=False).json()
|
mainresponse = session.get(details,verify=False)
|
||||||
inverterresponse = session.get(inverteruri,verify=False).json()
|
if mainresponse.status_code == 401:
|
||||||
#print(json.dumps(mainresponse,indent=1))
|
print("Authentication Error, please renew enphase token at https://entrez.enphaseenergy.com/entrez_tokens")
|
||||||
for inverterdata in inverterresponse:
|
quit()
|
||||||
|
print("Status code:", mainresponse.status_code)
|
||||||
|
print("Headers:", mainresponse.headers)
|
||||||
|
print("Raw text:", mainresponse.text[:500])
|
||||||
|
try:
|
||||||
|
mainresponseresult = mainresponse.json()
|
||||||
|
print("Parsed JSON:\n", json.dumps(mainresponseresult, indent=2))
|
||||||
|
except Exception as e:
|
||||||
|
print("Failed to parse JSON:", e)
|
||||||
|
quit()
|
||||||
|
|
||||||
|
inverterresponse = session.get(inverteruri,verify=False)
|
||||||
|
if inverterresponse.status_code == 401:
|
||||||
|
print("Authentication Error, please renew enphase token at https://entrez.enphaseenergy.com/entrez_tokens")
|
||||||
|
quit()
|
||||||
|
print("Status code:", inverterresponse.status_code)
|
||||||
|
print("Headers:", inverterresponse.headers)
|
||||||
|
print("Raw text:", inverterresponse.text[:500])
|
||||||
|
try:
|
||||||
|
inverterresponseresult = inverterresponse.json()
|
||||||
|
print("Parsed JSON:\n", json.dumps(inverterresponseresult, indent=2))
|
||||||
|
except Exception as e:
|
||||||
|
print("Failed to parse JSON:", e)
|
||||||
|
quit()
|
||||||
|
for inverterdata in inverterresponseresult:
|
||||||
myinverter = inverter(inverterdata['serialNumber'],inverterdata['lastReportDate'],inverterdata['devType'],inverterdata['lastReportWatts'],inverterdata['maxReportWatts'])
|
myinverter = inverter(inverterdata['serialNumber'],inverterdata['lastReportDate'],inverterdata['devType'],inverterdata['lastReportWatts'],inverterdata['maxReportWatts'])
|
||||||
inverterlist.append(myinverter)
|
inverterlist.append(myinverter)
|
||||||
#print(json.dumps(response.json(),indent=1))
|
#print(json.dumps(response.json(),indent=1))
|
||||||
#for myinverter in inverterlist:
|
#for myinverter in inverterlist:
|
||||||
#pass
|
#pass
|
||||||
# myinverter.print()
|
# myinverter.print()
|
||||||
print(json.dumps(mainresponse,indent=1))
|
#print(json.dumps(mainresponse,indent=1))
|
||||||
maindata = ElectricalData(mainresponse)
|
maindata = ElectricalData(mainresponseresult)
|
||||||
influxsession = requests.Session()
|
influxsession = requests.Session()
|
||||||
influxsession.verify = False
|
influxsession.verify = False
|
||||||
influxsession.auth = (infdbuser, infdbpass)
|
influxsession.auth = (infdbuser, infdbpass)
|
||||||
|
Reference in New Issue
Block a user