1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
| #!/usr/bin/env python3
from APSystemsECUR import APSystemsECUR
import time
import asyncio
import urllib.request
import urllib.parse
import urllib
from pprint import pprint
ecu_ip = "localwifiIP"
sleep = 60
url = 'http://domoticzPI-IP:8080/json.htm?'
puntcomma = '\u003B'
loop = asyncio.get_event_loop()
ecu = APSystemsECUR(ecu_ip)
while True:
try:
data = loop.run_until_complete(ecu.async_query_ecu())
#pprint(data)
today_energy_kwh = str(data.get('today_energy')*1000)
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 541, 'svalue': (today_energy_kwh)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 566, 'svalue': data.get('current_power')}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
#print(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 536, 'svalue': data.get('timestamp')}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
#inverter #Inverternumber1# values
inverters = data.get('inverters')
Inverter#Inverternumber1# = inverters.get('#Inverternumber1#')
Inverter#Inverternumber1#power = Inverter#Inverternumber1#.get('power')
#print(f"[OK] Inverter#Inverternumber1#online: {Inverter#Inverternumber1#.get('online')} Inverter#Inverternumber1#temperature: {Inverter#Inverternumber1#.get('temperature')} Inverter#Inverternumber1#power: {Inverter#Inverternumber1#.get('power')}")
from array import *
array1 = array('i', Inverter#Inverternumber1#power)
Inverter#Inverternumber1#power1 = (array1[0])
Inverter#Inverternumber1#power2 = (array1[1])
#to domoticz
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 551, 'svalue': (Inverter#Inverternumber1#power1)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 552, 'svalue': (Inverter#Inverternumber1#power2)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 543, 'svalue': Inverter#Inverternumber1#.get('temperature')}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
if Inverter#Inverternumber1#.get('online')==True:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 544, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
else:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 544, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
#inverter #Inverternumber2# values
Inverter#Inverternumber2# = inverters.get('#Inverternumber2#')
Inverter#Inverternumber2#power = Inverter#Inverternumber2#.get('power')
#print(f"[OK] Inverter#Inverternumber2#online: {Inverter#Inverternumber2#.get('online')} Inverter#Inverternumber2#temperature: {Inverter#Inverternumber2#.get('temperature')} Inverter#Inverternumber2#power: {Inverter#Inverternumber2#.get('power')}")
from array import *
array1 = array('i', Inverter#Inverternumber2#power)
Inverter#Inverternumber2#power1 = (array1[0])
Inverter#Inverternumber2#power2 = (array1[1])
Inverter#Inverternumber2#power3 = (array1[2])
Inverter#Inverternumber2#power4 = (array1[3])
#to domoticz
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 557, 'svalue': (Inverter#Inverternumber2#power1)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 558, 'svalue': (Inverter#Inverternumber2#power2)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 559, 'svalue': (Inverter#Inverternumber2#power3)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 560, 'svalue': (Inverter#Inverternumber2#power4)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 545, 'svalue': Inverter#Inverternumber2#.get('temperature')}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
if Inverter#Inverternumber2#.get('online')==True:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 546, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
else:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 546, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
#inverter #Inverternumber3# values
Inverter#Inverternumber3# = inverters.get('#Inverternumber3#')
Inverter#Inverternumber3#power = Inverter#Inverternumber3#.get('power')
#print(f"[OK] Inverter#Inverternumber3#online: {Inverter#Inverternumber3#.get('online')} Inverter#Inverternumber3#temperature: {Inverter#Inverternumber3#.get('temperature')} Inverter#Inverternumber3#power: {Inverter#Inverternumber3#.get('power')}")
from array import *
array1 = array('i', Inverter#Inverternumber3#power)
Inverter#Inverternumber3#power1 = (array1[0])
Inverter#Inverternumber3#power2 = (array1[1])
Inverter#Inverternumber3#power3 = (array1[2])
Inverter#Inverternumber3#power4 = (array1[3])
#to domoticz
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 564, 'svalue': (Inverter#Inverternumber3#power1)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 563, 'svalue': (Inverter#Inverternumber3#power2)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 562, 'svalue': (Inverter#Inverternumber3#power3)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 561, 'svalue': (Inverter#Inverternumber3#power4)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 549, 'svalue': Inverter#Inverternumber3#.get('temperature')}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
if Inverter#Inverternumber3#.get('online')==True:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 550, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
else:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 550, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
#inverter #Inverternumber4# values
Inverter#Inverternumber4# = inverters.get('#Inverternumber4#')
Inverter#Inverternumber4#power = Inverter#Inverternumber4#.get('power')
#print(f"[OK] Inverter#Inverternumber4#online: {Inverter#Inverternumber4#.get('online')} Inverter#Inverternumber4#temperature: {Inverter#Inverternumber4#.get('temperature')} Inverter#Inverternumber4#power: {Inverter#Inverternumber4#.get('power')}")
from array import *
array1 = array('i', Inverter#Inverternumber4#power)
Inverter#Inverternumber4#power1 = (array1[0])
Inverter#Inverternumber4#power2 = (array1[1])
Inverter#Inverternumber4#power3 = (array1[2])
Inverter#Inverternumber4#power4 = (array1[3])
#to domoticz
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 553, 'svalue': (Inverter#Inverternumber4#power1)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 554, 'svalue': (Inverter#Inverternumber4#power2)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 555, 'svalue': (Inverter#Inverternumber4#power3)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 556, 'svalue': (Inverter#Inverternumber4#power4)}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars) + (puntcomma) + '0')
getVars = {'type' : 'command', 'param' : 'udevice', 'nvalue' : 0, 'idx': 548, 'svalue': Inverter#Inverternumber4#.get('temperature')}
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
if Inverter#Inverternumber4#.get('online')==True:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 547, 'switchcmd': 'On', 'level': 0, 'passcode': '' }
else:
getVars = {'type' : 'command', 'param' : 'switchlight', 'idx': 547, 'switchcmd': 'Off', 'level': 0, 'passcode': '' }
webUrl = urllib.request.urlopen(url + urllib.parse.urlencode(getVars))
except Exception as err:
print(f"[ERROR] {err}")
#print(f"Sleeping for {sleep} sec")
time.sleep(sleep) |