WEBVTT
NOTE
Transcription provided by Podhome.fm
Created: 7/6/2024
4:55:13 PM
Duration: 2956.844
Channels: 1
1
00:00:13.344 -->
00:00:24.700 Hello, and welcome to podcast dot in it, the podcast about Python and the people who make it great. When you're ready to launch your next app or want to try a project you hear about on the show, you'll need somewhere to deploy it. So check out our friends over at Linode.
2
00:00:25.295 -->
00:00:32.595With their managed Kubernetes platform, it's easy to get started with the next generation of deployment and scaling powered by the battle tested Linode platform,
3
00:00:32.960 -->
00:00:38.980including simple pricing, node balancers, 40 gigabit networking, and dedicated CPU and GPU instances.
4
00:00:39.815 -->
00:00:47.355And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover.
5
00:00:47.660 -->
00:00:48.800Go to python podcast.com/linode
6
00:00:50.220 -->
00:00:56.640today to get a $100 credit to try out their new database service, and don't forget to thank them for their continued support of this show.
7
00:00:57.085 -->
00:01:04.545The biggest challenge with modern data systems is understanding what data you have, where it is located, and who is using it. SelectStar's
8
00:01:04.845 -->
00:01:15.229data discovery platform solves that out of the box with a fully automated catalog that platform solves that out of the box with a fully automated catalog that includes lineage from where the data originated all the way to which dashboards rely on it and who is viewing them every day.
9
00:01:15.585 -->
00:01:17.125Just connect it to your DBT,
10
00:01:17.425 -->
00:01:23.205Snowflake, Tableau, Looker, or whatever you're using, and select star will set everything up in just a few hours.
11
00:01:23.619 -->
00:01:24.920Go to python podcast.com/selectstar
12
00:01:26.579 -->
00:01:31.240today to double the length of your free trial and get a swag package when you convert to a paid plan.
13
00:01:31.585 -->
00:01:40.200Your host as usual is Tobias Macy. And today, I'm interviewing Nicholas Hoehning about Flex Measures, an open source project designed to manage energy resources dynamically
14
00:01:41.880 -->
00:01:43.820Nicholas, can you start by introducing yourself?
15
00:01:44.280 -->
00:01:47.740 Yes. Hi, Tobias. I'm Nicholas. I'm German
16
00:01:48.905 -->
00:01:50.125and living in the Netherlands
17
00:01:50.664 -->
00:01:55.485since 15 years. I've been a programmer for a bit more than 20 years
18
00:01:56.020 -->
00:02:00.680using Python for a long time. I've been working on energy since 12 years, I think,
19
00:02:01.060 -->
00:02:02.680from that vintage point.
20
00:02:03.355 -->
00:02:05.615 And do you remember how you first got introduced to Python?
21
00:02:06.155 -->
00:02:08.015 1st, I was I had been using
22
00:02:09.355 -->
00:02:13.030very little c and Visual Basic. I've been working on
23
00:02:13.489 -->
00:02:13.989access
24
00:02:14.370 -->
00:02:14.870databases
25
00:02:15.170 -->
00:02:16.310and and word
26
00:02:17.010 -->
00:02:17.510macros.
27
00:02:18.185 -->
00:02:20.845At at some point, I did then, go to university.
28
00:02:21.705 -->
00:02:26.519During my bachelor's, I got to work on a start up. It was a neuroscience
29
00:02:26.980 -->
00:02:27.480startup
30
00:02:28.500 -->
00:02:30.680that is still around. It's called Iquant.
31
00:02:30.980 -->
00:02:32.360The idea was to
32
00:02:32.875 -->
00:02:33.534transfer neuroscience
33
00:02:34.635 -->
00:02:36.174models of visual attention
34
00:02:36.715 -->
00:02:40.735into a web application so that you can, you know, basically upload your
35
00:02:41.194 -->
00:02:42.415ad and find out
36
00:02:42.780 -->
00:02:44.159where people might look first.
37
00:02:44.459 -->
00:02:54.594And we do we use a lot of Python there, and I had to you know, I was sitting at lunch, reading the standard Python tutorial so I could get to work on that startup, still remember.
38
00:02:55.055 -->
00:03:06.160 In terms of the Flex Measures project that you are working with, can you describe a bit about what it is and some of the story behind how it came to be and why you decided that this dynamic
39
00:03:06.575 -->
00:03:10.755energy demand response system is something that you wanted to spend your time and energy on?
40
00:03:11.135 -->
00:03:14.355 Yeah. Sure. And I'd love to yeah. It has become my life topic.
41
00:03:14.770 -->
00:03:16.070I started a PhD
42
00:03:16.450 -->
00:03:17.910around this topic in 2009
43
00:03:19.090 -->
00:03:19.590when
44
00:03:20.450 -->
00:03:27.445it wasn't absolutely clear that we will get the kind of energy transition that we are basically in right now,
45
00:03:28.145 -->
00:03:30.325driven by, you know, lots of renewables
46
00:03:31.450 -->
00:03:33.710being the major source at some point.
47
00:03:34.250 -->
00:03:36.910Flex measures, basically, an energy management system.
48
00:03:37.610 -->
00:03:42.385It helps you manage your energy. In the last couple of years, energy management has meant that you manage
49
00:03:42.924 -->
00:03:45.344the data around your energy, metering data.
50
00:03:46.045 -->
00:03:54.750You put it on NICE dashboards and you do billing around it. You know, that's also significant work to be done. Flex Measures focuses more on
51
00:03:55.130 -->
00:03:56.430the energy flexibility
52
00:03:57.915 -->
00:03:58.655and optimizing
53
00:03:59.355 -->
00:04:02.015when energy is consumed during the day
54
00:04:02.475 -->
00:04:05.535because that's an a very important piece in the energy transition.
55
00:04:06.690 -->
00:04:11.270As any any expert will tell you, we'll need to get to this kind of optimization,
56
00:04:12.130 -->
00:04:13.030at some point.
57
00:04:13.865 -->
00:04:16.685Otherwise, we will not get the fit between
58
00:04:17.465 -->
00:04:25.159available renewable energy and the actual consumption to have a stable energy system. So flex measures helps you find the best times
59
00:04:25.860 -->
00:04:31.960for your flexible energy assets. Let's say, a battery. That's the best example of a flexible energy asset.
60
00:04:32.365 -->
00:04:34.945When should that battery be charging or discharging?
61
00:04:35.405 -->
00:04:40.544The other examples for flexible assets are heating. You can heat before
62
00:04:41.229 -->
00:04:43.650somewhat sometime before you're really home, for instance.
63
00:04:44.110 -->
00:04:45.569Heat pumps are a big topic.
64
00:04:46.110 -->
00:04:48.050The industry, you have a lot of potential
65
00:04:48.815 -->
00:04:54.035to run energy intensive processes at a slightly different time. And Flex Measures really helps you
66
00:04:54.495 -->
00:04:57.875model all your energy data in real time and make that decision.
67
00:04:58.380 -->
00:05:26.794 You mentioned that a number of the other energy management systems are focused more on a kind of 1 way path of information where you're just retrieving data from the system and then using that to build some analysis, but that doesn't get acted upon in any sort of automated fashion. I'm wondering if you can just give a bit more of an overview of what the space looks like for these energy management systems and if there are any kind of alternatives to flex measures or if it's something that is relatively unique in the space.
68
00:05:27.255 -->
00:05:28.315 There are some projects
69
00:05:28.680 -->
00:05:32.220that have on the road map to also do this kind of real time optimization,
70
00:05:33.160 -->
00:05:38.060but you got a lot of inertia in these projects as well in companies. So I see a lot of companies who
71
00:05:39.045 -->
00:05:43.305had to start basically going to customers who have not even any metering
72
00:05:43.925 -->
00:05:44.985installed whatsoever
73
00:05:45.605 -->
00:05:49.330other than having a main meter. And the main meter's data
74
00:05:50.190 -->
00:05:51.810is not real time as well.
75
00:05:52.350 -->
00:05:56.370So these companies started with bringing in their Raspberry Pis or whatever it is,
76
00:05:56.885 -->
00:06:04.905becoming good at that, starting to measure, becoming good at visualizing information, becoming good at doing them some some aspects of billing maybe.
77
00:06:05.720 -->
00:06:09.340And to do this step into data science optimization,
78
00:06:09.720 -->
00:06:10.380I see
79
00:06:10.920 -->
00:06:14.620I see the difficulties in some organizations to to that extra step. So
80
00:06:14.965 -->
00:06:16.025these people are happy
81
00:06:16.965 -->
00:06:27.520to get some other project and get some other help with that. I don't know all the projects out there, of course. So Flex Measures is open source, and another open source project that I know about is just called OpenEMS.
82
00:06:28.540 -->
00:06:29.740That's a Java project in,
83
00:06:30.905 -->
00:06:32.125originated in Germany
84
00:06:32.425 -->
00:06:39.645that's, built a quite interesting foundation around it. But also there, there's a big focus in inertia on getting the metering
85
00:06:40.449 -->
00:06:41.110and visualization
86
00:06:42.289 -->
00:06:43.190correctly done.
87
00:06:43.650 -->
00:06:46.710And there's not so much support yet to
88
00:06:47.625 -->
00:06:48.745optimize the actual
89
00:06:49.785 -->
00:06:54.045what actually happens and and influence that, and we have decided to only focus on that.
90
00:06:54.639 -->
00:06:55.780 As far as the
91
00:06:56.560 -->
00:07:01.965primary focus and goals of Flex Measures, I'm wondering if you can just talk to some of
92
00:07:02.445 -->
00:07:04.945the kind of outcomes that you're aiming for and
93
00:07:05.565 -->
00:07:06.465some of the,
94
00:07:06.925 -->
00:07:09.185I guess, target audience for the project.
95
00:07:09.780 -->
00:07:14.680 As a big goal, the big hairy goal is that Plaxminder should really help to
96
00:07:15.060 -->
00:07:20.815speed up the energy transition and, you know, become 1 of the standard pieces of climate tech,
97
00:07:21.755 -->
00:07:26.095infrastructure tech that you would also always consider when you start a new
98
00:07:26.840 -->
00:07:28.700modern energy project where
99
00:07:29.240 -->
00:07:30.540your real time optimization
100
00:07:31.320 -->
00:07:32.780is a part of the solution.
101
00:07:33.535 -->
00:07:37.635The main way I think Flex Measures can help is really being a developer friendly tool,
102
00:07:38.255 -->
00:07:39.395solve a lot of these
103
00:07:39.775 -->
00:07:44.830things that take you weeks of work, get your data model right, get your data integrations right,
104
00:07:45.210 -->
00:07:46.350get some monitoring
105
00:07:47.130 -->
00:07:47.630right,
106
00:07:48.090 -->
00:07:51.550decide how to implement where your algorithms should be run,
107
00:07:51.965 -->
00:07:54.305have a queue for that, you know, processing queues.
108
00:07:55.085 -->
00:07:57.585There's all these things that developers know
109
00:07:58.125 -->
00:07:59.105will keep you
110
00:07:59.500 -->
00:08:01.200busy before you get to the real
111
00:08:01.580 -->
00:08:06.000use case, before you really help your customer, or you are implementing something very
112
00:08:06.540 -->
00:08:08.560shortly, very quick hack.
113
00:08:08.875 -->
00:08:16.415See that happening a lot. Other people asking their cousin's neighbor to have a simple algorithm put somewhere, but this is about, you know,
114
00:08:16.795 -->
00:08:26.960real time data pipelines who have to be kept alive and be checked on health. Yeah. I think we succeed if developers around the world who I expect in the next 10 years to
115
00:08:27.345 -->
00:08:33.445be looking around how they should approach the similar similar challenges to always consider flex measures.
116
00:08:33.825 -->
00:08:35.765And that can be in a start up somewhere.
117
00:08:36.430 -->
00:08:37.570That can be in
118
00:08:38.029 -->
00:08:39.490a larger energy company
119
00:08:39.950 -->
00:08:45.810where they have already their ICT team, but, haven't solved or started to do this yet.
120
00:08:47.105 -->
00:08:48.085And and I think
121
00:08:48.785 -->
00:08:53.445this is a problem that happens in all the the the parts of the energy system. For me,
122
00:08:54.000 -->
00:08:56.820there's 2 big parts. That's industry and,
123
00:08:57.200 -->
00:08:58.019what's usually
124
00:08:58.480 -->
00:09:07.405called smart city at the moment. So anything in the the built environment, those are 2 huge sectors of the energy sector, which in itself is 1 of the biggest
125
00:09:08.240 -->
00:09:16.100sectors in the world that needs to undergo the most rapid transition you could imagine. The other plans are 15 year plans basically to basically change
126
00:09:16.800 -->
00:09:17.940how everything works.
127
00:09:18.515 -->
00:09:23.495So we really hope flex measures can help get that super big vision done in time.
128
00:09:24.035 -->
00:09:35.970 Do you also see flex measures as something that an individual homeowner might use as part of managing their energy systems, particularly as more people invest in solar and small scale wind?
129
00:09:36.415 -->
00:09:40.595 Yes. I want to talk about a small project we've been doing. So
130
00:09:41.135 -->
00:09:46.320besides working with customers or with companies that can scale up innovation.
131
00:09:47.020 -->
00:09:59.214We've seen that this is still slow. Right? So these companies all have to think differently before they haven't been involved with energy so far. It's a long process. So we have, on the sides, created a living lab with just 1 household
132
00:09:59.675 -->
00:10:01.615with someone who's also very enthusiastic
133
00:10:02.730 -->
00:10:03.550about, specifically,
134
00:10:04.410 -->
00:10:05.709vehicle to grid charging.
135
00:10:06.170 -->
00:10:12.029They bought the exact car and the exact charger that can do that already, the 1 that is allowed to do that in the Netherlands.
136
00:10:12.394 -->
00:10:13.774And we've really implemented
137
00:10:14.235 -->
00:10:15.615the automated optimization
138
00:10:16.235 -->
00:10:22.095of the charging and discharging in in his house. And for that, we needed to actually do something in the house.
139
00:10:22.459 -->
00:10:25.279Flex measures is basically supposed to run-in the cloud.
140
00:10:25.819 -->
00:10:27.839It's dockerized. It can also run locally.
141
00:10:28.379 -->
00:10:31.920But it basically makes decisions. It doesn't really show you something.
142
00:10:32.325 -->
00:10:36.265So I want to pitch a very cool project that's called Home Assistant.
143
00:10:36.645 -->
00:10:39.785It's also open source. And it's also originated in the Netherlands,
144
00:10:40.245 -->
00:10:41.385but they have a
145
00:10:41.899 -->
00:10:44.480company in the US also now. Very interesting
146
00:10:44.940 -->
00:10:47.279group of people. Basically, in the home automation
147
00:10:47.820 -->
00:10:49.925sector with their software.
148
00:10:50.465 -->
00:11:02.940We use Home Assistant together with Flex Measures to optimize the charging, discharging, and and taking into account the the solar panel production to really create a cool project. We also open sourced our Home Assistant plug in.
149
00:11:03.560 -->
00:11:14.825So that's out there. We were on Dutch TV and a couple of people wanted to use it as well. And now there's this week, the first 2 others who've implemented it in their house. So now we have 3.
150
00:11:15.320 -->
00:11:22.300But for us, as a company, that's not the focus, but it's where you can really do something right now and really show something. And there's always these, enthusiasts
151
00:11:22.925 -->
00:11:25.504that just want to build something in their house like that.
152
00:11:25.805 -->
00:11:28.144 As far as the overall question
153
00:11:29.004 -->
00:11:31.165of energy systems, I mean, that can be
154
00:11:31.920 -->
00:11:34.660it's a very broad term with a lot of different,
155
00:11:35.360 -->
00:11:38.500I guess, energy sources and use cases
156
00:11:39.105 -->
00:11:48.325kind of embedded in it, where 1 element of it is the electrical grid. Another is the usage of fossil fuels for transportation and shipping.
157
00:11:48.650 -->
00:11:53.630There's home heating. There's heating at, you know, industrial scale for large factories.
158
00:11:54.410 -->
00:11:56.510And the majority of those,
159
00:11:56.925 -->
00:12:17.505I guess, ecosystems of energy usage are governed largely by different market forces where there is the, you know, energy producer, which is becoming a bit of a fuzzy line now with more homes and residential and industrial installations having their own energy generation through things like solar and wind. And then there's the energy consumer and the distribution system.
160
00:12:18.045 -->
00:12:28.800And the pricing of those different resources are governed by, you know, some level of dynamic usage where, you know, there are peak loads, and so that can increase energy prices for certain periods.
161
00:12:29.339 -->
00:12:30.160And I'm wondering
162
00:12:30.644 -->
00:12:34.985what you see as some of the benefits that Flex Measures can provide to
163
00:12:35.365 -->
00:12:41.339this marketplace ecosystem, particularly given the fact that it's not as clear cut now as it once was?
164
00:12:41.720 -->
00:12:43.740 No. You're absolutely right. It's the vast,
165
00:12:44.120 -->
00:12:45.100sometimes confusing
166
00:12:45.880 -->
00:12:54.115system. I like the analogy that because somehow it's all connected and it has to happen, in real time and the frequency of the grid,
167
00:12:54.580 -->
00:12:58.040as far as electricity is concerned is held in some
168
00:12:58.660 -->
00:12:59.160synchronization.
169
00:12:59.940 -->
00:13:13.200We've created the largest man made machines with the grids. So you got the US grid, the European grid, and the Asian grid, basically, as the largest 3 machines you could even imagine where your house is a part of it, or the electric assets,
170
00:13:13.820 -->
00:13:16.399and it happens in real time. Different markets
171
00:13:17.180 -->
00:13:21.040buy and sell and allocate energy for different horizons.
172
00:13:21.915 -->
00:13:24.495And FlexMaster is certainly
173
00:13:25.195 -->
00:13:31.375not very useful in the range of, let's say, you're buying your energy a couple months ahead and buying these big budgets.
174
00:13:32.140 -->
00:13:41.415Also, I wouldn't say it's usable in the second range. There's some balancing markets to get this frequency challenge on the grid, right, where you have to react within a second.
175
00:13:41.954 -->
00:13:43.175But everything in between,
176
00:13:43.714 -->
00:13:46.855where you have to react basically during the day
177
00:13:47.240 -->
00:13:50.940or you think in the evening about your plan the next day,
178
00:13:51.400 -->
00:13:52.860that's where Flex Measures,
179
00:13:53.320 -->
00:13:54.220is really useful.
180
00:13:54.600 -->
00:13:57.324And as I said, it's really on the electricity
181
00:13:58.105 -->
00:13:58.605range
182
00:13:59.065 -->
00:14:00.605where we want to use it.
183
00:14:01.065 -->
00:14:02.444So if you're a consumer,
184
00:14:02.959 -->
00:14:14.785you can use flex measures to use greener electricity, but it will help the grid stability. But I think mostly what people care about, of course, is to to have their energy bill in check. The spread on market prices has gone up.
185
00:14:15.245 -->
00:14:16.145Energy bills
186
00:14:16.685 -->
00:14:20.305are rising a lot. So there's a lot of urgency, I think. Now there's
187
00:14:20.720 -->
00:14:23.860clarity that this is very important for them to achieve.
188
00:14:24.240 -->
00:14:24.740And
189
00:14:25.120 -->
00:14:26.260from a grid perspective,
190
00:14:26.880 -->
00:14:28.180if you're a network operator,
191
00:14:28.875 -->
00:14:31.295it also is great if a lot of
192
00:14:31.675 -->
00:14:33.695decentralized decisions are happening
193
00:14:34.154 -->
00:14:35.695that help the grid stability.
194
00:14:36.240 -->
00:14:40.820We we have to follow what renewables are doing to a big extent more and more.
195
00:14:41.200 -->
00:14:45.845We cannot influence when we get that solar power or wind power, but we can influence
196
00:14:47.024 -->
00:14:49.524when we use power. And if a lot of decentralized
197
00:14:49.985 -->
00:14:52.404decisions are being made to shift their consumptions
198
00:14:52.879 -->
00:14:56.819towards when renewable energy is really there. We get a more stable grid.
199
00:14:57.120 -->
00:14:57.620And
200
00:14:58.000 -->
00:15:03.415the only other solution for network operators would be to, you know, double or triple every cable in size.
201
00:15:03.955 -->
00:15:04.455So
202
00:15:04.835 -->
00:15:06.055this is a big societal
203
00:15:06.435 -->
00:15:08.695cost saving we can achieve with installing
204
00:15:09.420 -->
00:15:19.985better decision making in in the nodes, which turns how the energy system works on its head. Right? So still now in the last decades, we have optimized a few power plants per country
205
00:15:20.365 -->
00:15:23.185and just forecasted what consumers will be doing.
206
00:15:23.565 -->
00:15:26.704And now that partly turns on its head. It's very interesting.
207
00:15:27.110 -->
00:15:30.410 Digging a bit more into that question of renewables
208
00:15:30.870 -->
00:15:37.155and their broader distribution, particularly with residential installations as part of that mix, I'm curious
209
00:15:37.695 -->
00:15:39.315what you see as some of the
210
00:15:39.695 -->
00:15:45.795broader impact on the way that the kind of marketplace economy around electrical grids in particular
211
00:15:46.480 -->
00:15:50.980is likely to shift as the power generation and power distribution
212
00:15:51.440 -->
00:15:51.940becomes
213
00:15:52.320 -->
00:15:52.820bidirectional
214
00:15:53.360 -->
00:15:54.980on a more routine basis.
215
00:15:55.535 -->
00:16:01.315 1 thing we see in the Netherlands, and I think that the Netherlands are a bit ahead of the curve there, is
216
00:16:01.774 -->
00:16:02.995more dynamic prices.
217
00:16:03.500 -->
00:16:04.959I think you can choose between
218
00:16:05.660 -->
00:16:08.5605 suppliers now that will buy
219
00:16:09.019 -->
00:16:11.839power on the day ahead market, which has 24
220
00:16:12.754 -->
00:16:13.254different
221
00:16:13.795 -->
00:16:15.254slots. But then they will just
222
00:16:15.634 -->
00:16:16.615give you those
223
00:16:16.995 -->
00:16:18.05524 prices.
224
00:16:18.595 -->
00:16:20.055So the the the afternoon
225
00:16:20.920 -->
00:16:25.899before, you will know what your 24 prices will be the next day. And if you have,
226
00:16:26.279 -->
00:16:27.259you know, some optimized
227
00:16:28.145 -->
00:16:32.325optimized system like what we did, for instance, in the vehicle to grid project,
228
00:16:32.705 -->
00:16:39.320that's going to turn out quite well for you then. You will not consume energy when those prices are high. Of course,
229
00:16:39.940 -->
00:16:45.000what's interesting is that this might create more of a divide between those people that can afford that
230
00:16:45.505 -->
00:16:46.805that has this cool
231
00:16:47.265 -->
00:16:51.605infrastructure plus software, and they get their average energy bill.
232
00:16:51.985 -->
00:16:53.700Well, they keep it low, let's say.
233
00:16:54.180 -->
00:16:59.800And who's going to pay a lot? That's probably going to if everything goes like this, it's going to be the poor people.
234
00:17:00.420 -->
00:17:02.360So this is outside of the technical
235
00:17:03.145 -->
00:17:04.605realm, also very interesting
236
00:17:05.385 -->
00:17:12.045political discussion where we still have some time. And I'm also involved in some of these discussions to discuss how we can
237
00:17:12.540 -->
00:17:13.040achieve
238
00:17:13.580 -->
00:17:15.360a more just way to do that.
239
00:17:15.740 -->
00:17:18.880What we really need is not for individual homeowners to
240
00:17:19.635 -->
00:17:21.895invest in their own house and make it smarter.
241
00:17:22.435 -->
00:17:27.895I like it. I'm enthusiastic about it when it happens, but what we really need is this scale.
242
00:17:28.250 -->
00:17:31.309We really need to do these things for everybody on a big scale.
243
00:17:31.850 -->
00:17:33.470So for instance, big housing
244
00:17:33.850 -->
00:17:34.350corporations
245
00:17:35.455 -->
00:17:37.475already know, given their ESG
246
00:17:38.255 -->
00:17:38.755strategy,
247
00:17:39.535 -->
00:17:40.995they have to renovate
248
00:17:41.375 -->
00:17:50.350at least 4% of the whole portfolio every year. And every year that they don't do that, it's just getting to it, getting to be more pressing, like,
249
00:17:50.650 -->
00:17:51.7905%, 6%.
250
00:17:52.490 -->
00:17:54.190And then, yeah, you need to
251
00:17:54.684 -->
00:17:57.585make a whole neighborhood or a whole big flat
252
00:17:58.445 -->
00:18:00.144react to flexibility
253
00:18:00.684 -->
00:18:01.904demands from the grid.
254
00:18:02.260 -->
00:18:09.560And that can be very exciting that you then, for instance, have 1 giant heat pump for a whole flat. And especially if you get to bigger numbers,
255
00:18:10.180 -->
00:18:11.080there will be
256
00:18:11.524 -->
00:18:12.904a better way to react.
257
00:18:13.524 -->
00:18:15.304For instance, it's almost impossible
258
00:18:15.605 -->
00:18:19.705to forecast for a single house when you will be home, when will you cook.
259
00:18:20.120 -->
00:18:25.820You can have a little bit of a idea. But if you forecast a 100 consumers,
260
00:18:26.760 -->
00:18:28.620you get a much better data
261
00:18:29.184 -->
00:18:32.005forecast, which you can really work with. So I think
262
00:18:32.465 -->
00:18:36.005that's really what I need to see, these these bigger scaled approaches.
263
00:18:36.590 -->
00:18:39.890And, yeah, I hope Flex Measures can be can be helpful with that.
264
00:18:40.750 -->
00:18:43.570 Digging into some of the way that Flex Measures
265
00:18:43.975 -->
00:18:51.434operates, I'm wondering if you can talk to the sources of data that you're looking at, some of the ways that you manage that integration
266
00:18:51.815 -->
00:18:52.875and processing,
267
00:18:53.690 -->
00:19:03.915and the types of interaction that different kind of users or operators might have with Flex Measures and how much of it is just you kind of set it and forget it? Yes. Sure.
268
00:19:04.615 -->
00:19:08.795 So my simple picture of flex measures is data in, scheduling out.
269
00:19:09.415 -->
00:19:11.915Data in means certainly metering data.
270
00:19:12.269 -->
00:19:14.129You want to know what all your assets
271
00:19:14.750 -->
00:19:22.215did in the past. It can be very useful to, for instance, for a battery, know the possible state of charge it has now.
272
00:19:22.755 -->
00:19:26.135It can help to forecast what will happen in the near future.
273
00:19:26.674 -->
00:19:28.294We also read in prices,
274
00:19:29.170 -->
00:19:31.190market prices, for instance, the next day,
275
00:19:31.890 -->
00:19:32.790weather forecasts.
276
00:19:33.970 -->
00:19:38.230So you can then forecast your solar generation if that's on your roof.
277
00:19:38.835 -->
00:19:40.055Sometimes the occupants'
278
00:19:40.595 -->
00:19:46.775plans are also data that you need to take in. So in the vehicle to grid, living lab in this application,
279
00:19:47.919 -->
00:19:53.460The occupants' data might be that they say they will need the car for a longer trip
280
00:19:54.000 -->
00:19:57.455tonight at 6 PM. That's important data that influences
281
00:19:57.995 -->
00:20:01.135the scheduling because the car should be a 100% full by then.
282
00:20:01.995 -->
00:20:03.215Or in a factory,
283
00:20:03.870 -->
00:20:07.330they also have new constraints every day, how much
284
00:20:07.790 -->
00:20:09.730processing work they need to be doing.
285
00:20:10.110 -->
00:20:10.590That's,
286
00:20:10.990 -->
00:20:15.645about the data. And you said earlier that set and forget might be
287
00:20:16.025 -->
00:20:17.965an interesting concept. I really agree.
288
00:20:18.585 -->
00:20:18.905For,
289
00:20:19.465 -->
00:20:20.365most people
290
00:20:21.250 -->
00:20:23.830who will live in modern energy environments
291
00:20:24.289 -->
00:20:25.429with with some optimization
292
00:20:25.809 -->
00:20:26.309happening,
293
00:20:26.929 -->
00:20:28.150they should not even
294
00:20:28.925 -->
00:20:31.105care about that during a normal day.
295
00:20:31.405 -->
00:20:37.105So in the vehicle to grid project that we've been doing, that really was also design goal.
296
00:20:37.805 -->
00:20:38.545It worked.
297
00:20:38.910 -->
00:20:40.930And from then on, it just quietly
298
00:20:41.390 -->
00:20:43.730optimized every day what the battery was doing.
299
00:20:44.030 -->
00:20:49.385We did, however, in that project, think you might want an override button. You might not want to
300
00:20:49.765 -->
00:20:52.985meddle with what exactly the optimization is doing, but
301
00:20:53.500 -->
00:20:59.360it's nice, of course, in an optimized system to have the ability to say, just stop what you're doing or
302
00:20:59.820 -->
00:21:01.120the other button says,
303
00:21:01.785 -->
00:21:03.005charge the car now.
304
00:21:03.545 -->
00:21:05.565I don't care about the price or whatever.
305
00:21:06.105 -->
00:21:13.340The idea is that these buttons are almost never used, but they should be there. So I think that end users who live in these
306
00:21:13.880 -->
00:21:17.100built environments should really not be involved that much,
307
00:21:17.675 -->
00:21:19.055and it's more the
308
00:21:19.995 -->
00:21:20.495servicing
309
00:21:21.115 -->
00:21:23.135around that. So Flex Measures
310
00:21:23.435 -->
00:21:25.935needs to be hosted, and we need to
311
00:21:26.340 -->
00:21:28.679check that that data is always flowing
312
00:21:29.700 -->
00:21:32.519and check with every error that might
313
00:21:32.899 -->
00:21:34.440come up in in the scheduling.
314
00:21:35.175 -->
00:21:38.555And you have some companies that you call energy service companies.
315
00:21:39.175 -->
00:21:41.355So a lot of them, for instance, have these more traditional
316
00:21:41.815 -->
00:21:44.235energy management systems I talked about earlier.
317
00:21:45.080 -->
00:21:45.580And
318
00:21:46.120 -->
00:21:48.620I think that they would be users of Flex Measures.
319
00:21:49.400 -->
00:21:51.420If we don't do it for them, they would really
320
00:21:52.200 -->
00:21:54.060build it into their monitoring pipeline,
321
00:21:54.745 -->
00:21:59.645have a KPI and reporting pipeline to regularly check if that's happening correctly.
322
00:22:00.345 -->
00:22:02.7651 thing that's nice to check is, the universal
323
00:22:04.540 -->
00:22:05.920smart energy framework.
324
00:22:06.460 -->
00:22:07.680It's called Yusef.
325
00:22:08.460 -->
00:22:13.875My cofounder was on the design committee, and they talked about the different roles in modern smart energy system.
326
00:22:14.415 -->
00:22:16.035You mentioned the prosumer already.
327
00:22:16.495 -->
00:22:20.915I mentioned the energy service companies, and you also have companies they're called aggregators.
328
00:22:22.020 -->
00:22:22.520They
329
00:22:23.059 -->
00:22:24.520aggregate the energy flexibility
330
00:22:25.620 -->
00:22:26.120from
331
00:22:26.900 -->
00:22:27.880a lot of customers
332
00:22:28.180 -->
00:22:31.715into their virtual power plant and and just trade that flexibility
333
00:22:32.335 -->
00:22:33.155on markets.
334
00:22:34.015 -->
00:22:37.075I think you could build energy aggregator using FlexNetters,
335
00:22:38.159 -->
00:22:40.980but that's not what we do. We use it for
336
00:22:41.600 -->
00:22:43.299optimization behind your meter.
337
00:22:43.679 -->
00:22:44.980 As far as the actual
338
00:22:45.515 -->
00:22:46.015implementation
339
00:22:46.635 -->
00:22:50.095of Flex Measures, I'm wondering if you can talk to some of the
340
00:22:50.875 -->
00:22:55.260design considerations that went into it, some of the challenges of being able to
341
00:22:55.720 -->
00:23:00.940flexibly manage scale of inbound data and the types of requests that you're getting.
342
00:23:01.905 -->
00:23:15.460And also, I'm interested in maybe some of the capabilities of being able to federate across different installations of flex measures and, you know, route different decision requirements or different data points based on different kind of inbound information?
343
00:23:16.365 -->
00:23:17.425 So from the beginning,
344
00:23:18.205 -->
00:23:19.265a few years ago,
345
00:23:19.565 -->
00:23:21.825I think, I didn't mention that before. But the first
346
00:23:22.445 -->
00:23:26.150project where Flex Measures really got its first development
347
00:23:26.850 -->
00:23:30.549time, that was with a South Korean customer called A1 Engineering.
348
00:23:31.490 -->
00:23:33.110They wanted to do simulation
349
00:23:34.345 -->
00:23:37.485first of a of a system with a lot of smart charging,
350
00:23:37.785 -->
00:23:39.245but then also move to
351
00:23:39.545 -->
00:23:42.559real time operation in a later phase. So this is
352
00:23:43.019 -->
00:23:44.640the main design idea
353
00:23:45.100 -->
00:23:47.440that has been there from the start that you can use
354
00:23:48.020 -->
00:23:48.520something
355
00:23:49.100 -->
00:23:50.960in reality in real operation,
356
00:23:51.375 -->
00:23:52.195but it's also useful
357
00:23:53.375 -->
00:23:56.755initially in a phase where you are simulating what might actually happen.
358
00:23:57.215 -->
00:23:58.755And that's still very relevant.
359
00:23:59.310 -->
00:24:07.650So we're doing a simulation with a bigger real estate company right now. That's their first step. I think that that main design goal still stands.
360
00:24:08.175 -->
00:24:13.315Now I haven't used multiple Flex Measures nodes and then federated the decisions yet. So I think
361
00:24:13.855 -->
00:24:18.490that could be built, like, a lower level of Flex Measures instances, basically, governing,
362
00:24:20.309 -->
00:24:21.370smaller installations.
363
00:24:22.044 -->
00:24:23.105And another 1,
364
00:24:23.645 -->
00:24:28.544maybe trying to aggregate. As I mentioned earlier, the it's a concept of the flexibility aggregator
365
00:24:29.005 -->
00:24:30.225and aggregate across
366
00:24:31.080 -->
00:24:35.419those behind the meter installations that could be a higher level of extensions
367
00:24:36.200 -->
00:24:38.860instance. Yeah. Now we haven't done that yet.
368
00:24:39.385 -->
00:24:40.285We consciously
369
00:24:40.905 -->
00:24:45.405can decide not to, you know, let the volume of data grow too large.
370
00:24:46.265 -->
00:24:47.085So for instance,
371
00:24:47.529 -->
00:24:50.029you might run into projects where they have 10 second
372
00:24:50.649 -->
00:24:51.630interval readings.
373
00:24:52.409 -->
00:24:59.475But to make the kind of decisions that Flex Measures needs to make, let's say, on an hourly basis or 15 minute basis,
374
00:25:00.335 -->
00:25:02.755you don't need to read in the finely
375
00:25:03.215 -->
00:25:08.350structured data. It would be best if that other system gives us already aggregated
376
00:25:09.130 -->
00:25:15.865data. For instance, in in 5 minute steps, that'll be fine. And then the amount of data isn't growing that much,
377
00:25:16.805 -->
00:25:19.125but we're already looking into that. So we
378
00:25:19.765 -->
00:25:21.465our data is stored in, Postgres.
379
00:25:22.470 -->
00:25:26.810Of course, that we also made that choice because you have so much support for
380
00:25:27.510 -->
00:25:32.565growing bigger with your databases and have all these clusters, clustering strategies, and sharding.
381
00:25:33.425 -->
00:25:35.125And, also, of course, there's interesting
382
00:25:36.225 -->
00:25:42.210technology built upon Postgres. I think 1 of called Timescale DB that really focuses only on the time series
383
00:25:43.310 -->
00:25:43.810aspect.
384
00:25:44.510 -->
00:25:46.290And 1 thing that we considerably
385
00:25:47.175 -->
00:25:49.435put some effort in is to model
386
00:25:50.295 -->
00:25:53.195this data because it comes, as you said, from different sources.
387
00:25:54.055 -->
00:25:55.835There might be a company that
388
00:25:56.159 -->
00:25:57.299installed the sensors
389
00:25:58.000 -->
00:26:00.340at the factory or is responsible
390
00:26:00.640 -->
00:26:02.980at the houses to measure what's happening.
391
00:26:03.455 -->
00:26:04.674So weather forecasting
392
00:26:05.215 -->
00:26:07.715service. So we use, open weather map.
393
00:26:08.335 -->
00:26:10.275Flex measures can read data from there.
394
00:26:10.820 -->
00:26:14.120The European transmission system operators have a service
395
00:26:14.500 -->
00:26:18.360in open transparent API as well. So you got multiple sources.
396
00:26:18.925 -->
00:26:21.105They all send you data that might be
397
00:26:21.645 -->
00:26:22.785about different things.
398
00:26:23.325 -->
00:26:23.985It has
399
00:26:24.525 -->
00:26:25.745different time zones.
400
00:26:26.470 -->
00:26:29.370It's crucial to maybe know when they know about that.
401
00:26:29.830 -->
00:26:32.250So not only the time that they're talking about,
402
00:26:32.950 -->
00:26:34.8901 point in time with 1 measurement,
403
00:26:36.865 -->
00:26:37.765has 1
404
00:26:38.545 -->
00:26:45.684date time, of course, about the time that you're talking about. But we're also interested in the daytime when they said this would happen.
405
00:26:46.410 -->
00:26:50.510If it's before the time, this is a forecast. If it's after the time, it's a measurement
406
00:26:51.289 -->
00:26:54.830that can be quite useful when you write optimization algorithms.
407
00:26:55.735 -->
00:26:58.075All this led us to write our own,
408
00:26:58.615 -->
00:26:59.115basically,
409
00:26:59.575 -->
00:27:03.035time series data model. We called it Timely Beliefs.
410
00:27:03.649 -->
00:27:05.269It's actually an extension
411
00:27:05.570 -->
00:27:09.990on pandas. So what it makes possible is that you have a pandas data frame
412
00:27:10.664 -->
00:27:15.804or basically a class that extends from Pandas data frame, and we call it the beliefs data frame.
413
00:27:16.105 -->
00:27:24.380We wrote a lot of functionality around that that you can, you know, merge these data frames or change the resolution or whatever. It's a very interesting project.
414
00:27:24.840 -->
00:27:29.565They took a lot of our time, and now we're profiting from that within Flex Measures to really understand all the time
415
00:27:30.264 -->
00:27:31.804what that data really means.
416
00:27:32.264 -->
00:27:39.110 As far as the kind of architecture of the project, digging a bit more into that, I'm also interested in understanding the
417
00:27:39.410 -->
00:27:42.790kind of extension points that you've built to be able to allow
418
00:27:43.215 -->
00:27:47.795different users of Flex Measures to adapt to different data sources or
419
00:27:48.175 -->
00:27:56.510being able to extend the types of decisions and machine learning capabilities that they want to use or the types of predictions that they want to generate
420
00:27:56.970 -->
00:28:04.335and maybe a bit more of the kind of data integration and kind of predictive capabilities that you've built into it? Flex Measures is extensible
421
00:28:05.115 -->
00:28:05.855 with plugins
422
00:28:06.395 -->
00:28:08.495done last year, and we are using that ourselves
423
00:28:09.210 -->
00:28:10.350because often
424
00:28:11.050 -->
00:28:12.830every project has these differences,
425
00:28:13.210 -->
00:28:15.390different data sources, or or needs.
426
00:28:16.010 -->
00:28:17.630Often, it's also the visualization
427
00:28:18.685 -->
00:28:20.545that you want to adapt to a customer.
428
00:28:21.165 -->
00:28:22.225That's very important
429
00:28:22.845 -->
00:28:25.425to the whole architecture that you can add your own
430
00:28:26.100 -->
00:28:27.400API endpoints even,
431
00:28:27.860 -->
00:28:31.160your own visualization, and and we have a command line interface.
432
00:28:31.860 -->
00:28:33.480You can even add your own
433
00:28:33.975 -->
00:28:34.475command
434
00:28:35.014 -->
00:28:36.235line interface commands.
435
00:28:36.934 -->
00:28:38.794For instance, 1 that regularly
436
00:28:39.174 -->
00:28:41.514gets data from some other open API,
437
00:28:41.960 -->
00:28:46.540and you want to run that hourly in a Chrome job as a Flex Measures command.
438
00:28:47.000 -->
00:28:49.500Flex Measures actually is built on Flask,
439
00:28:50.395 -->
00:28:53.615and Flask has some nice capabilities for that.
440
00:28:53.995 -->
00:29:00.420Of course, for APIs, but also the it integrates with click. So command line interfaces are, nice to write.
441
00:29:00.960 -->
00:29:02.820And with the Flask blueprint
442
00:29:04.080 -->
00:29:05.380technology, it was
443
00:29:05.985 -->
00:29:08.405quite a joy to write our 1st plug in
444
00:29:08.865 -->
00:29:11.925architecture. So what you do in the plug in is mostly
445
00:29:12.545 -->
00:29:13.365add a blueprint
446
00:29:14.190 -->
00:29:15.090to flex measures.
447
00:29:15.630 -->
00:29:16.850Flask has a CLI
448
00:29:17.150 -->
00:29:19.410command, and we renamed that to flex measures.
449
00:29:20.030 -->
00:29:20.530So,
450
00:29:21.205 -->
00:29:27.705yeah, it all ties back into what I said earlier. We want flex measures to be usable by software developers. And then,
451
00:29:28.300 -->
00:29:35.360of course, APIs are super important, but also the command line interface, I think, is is super important. We wrote a
452
00:29:36.085 -->
00:29:40.184tutorial how you would use Flex Measures within a few minutes, you know, just to show you
453
00:29:40.565 -->
00:29:42.905within a few minutes what you might be doing,
454
00:29:43.620 -->
00:29:50.840which is based on Docker. So you don't need to install all these things. Just pull the Docker image. And then that tutorial is
455
00:29:51.415 -->
00:29:52.075a few
456
00:29:52.455 -->
00:29:53.995calls to the command line interface
457
00:29:54.855 -->
00:29:59.915about modeling that couple assets that you have a battery, for instance, loading in some data
458
00:30:00.590 -->
00:30:04.690from a CSV file and asking Flex Measures to compute a great
459
00:30:04.990 -->
00:30:09.890optimized schedule for the next day. That's all command line interface command. That's what I really like.
460
00:30:10.465 -->
00:30:10.965Optimization
461
00:30:11.505 -->
00:30:12.325in the background
462
00:30:13.185 -->
00:30:13.665happens
463
00:30:14.145 -->
00:30:15.445I think we use pyomo.
464
00:30:16.465 -->
00:30:17.925It's also a very powerful
465
00:30:18.889 -->
00:30:20.590library for for these kind of things.
466
00:30:21.289 -->
00:30:23.309And we used there was some sklearn
467
00:30:23.690 -->
00:30:25.230that we used. But recently,
468
00:30:25.929 -->
00:30:27.470we've picked up sktime,
469
00:30:28.434 -->
00:30:29.335which is really
470
00:30:29.794 -->
00:30:32.054a package focusing on time series
471
00:30:32.595 -->
00:30:36.534forecasting, doing smart things around that, and it's very nicely done, it seems.
472
00:30:37.190 -->
00:30:38.890 As you have been
473
00:30:39.429 -->
00:30:41.210building Flex Measures and
474
00:30:41.510 -->
00:30:44.490iterating on the problem space and also with the
475
00:30:45.184 -->
00:30:47.684donation of it to the LF Energy
476
00:30:48.304 -->
00:30:48.804Foundation.
477
00:30:49.345 -->
00:30:57.299I'm wondering what are some of the ways that the design and goals and scope of the project have changed or evolved since you first started working on it? I said earlier that,
478
00:30:58.000 -->
00:30:58.500 actually,
479
00:30:59.440 -->
00:31:07.645the overall design goal to make both simulation and optimized real time operation possible from the same code base is still intact.
480
00:31:08.585 -->
00:31:12.360I liked open source in Flex Measures. It it happened roughly,
481
00:31:12.820 -->
00:31:15.880well, less than 2 years ago. I we hit that button in GitHub
482
00:31:16.755 -->
00:31:19.895in a couple months later, donated to the Linux Energy Foundation.
483
00:31:20.835 -->
00:31:23.815I liked that that pushed us to even more transparency
484
00:31:24.195 -->
00:31:27.030and even more having a focus on code quality
485
00:31:27.650 -->
00:31:29.030to make sure that
486
00:31:29.890 -->
00:31:30.710Blake 8,
487
00:31:31.570 -->
00:31:32.070MyPy,
488
00:31:33.145 -->
00:31:36.205and Black always run. It's always looking good.
489
00:31:36.585 -->
00:31:37.245And documentation
490
00:31:38.025 -->
00:31:39.325got a lot of boost.
491
00:31:40.505 -->
00:31:41.165And, also,
492
00:31:41.900 -->
00:31:47.600in the meantime, we did once make big changes to the data model. When we worked for industry customers,
493
00:31:48.380 -->
00:31:51.280we noticed that our initial data model was a bit too simplistic.
494
00:31:51.645 -->
00:31:52.625I think we modeled
495
00:31:53.645 -->
00:31:54.145power,
496
00:31:55.005 -->
00:31:56.545weather data, and prices.
497
00:31:57.565 -->
00:32:03.070And if you go to industry, you quickly realize they want to measure a lot of other things that all have
498
00:32:03.690 -->
00:32:05.390some influence on your
499
00:32:05.770 -->
00:32:06.270outcomes.
500
00:32:06.735 -->
00:32:09.235For instance, you might be measuring steam flow,
501
00:32:10.095 -->
00:32:10.595and
502
00:32:10.975 -->
00:32:32.395 that wasn't possible. So we took a lot of time to make our data model more generic. Now we can model anything. Another interesting aspect of the kind of open sourcing question, and it's addressed a little bit by your donation of the project to the LF Energy Foundation. But I also know that you are running a business where Flex Measures serves as a kind of central portion of what you're providing
503
00:32:32.850 -->
00:32:36.470at CITA. And I'm curious if you can talk to some of the ways that you think about
504
00:32:36.850 -->
00:32:42.755which pieces of your work you want to put into the open source Flex Measures project and what are some of
505
00:32:43.315 -->
00:32:50.775the other kind of capabilities or layers that you're building on top of that that are part of the kind of commercial and business focused offering?
506
00:32:51.190 -->
00:32:54.410 It's a very interesting time to have a commercial open source
507
00:32:54.790 -->
00:32:55.530start up.
508
00:32:55.990 -->
00:32:57.930I was recently involved in an accelerator,
509
00:32:58.390 -->
00:32:59.450on the US side.
510
00:33:00.135 -->
00:33:03.035I had to attend at night, always at 11 PM.
511
00:33:03.655 -->
00:33:04.155But
512
00:33:04.695 -->
00:33:06.875there's really some investors in the US
513
00:33:08.029 -->
00:33:11.330that are looking for open source companies to invest in
514
00:33:11.710 -->
00:33:15.409because you got, in the last couple of years, some really interesting examples,
515
00:33:15.805 -->
00:33:17.025mostly on the database
516
00:33:17.725 -->
00:33:19.105developer tooling side.
517
00:33:19.885 -->
00:33:24.700So, obviously, in the energy sector, this is quite new. But it's clear that you can
518
00:33:25.240 -->
00:33:27.100run a business even if you're
519
00:33:27.720 -->
00:33:28.620very open.
520
00:33:29.240 -->
00:33:35.125LIMX Energy Foundation advised to use permissive licenses. So in this case, we use Apache 2.
521
00:33:35.745 -->
00:33:37.685You could also use MIT, for instance,
522
00:33:38.200 -->
00:33:43.820over a Copyleft licenses because the idea is to just, you know, open the doors wide to
523
00:33:44.440 -->
00:33:45.340growing the community,
524
00:33:46.005 -->
00:33:53.865letting other people use the tooling you've you write. Even if they don't re even tell you about it, they should have no doubts that they can use it freely
525
00:33:54.270 -->
00:34:00.929because you want to just grow, grow, grow, grow. That's after the Linx Energy Foundation told us that they use those licenses.
526
00:34:01.665 -->
00:34:06.645I also heard it from this venture capitalist accelerator program. It's a very interesting
527
00:34:07.345 -->
00:34:14.740vision on innovation, on open innovation that this might be 1 of the future scenarios that comes true. Right? That the pool of open source
528
00:34:16.000 -->
00:34:16.980innovation becomes
529
00:34:17.440 -->
00:34:20.339as big in other sectors has become in databases
530
00:34:20.815 -->
00:34:21.475and developer
531
00:34:22.015 -->
00:34:25.875tooling. Nonetheless, well, we have made Flex Measures possible to create plug ins.
532
00:34:26.415 -->
00:34:26.915And
533
00:34:27.455 -->
00:34:41.105oftentimes, the customer says, well, if you're developing something here about our processes, I don't want that to be public. Or, if I pay you to do something, I don't want it to be public. And with the plug ins, that's very possible, of course. Then you have
534
00:34:41.405 -->
00:34:43.105Flex Measures as an open platform.
535
00:34:43.485 -->
00:34:45.745And, also, Timely Believes is open,
536
00:34:46.060 -->
00:34:47.119and we occasionally
537
00:34:47.420 -->
00:34:53.680open up other projects that we work on. For instance, I mentioned that, Home Assistant plug in in the in the vehicles to grid
538
00:34:53.980 -->
00:34:55.200project that's open.
539
00:34:55.505 -->
00:34:56.805I think we have a couple
540
00:34:57.265 -->
00:34:58.085closed repositories
541
00:34:58.385 -->
00:35:00.485lying around right now with work for customers.
542
00:35:01.105 -->
00:35:03.125It's something that's maybe not ready for the world.
543
00:35:03.425 -->
00:35:04.485It will always happen.
544
00:35:05.000 -->
00:35:11.580 I'm also interested in understanding a bit about given the kind of predictive and machine learning focused capabilities
545
00:35:12.025 -->
00:35:14.525that are part of the Flex Measures platform
546
00:35:15.225 -->
00:35:16.685and the fact that you are
547
00:35:17.225 -->
00:35:17.725building
548
00:35:18.105 -->
00:35:19.645predictions about and
549
00:35:23.610 -->
00:35:24.510energy capacity,
550
00:35:25.290 -->
00:35:26.830what are some of the
551
00:35:27.505 -->
00:35:39.210challenges that you face in terms of accounting for whether to bias towards false positives or false negatives, and what levels of uncertainty you're willing to accept in some of those predictions and decisions that you
552
00:35:39.510 -->
00:35:43.050 make? Yeah. That is a very interesting topic to go into.
553
00:35:43.535 -->
00:35:44.995It's difficult to answer
554
00:35:45.535 -->
00:35:48.675without having even more experience. We had
555
00:35:49.295 -->
00:35:51.555a project trying to find out if
556
00:35:52.270 -->
00:36:00.050forecasting should be done with something very sophisticated. You know? You can use linear regression to forecast, let's say, the solar production,
557
00:36:00.590 -->
00:36:01.490RIMO models,
558
00:36:01.790 -->
00:36:04.105but But you can also use a neural network.
559
00:36:04.645 -->
00:36:07.145We found that the the neural network isn't
560
00:36:07.765 -->
00:36:08.245really better
561
00:36:08.965 -->
00:36:12.619that much better, and you don't know what's going on. And just recently,
562
00:36:13.320 -->
00:36:14.780I saw a paper come by
563
00:36:15.320 -->
00:36:19.420that some researchers even confirmed that. So for time series forecasting,
564
00:36:20.445 -->
00:36:24.225currently, there doesn't seem to be a reason to become very sophisticated.
565
00:36:25.165 -->
00:36:26.865What we did do was
566
00:36:27.329 -->
00:36:28.150we saw that
567
00:36:28.849 -->
00:36:29.910there is algorithms
568
00:36:30.849 -->
00:36:32.549which tell you about the uncertainty
569
00:36:33.650 -->
00:36:35.730that lies in the prediction. So it's mostly,
570
00:36:36.130 -->
00:36:36.630ensemble
571
00:36:37.565 -->
00:36:39.664algorithms like random forest.
572
00:36:40.525 -->
00:36:47.240They have, you know, a lot of forecast and then make a a mean forecast, but they tell you how far all of the others
573
00:36:47.620 -->
00:36:48.600were distributed.
574
00:36:49.060 -->
00:36:49.560And
575
00:36:50.340 -->
00:36:57.695that information can potentially, of course, be useful for exactly your question that you know that some forecasts are
576
00:36:58.555 -->
00:36:59.055shaky,
577
00:36:59.755 -->
00:37:01.375and you might decide
578
00:37:02.369 -->
00:37:06.950for a scheduling algorithm that there's a policy of not acting in those situations.
579
00:37:07.809 -->
00:37:14.644And that's something I didn't mention about the timely beliefs data model. 1 column in the belief data frame is the uncertainty. So how certain
580
00:37:15.345 -->
00:37:21.089forecast, for instance, would be. And it reminds me of a setting we have in a scheduling algorithm right now.
581
00:37:21.470 -->
00:37:22.769For the battery charging,
582
00:37:23.710 -->
00:37:26.8491 property you need then is, round trip efficiency.
583
00:37:27.695 -->
00:37:28.195So
584
00:37:28.895 -->
00:37:29.875you can discharge
585
00:37:30.175 -->
00:37:30.915a battery.
586
00:37:31.455 -->
00:37:33.635Let's say, you discharge 1 kilowatt hour
587
00:37:34.255 -->
00:37:35.875and then you charge that back.
588
00:37:36.280 -->
00:37:38.060Let's say the other 1 around. You charge it
589
00:37:38.360 -->
00:37:40.060first and then you discharge it,
590
00:37:40.360 -->
00:37:45.740and you've made some arbitrage because your 24 hourly prices had this nice difference
591
00:37:46.175 -->
00:37:49.315or that some difference. But the battery is not 100% efficient,
592
00:37:49.695 -->
00:37:52.355so you end up maybe that it's 80% efficient,
593
00:37:52.975 -->
00:37:54.915could become 90% in some batteries.
594
00:37:55.580 -->
00:37:58.160So you're losing some of that power in that process.
595
00:37:58.940 -->
00:37:59.440And
596
00:37:59.900 -->
00:38:04.400it's very important to model that so that the scheduling algorithm then sometimes does nothing.
597
00:38:04.725 -->
00:38:07.065Price difference difference is too low,
598
00:38:07.525 -->
00:38:14.105then it doesn't make sense to do all that. So sometimes the schedule is to do nothing even if there are some price differences. And I see the
599
00:38:14.579 -->
00:38:19.960policy of doing nothing if the uncertainty is too high, and that's a similar thing.
600
00:38:20.339 -->
00:38:22.795 In your work of building flex measures
601
00:38:23.095 -->
00:38:27.435and working with different companies to help implement it and
602
00:38:27.735 -->
00:38:36.050providing it to the community and working with people who are using it for their own purposes. What are some of the most interesting or innovative or unexpected ways that you've seen flex measures applied?
603
00:38:36.434 -->
00:38:37.654 There's not that much,
604
00:38:38.115 -->
00:38:42.855but there was a project where flex measures wasn't even being used for any scheduling,
605
00:38:43.395 -->
00:38:44.214which is
606
00:38:45.119 -->
00:38:49.299basically the end goal of using Flex Measures is to have a schedule and
607
00:38:49.760 -->
00:38:53.059then change the times when you do use energy.
608
00:38:53.674 -->
00:38:56.414And in that case, it was a project where it was
609
00:38:56.714 -->
00:38:58.095just so useful to
610
00:38:58.635 -->
00:39:02.174use Flex Measures to just be a plain energy management system,
611
00:39:02.530 -->
00:39:06.710getting all this data together with data pipelining being done quite fast,
612
00:39:07.329 -->
00:39:13.375but then not doing forecasting but in doing something else. There was a different algorithm that was basically some advanced analytics.
613
00:39:14.155 -->
00:39:18.575And it didn't you have to use electricity. It was about gas consumption in in industry.
614
00:39:19.069 -->
00:39:21.809So that is possible, but that's not where I want to take it.
615
00:39:22.270 -->
00:39:32.115 In your work of building the project and building a business around it and donating it to the community, what are some of the most interesting or unexpected or challenging lessons that you've learned in the process?
616
00:39:32.815 -->
00:39:37.155 Something that you have to learn on your own is how long it takes to integrate
617
00:39:37.695 -->
00:39:38.195data
618
00:39:38.810 -->
00:39:41.310that constantly flows and that has these
619
00:39:42.090 -->
00:39:45.070intricacies that I mentioned earlier about time series
620
00:39:45.690 -->
00:39:48.350that you could get slightly wrong. It could be
621
00:39:48.735 -->
00:39:51.075you get the time zone slightly wrong or
622
00:39:51.375 -->
00:39:51.875somebody
623
00:39:52.255 -->
00:39:54.515sends you data that isn't localized.
624
00:39:55.670 -->
00:39:56.410You might
625
00:39:57.109 -->
00:39:59.770be 1 hour off half of the year.
626
00:40:00.230 -->
00:40:02.010Your whole schedule will not be good.
627
00:40:02.470 -->
00:40:13.645They also might, send you data that gets the daylight saving time wrong, and then there might be 2 hours in the year where you fail when daylight saving time is switching back and forth.
628
00:40:14.320 -->
00:40:16.100And, yeah, the sheer amount
629
00:40:16.560 -->
00:40:17.060of
630
00:40:17.440 -->
00:40:20.020attention and work that gets into that
631
00:40:20.560 -->
00:40:26.005is is quite staggering. We had an industry client with a partner who does the censoring,
632
00:40:26.865 -->
00:40:29.685and they didn't have the API ready for us. So
633
00:40:30.145 -->
00:40:30.724it was
634
00:40:31.160 -->
00:40:38.220not what I had expected in 2021 from that kind of player. What we could get from them was emails with Excel spreadsheets,
635
00:40:39.145 -->
00:40:49.920And we decided that they send us 3 per day. So every 8 hours, we have we wrote a Flexner's plug in that has its own command line interface command to just handle that email
636
00:40:50.460 -->
00:40:51.839and get the data in.
637
00:40:52.539 -->
00:40:55.760Yeah. You can imagine that that prolongs that kind of pilot
638
00:40:56.299 -->
00:40:56.799considerably.
639
00:40:57.444 -->
00:40:59.545 Yeah. It's definitely remarkable
640
00:40:59.845 -->
00:41:00.505how much
641
00:41:00.885 -->
00:41:01.545of modern
642
00:41:01.924 -->
00:41:06.184data engineering and data management still relies on CSVs and FTP.
643
00:41:06.980 -->
00:41:07.480 Yes.
644
00:41:08.260 -->
00:41:09.320Absolutely. And
645
00:41:09.620 -->
00:41:12.840if you look at the energy sector as a whole that these kind of experiences,
646
00:41:13.700 -->
00:41:14.5201 dimension
647
00:41:15.865 -->
00:41:27.250towards the realization that there will not be 1 end to end solution that can be used across the whole country or across a continent that that will just take over. We have to
648
00:41:27.710 -->
00:41:28.850build a lot of
649
00:41:29.550 -->
00:41:31.010unique end solutions.
650
00:41:31.924 -->
00:41:33.224Let's call them apps
651
00:41:33.684 -->
00:41:37.385that work differently in different energy systems, countries,
652
00:41:37.924 -->
00:41:39.144cultural contexts,
653
00:41:40.160 -->
00:41:40.660sectors.
654
00:41:41.440 -->
00:41:42.420And I think
655
00:41:43.040 -->
00:41:46.260flex measures can be a basis for all of that, but you always need to
656
00:41:46.720 -->
00:41:48.660put something on top that really fits
657
00:41:49.325 -->
00:41:50.225to that situation.
658
00:41:50.845 -->
00:41:53.745 For people who are interested in being able
659
00:41:54.285 -->
00:42:05.420to gain some more insight and potentially act on the different aspects of energy usage, whether it's at the residential or industrial or grid scale? What are the cases where Flex Measures is the wrong choice?
660
00:42:05.835 -->
00:42:10.255 I've mentioned that earlier, but there are some people who have to act within seconds.
661
00:42:10.875 -->
00:42:14.460And that's usually if you're really taking part in this first
662
00:42:15.160 -->
00:42:15.980reserve mechanism
663
00:42:16.440 -->
00:42:18.140reacting to balancing problems,
664
00:42:19.240 -->
00:42:20.460frequency things.
665
00:42:21.275 -->
00:42:21.775And
666
00:42:22.315 -->
00:42:30.175we have put a lot of focus on flex measures to be developer friendly and correct about the data so that developers really understand what they're building.
667
00:42:31.210 -->
00:42:33.869And we haven't made it, you know, a Rust project
668
00:42:34.569 -->
00:42:36.670that lets you do all that within seconds.
669
00:42:37.210 -->
00:42:40.269 As you continue to build and iterate on the project
670
00:42:40.734 -->
00:42:50.035and continue to iterate on the business that you're building on top of it, what are some of the things you have planned for the near to medium term or any particular problem areas that you're excited to dig into?
671
00:42:50.580 -->
00:42:53.400 Yeah. So first, about the FlexVicious project,
672
00:42:54.340 -->
00:42:54.920I think
673
00:42:55.380 -->
00:42:58.520what we really could do with that project is to support
674
00:42:59.065 -->
00:43:01.805the 2 groups of users that I see
675
00:43:02.585 -->
00:43:03.725in what they are
676
00:43:04.025 -->
00:43:08.525doing as a as a first steps. So I see the first group as being the 90%
677
00:43:09.450 -->
00:43:09.950users
678
00:43:10.650 -->
00:43:12.430who have a use case that
679
00:43:13.530 -->
00:43:14.270really happens
680
00:43:15.290 -->
00:43:19.585a lot in the world, and Flex Measures should support out of the box
681
00:43:20.204 -->
00:43:21.105that the optimization
682
00:43:21.484 -->
00:43:25.345for that use case can be done within, you know, a few hours.
683
00:43:25.680 -->
00:43:31.220Data integration plus having that optimization work should be a few hours. So that that's a a little bit of a benchmark.
684
00:43:31.840 -->
00:43:33.140Let's say, as an example,
685
00:43:34.085 -->
00:43:37.704somebody has solar on the roof and there's somehow
686
00:43:38.244 -->
00:43:41.065a battery, a home battery, or an electric car,
687
00:43:41.950 -->
00:43:43.730and they have a dynamic tariff.
688
00:43:44.589 -->
00:43:48.530That might happen a lot in the next years across the world, something like that.
689
00:43:49.685 -->
00:43:51.465And that should just work. And,
690
00:43:52.565 -->
00:43:55.465basically, that does work now. What we have to do is documentation,
691
00:43:56.165 -->
00:43:57.545write an excellent tutorial
692
00:43:58.510 -->
00:43:59.250so that
693
00:43:59.630 -->
00:44:01.010everybody could do that.
694
00:44:01.470 -->
00:44:04.850And there's probably a list of 4 or 5 more of these
695
00:44:05.710 -->
00:44:06.210situations
696
00:44:07.265 -->
00:44:08.405that should just work.
697
00:44:08.705 -->
00:44:11.605And the other group of users are the power users
698
00:44:12.625 -->
00:44:16.565that really have a unique problem and may come with their unique
699
00:44:17.490 -->
00:44:18.870idea of solving it.
700
00:44:19.250 -->
00:44:21.510And then I'm talking mostly about the algorithms.
701
00:44:22.610 -->
00:44:23.990Right now, you can already
702
00:44:24.785 -->
00:44:26.565plug in your own scheduling algorithm.
703
00:44:27.265 -->
00:44:30.485Or to be honest, at the time of recording, that is a PR I'm
704
00:44:31.345 -->
00:44:32.165having reviewed.
705
00:44:32.869 -->
00:44:35.930But that's really important for some people. That's researchers,
706
00:44:36.790 -->
00:44:37.290certainly.
707
00:44:38.470 -->
00:44:42.010That's their whole line of work to come up with better algorithms.
708
00:44:42.855 -->
00:44:45.915Maybe find that neural network algorithm that really does make the difference.
709
00:44:46.535 -->
00:44:49.515But you see that also in some companies really have
710
00:44:49.950 -->
00:44:54.609certainly an industry that just have their unique challenge. And they should be using flex measures,
711
00:44:55.390 -->
00:44:59.365you know, as is and then just change that 1 thing that there's
712
00:44:59.825 -->
00:45:00.885a common interface
713
00:45:01.345 -->
00:45:02.244with how
714
00:45:03.025 -->
00:45:05.765the question to make a new schedule is described.
715
00:45:06.640 -->
00:45:11.780But they could, in the back, just switch out the algorithm that is used to make the schedule.
716
00:45:12.240 -->
00:45:14.580I think these 2 groups of users deserve
717
00:45:14.975 -->
00:45:16.355each of their own dedicated
718
00:45:17.135 -->
00:45:24.435tutorials by us to really make it clear, to make it a joy to do so much as our work. I mentioned 2 sectors that we're working on.
719
00:45:24.859 -->
00:45:25.599The industry
720
00:45:26.619 -->
00:45:28.720world is very interesting and challenging,
721
00:45:29.740 -->
00:45:31.280but it's also very diverse.
722
00:45:31.820 -->
00:45:33.119Right now, those environments,
723
00:45:33.445 -->
00:45:35.785what excites me the most, and I'm I'm talking to
724
00:45:36.325 -->
00:45:39.065companies there that really understood the scale
725
00:45:39.525 -->
00:45:43.800that I mentioned earlier, they have renovate or we modernized the whole portfolio
726
00:45:44.180 -->
00:45:48.119within a very short amount of years. So scale is their big topic.
727
00:45:48.660 -->
00:45:51.160And the third thing I didn't mention is microgrids.
728
00:45:51.925 -->
00:45:55.145So microgrid is your own little electricity grid
729
00:45:55.445 -->
00:45:56.345that is connected
730
00:45:56.965 -->
00:45:58.745maybe to the main grid
731
00:45:59.045 -->
00:45:59.785or not,
732
00:46:00.150 -->
00:46:02.890completely run on its own. And that's a situation
733
00:46:03.830 -->
00:46:06.730that we might see all across the world. So there might be
734
00:46:07.110 -->
00:46:07.610more
735
00:46:08.635 -->
00:46:10.495self serving neighborhoods
736
00:46:11.755 -->
00:46:13.135that are not completely
737
00:46:13.835 -->
00:46:21.520dependent on the grid in Western countries, but certainly in Africa, that's something that's just the 1 way to go for a lot of regions.
738
00:46:22.060 -->
00:46:28.205There are some interesting companies there that I hope to do more with in the near future because Flex Measures should be able to
739
00:46:29.245 -->
00:46:29.745basically
740
00:46:30.045 -->
00:46:31.185run a small village.
741
00:46:31.725 -->
00:46:36.445You might think there's too many assets, but what really matters is the flexible assets. So that's where
742
00:46:37.400 -->
00:46:42.700that defines how much flex flex measures has to do, how many flexible things are there.
743
00:46:43.320 -->
00:46:43.820Emobility
744
00:46:44.200 -->
00:46:46.940is making huge steps in Africa, certainly.
745
00:46:47.835 -->
00:46:48.335We're
746
00:46:48.795 -->
00:46:55.295hoping to be involved in a project in Victoria Lake where all the fishers get upgraded to electric boats, for instance,
747
00:46:55.870 -->
00:46:58.450And they use energy for productive uses,
748
00:46:59.390 -->
00:47:01.570like cooling the fish they caught,
749
00:47:01.950 -->
00:47:02.850water purification.
750
00:47:04.110 -->
00:47:12.605That's all flex it's all something you can shift around in the day. And then flexiators can really help, for instance, in the design phase already to not buy oversized
751
00:47:13.065 -->
00:47:13.565equipment.
752
00:47:14.180 -->
00:47:28.505 I don't think you will become rich in Africa, but that's something I'd really like to be involved in. Well, for anybody who wants to get in touch with you and follow along with the work that you're doing, I'll have you add your preferred contact information to the show notes. And so with that, I'll move us into the picks.
753
00:47:28.805 -->
00:47:44.975This week, I'm going to choose the show She Hulk from the Disney plus. Just a fun and goofy show. Some interesting storyline there, so I've been enjoying watching that. So I recommend that for people who are looking for something to do in the evening. And with that, I'll pass it you, Nicholas. Do you have any pics this week?
754
00:47:45.595 -->
00:47:48.815 Yeah. I'm watching a very nice German series on Netflix,
755
00:47:49.595 -->
00:47:50.735and it's called KLEO,
756
00:47:51.275 -->
00:47:52.895k l e o.
757
00:47:53.480 -->
00:47:55.180It has a bit of kill bill
758
00:47:55.800 -->
00:47:57.580visuals because it's an ex
759
00:47:58.360 -->
00:48:00.380agent from the East German
760
00:48:00.885 -->
00:48:04.425Ministry of Defense who got thrown into jail. And she
761
00:48:04.725 -->
00:48:10.425comes out of jail right when the wall has been torn down and tries to find out what happened, who did it.
762
00:48:10.990 -->
00:48:13.890It's not just Kill Bill, but it's also charming and funny.
763
00:48:14.270 -->
00:48:32.390 Thank you very much for taking the time today to join me and share the work that you're doing on flex measures. It's definitely a very interesting project in a very important area of effort. So I appreciate all the time and energy that you and the other contributors are putting into that. And I hope you enjoy the rest of your day. Thanks, Tobias. It was a joy to be here.
764
00:48:34.690 -->
00:48:36.595Thank you for listening. Don't forget to
765
00:48:46.660 -->
00:48:47.720Visit the site at pythonpodcast.com
766
00:48:48.820 -->
00:48:56.965to subscribe to the show, sign up for the mailing list, and read the show notes. And if you learned something or tried out a project from the show, then tell us about it. Email host hostpythonpodcast.com
767
00:48:58.065 -->
00:48:58.885with your story.
768
00:48:59.265 -->
00:49:04.165And to help other people find the show, please leave a review on Apple Podcasts and tell your friends and coworkers.