diff --git a/manifest.webapp b/manifest.webapp index a87b9627ebe4cebacdf2319ec1cb138d7a63b5c8..f843cc5b0616eaaf6a36213e5d36e511121931ca 100644 --- a/manifest.webapp +++ b/manifest.webapp @@ -3,7 +3,7 @@ "slug": "ecolyo", "icon": "icon.svg", "categories": ["energy"], - "version": "0.2.0", + "version": "0.2.1", "licence": "AGPL-3.0", "editor": "Métropole de Lyon", "default_locale": "fr", diff --git a/package.json b/package.json index b08ff042f9eb45b8e9b465a60679df109a450239..513387fbece506ed4a826dee76476602a115e755 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ecolyo", - "version": "0.2.0", + "version": "0.2.1", "scripts": { "tx": "tx pull --all || true", "lint": "yarn lint:js && yarn lint:styles", diff --git a/src/assets/png/logo-TIGA.png b/src/assets/png/logo-TIGA.png new file mode 100644 index 0000000000000000000000000000000000000000..61ecc3837b44aa77b297e1fa3bbdb411599ed448 Binary files /dev/null and b/src/assets/png/logo-TIGA.png differ diff --git a/src/components/Challenge/AvailableChallengeDetailsView.tsx b/src/components/Challenge/AvailableChallengeDetailsView.tsx index 4d27c68daaae23c1f53079f9599135b6d01e2a9f..8ddd3fc2daf1b4329b4dfd89d2a0a192c07a9860 100644 --- a/src/components/Challenge/AvailableChallengeDetailsView.tsx +++ b/src/components/Challenge/AvailableChallengeDetailsView.tsx @@ -15,6 +15,7 @@ import { currentChallengeState } from 'atoms/challenge.state' import ChallengeService from 'services/challenge.service' import ConsumptionService from 'services/consumption.service' import UserProfileService from 'services/userProfile.service' +import { getLagDays } from 'utils/date' import CozyBar from 'components/Header/CozyBar' import Header from 'components/Header/Header' @@ -113,34 +114,33 @@ const AvailableChallengeDetailsView: React.FC<AvailableChallengeDetailsViewProps useEffect(() => { let subscribed = true - if (challengeState) { - const lag = challengeService.getLagDays(fluidTypes) + async function checkPreviousData() { + const lag = getLagDays(fluidTypes) const firstDayOfPreviousPeriod = challengeState.duration.days const timePeriod = { startDate: DateTime.local() - .plus({ days: -firstDayOfPreviousPeriod }) + .plus({ days: -firstDayOfPreviousPeriod - lag }) .startOf('day'), endDate: DateTime.local() .plus({ days: -lag }) .endOf('day'), } - - async function checkPreviousData() { - const consumptionService = new ConsumptionService(client) - const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( - timePeriod, - 20, - fluidTypes - ) - if (fetchedPerformanceIndicators && subscribed) { - fetchedPerformanceIndicators.forEach(element => { - if (!element.value) setLackOfDataForChallenge(true) - }) - } else { - setLackOfDataForChallenge(true) - } - setIsLoaded(true) + const consumptionService = new ConsumptionService(client) + const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( + timePeriod, + 20, + fluidTypes + ) + if (fetchedPerformanceIndicators && subscribed) { + fetchedPerformanceIndicators.forEach(element => { + if (!element.value) setLackOfDataForChallenge(true) + }) + } else { + setLackOfDataForChallenge(true) } + setIsLoaded(true) + } + if (challengeState && subscribed) { checkPreviousData() setChallenge(challengeState) } diff --git a/src/components/Challenge/ChallengeList.tsx b/src/components/Challenge/ChallengeList.tsx index 87fa86592402ff5c71f7c0507bc9810c64ce8d52..03c0faf0832ba835b84695125058f3f77e620530 100644 --- a/src/components/Challenge/ChallengeList.tsx +++ b/src/components/Challenge/ChallengeList.tsx @@ -8,8 +8,10 @@ import { fluidTypeState } from 'atoms/fluidState.state' import { challengeNotificationState } from 'atoms/notification.state' import { screenTypeState } from 'atoms/screenType.state' import { currentChallengeState } from 'atoms/challenge.state' +import { userProfileState } from 'atoms/userProfile.state' import { ChallengeType, UserChallenge } from 'models' import ChallengeService from 'services/challenge.service' +import UserProfileService from 'services/userProfile.service' import StyledChallengeSpinner from 'components/CommonKit/Spinner/StyledChallengeSpinner' import ChallengeListItem from 'components/Challenge/ChallengeListItem' @@ -19,12 +21,14 @@ const ChallengeList: React.FC = () => { const client = useClient() const screenType = useRecoilValue(screenTypeState) const fluidTypes = useRecoilValue(fluidTypeState) + const [userProfile, setUserProfile] = useRecoilState(userProfileState) const [challengeNotification, setChallengeNotification] = useRecoilState( challengeNotificationState ) const setCurrentChallenge = useSetRecoilState(currentChallengeState) const challengeService = new ChallengeService(client) + const userProfileService = new UserProfileService(client) const [ ongoingChallenge, setOngoingChallenge, @@ -42,7 +46,6 @@ const ChallengeList: React.FC = () => { const [openChallengeModal, setOpenChallengeModal] = useState(false) const [scroll, setScroll] = useState(0) const [paddingBottom, setPaddingBottom] = useState(0) - const [userLevel, setUserLevel] = useState<null | number>(null) const handleCloseClick = () => { setOngoingChallenge(null) @@ -95,8 +98,7 @@ const ChallengeList: React.FC = () => { fluidTypes ) const dataAllUC = await challengeService.getAllUserChallenges() - const levelOfUser = await challengeService.getUserLevel() - if (subscribed && dataAllCT && dataAllUC && levelOfUser) { + if (subscribed && dataAllCT && dataAllUC) { const ongoingChallengeTmp = dataAllUC.filter( challenge => challenge.state === ChallengeState.ONGOING )[0] @@ -105,10 +107,12 @@ const ChallengeList: React.FC = () => { setUserChallenges(dataAllUC) setOngoingChallenge(ongoingChallengeTmp) setOngoingChallengeModal(ongoingChallengeTmp) - setUserLevel(levelOfUser) if (challengeNotification) { setOpenChallengeModal(true) await challengeService.endChallenge(ongoingChallengeTmp, fluidTypes) + await userProfileService.getUserProfile().then(updatedUserProfile => { + updatedUserProfile && setUserProfile(updatedUserProfile) + }) setCurrentChallenge(null) setChallengeNotification(false) setOngoingChallenge(null) @@ -128,12 +132,10 @@ const ChallengeList: React.FC = () => { fluidTypes ) const dataAllUC = await challengeService.getAllUserChallenges() - const levelOfUser = await challengeService.getUserLevel() - if (subscribed && dataAllCT && dataAllUC && levelOfUser) { + if (subscribed && dataAllCT && dataAllUC) { setChallengesType(dataAllCT) setUserChallenges(dataAllUC) setRightChallengeInTheMiddle(dataAllCT, dataAllUC) - setUserLevel(levelOfUser) } } loadNewChallengesType() @@ -164,7 +166,7 @@ const ChallengeList: React.FC = () => { {challengesType.map((challenge, index) => index === challengesType.length - 1 && !ongoingChallenge && - userLevel === + userProfile.level === challengesType[challengesType.length - 1].level ? ( <ChallengeListItem key={index} diff --git a/src/components/Challenge/ChallengeTimeline.tsx b/src/components/Challenge/ChallengeTimeline.tsx index 55e41e7ef637deb523258fdaf47c00159c3e7caf..5f81faf3b3905f4f01a26e23ff55493480805e99 100644 --- a/src/components/Challenge/ChallengeTimeline.tsx +++ b/src/components/Challenge/ChallengeTimeline.tsx @@ -1,9 +1,8 @@ import React from 'react' -import { useClient } from 'cozy-client' import { DateTime, Interval } from 'luxon' import { UserChallenge } from 'models' -import ChallengeService from 'services/challenge.service' +import { getLagDays } from 'utils/date' interface ChallengeTimelineViewProps { challenge: UserChallenge @@ -12,14 +11,11 @@ interface ChallengeTimelineViewProps { const ChallengeTimeline: React.FC<ChallengeTimelineViewProps> = ({ challenge, }: ChallengeTimelineViewProps) => { - const client = useClient() - const challengeService = new ChallengeService(client) - const viewingDate = () => { if (challenge && challenge.challengeType) { const startingDate = challenge.startingDate return startingDate.plus({ - days: challengeService.getLagDays(challenge.fluidTypes), + days: getLagDays(challenge.fluidTypes), }) } else { return DateTime.local() diff --git a/src/components/Challenge/ChallengeViewingDate.tsx b/src/components/Challenge/ChallengeViewingDate.tsx index 44726b16894aee0369bc9c0e359266222de20f97..037ffbfba637a651ce894ebc66d447a09446f75c 100644 --- a/src/components/Challenge/ChallengeViewingDate.tsx +++ b/src/components/Challenge/ChallengeViewingDate.tsx @@ -1,10 +1,9 @@ import React, { useState, useEffect } from 'react' import { useI18n } from 'cozy-ui/transpiled/react' -import { useClient } from 'cozy-client' import { DateTime } from 'luxon' import { UserChallenge } from 'models' -import ChallengeService from 'services/challenge.service' +import { getLagDays } from 'utils/date' interface ChallengeViewingDateProps { challenge: UserChallenge @@ -14,8 +13,6 @@ const ChallengeViewingDate: React.FC<ChallengeViewingDateProps> = ({ challenge, }: ChallengeViewingDateProps) => { const { t } = useI18n() - const client = useClient() - const challengeService = new ChallengeService(client) const [firstDateWithData, setFirstDateWithData] = useState<DateTime | null>( null ) @@ -28,15 +25,15 @@ const ChallengeViewingDate: React.FC<ChallengeViewingDateProps> = ({ useEffect(() => { if (challenge) { - const lag = challengeService.getLagDays(challenge.fluidTypes) + const lag = getLagDays(challenge.fluidTypes) setFirstDateWithData( challenge.startingDate.plus({ - days: lag, + days: lag - 1, }) ) setLastDateWithData( challenge.endingDate.plus({ - days: lag, + days: lag - 1, }) ) } diff --git a/src/components/Challenge/OngoingChallengeDetailsView.tsx b/src/components/Challenge/OngoingChallengeDetailsView.tsx index 00f0c4a7ed60be66a8f6451b55bd8312c15518c8..cd9ddaf7c7286c1639d6d89363d3a36f2231a876 100644 --- a/src/components/Challenge/OngoingChallengeDetailsView.tsx +++ b/src/components/Challenge/OngoingChallengeDetailsView.tsx @@ -5,10 +5,11 @@ import { useClient } from 'cozy-client' import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' import { Location } from 'history' -import { ChallengeState, TypeChallenge } from 'enum/challenge.enum' +import { TypeChallenge } from 'enum/challenge.enum' import { ScreenType } from 'enum/screen.enum' import { UserChallenge, UserProfile } from 'models' import { userProfileState } from 'atoms/userProfile.state' +import { fluidTypeState } from 'atoms/fluidState.state' import { screenTypeState } from 'atoms/screenType.state' import { currentChallengeState } from 'atoms/challenge.state' import ChallengeService from 'services/challenge.service' @@ -38,6 +39,7 @@ const OngoingChallengeDetailsView: React.FC<OngoingChallengeDetailsViewProps> = const { t } = useI18n() const client = useClient() const screenType = useRecoilValue(screenTypeState) + const fluidTypes = useRecoilValue(fluidTypeState) const [userProfile, setUserProfile] = useRecoilState<UserProfile>( userProfileState ) @@ -51,6 +53,7 @@ const OngoingChallengeDetailsView: React.FC<OngoingChallengeDetailsViewProps> = const [maxEnergy, setMaxEnergy] = useState<number | null>(0) const challengeService = new ChallengeService(client) + const userProfileService = new UserProfileService(client) const defineHeaderHeight = (height: number) => { setHeaderHeight(height) @@ -58,7 +61,6 @@ const OngoingChallengeDetailsView: React.FC<OngoingChallengeDetailsViewProps> = const updateUserProfileNotification = useCallback( async (ecogestureList: string[]) => { - const userProfileService = new UserProfileService(client) await userProfileService .updateUserProfile({ notificationEcogesture: ecogestureList }) .then(updatedUserProfile => { @@ -69,7 +71,7 @@ const OngoingChallengeDetailsView: React.FC<OngoingChallengeDetailsViewProps> = ) async function stopChallenge(_challenge: UserChallenge) { - if (_challenge) { + if (_challenge && _challenge.id) { await challengeService.cancelChallenge(_challenge.id) const updatednotificationEcogesture = userProfile.notificationEcogesture.filter( (x: string) => diff --git a/src/components/Navbar/Navbar.tsx b/src/components/Navbar/Navbar.tsx index 0b617b9b22b7610edcf78765ce37710e498bc8dc..7850d048e0a7884822f9126856141c4fdaf0f318 100644 --- a/src/components/Navbar/Navbar.tsx +++ b/src/components/Navbar/Navbar.tsx @@ -11,6 +11,7 @@ import ParameterIconOff from 'assets/icons/tabbar/parametre/parametre-off.svg' import EcogestesIconOn from 'assets/icons/tabbar/ecogeste/ecogeste-on.svg' import EcogestesIconOff from 'assets/icons/tabbar/ecogeste/ecogeste-off.svg' import logoGrandLyon from 'assets/icons/tabbar/grand-lyon.svg' +import logoTiga from 'assets/png/logo-TIGA.png' import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import { useRecoilValue } from 'recoil' import { challengeNotificationState } from 'atoms/notification.state' @@ -72,7 +73,14 @@ export const Navbar = () => { </li> </ul> </nav> - <StyledIcon className="logo-grand-lyon" icon={logoGrandLyon} size={100} /> + <div className="logos-container"> + <StyledIcon + className="logo-grand-lyon" + icon={logoGrandLyon} + size={100} + /> + <img className="logo-tiga" src={logoTiga} /> + </div> </aside> ) } diff --git a/src/components/Options/OptionsView.tsx b/src/components/Options/OptionsView.tsx index e4ec05a44bc8765002de3cdcce0f2b4320fe43b7..c490de43fb3f3361768b3c176e1535839358899a 100644 --- a/src/components/Options/OptionsView.tsx +++ b/src/components/Options/OptionsView.tsx @@ -8,6 +8,10 @@ import FAQLink from 'components/FAQ/FAQLink' import LegalNoticeLink from 'components/LegalNotice/LegalNoticeLink' import Version from 'components/Version/Version' +import StyledIcon from 'components/CommonKit/Icon/StyledIcon' +import logoGrandLyon from 'assets/icons/tabbar/grand-lyon.svg' +import logoTiga from 'assets/png/logo-TIGA.png' + const OptionsView: React.FC = () => { const [headerHeight, setHeaderHeight] = useState<number>(0) const defineHeaderHeight = (height: number) => { @@ -25,6 +29,14 @@ const OptionsView: React.FC = () => { {/* <ReportOptions /> */} <FAQLink /> <LegalNoticeLink /> + <div className="parameters-logos"> + <StyledIcon + className="logo-grand-lyon-parameters" + icon={logoGrandLyon} + size={100} + /> + <img className="logo-tiga-parameters" src={logoTiga} /> + </div> <Version /> </Content> </> diff --git a/src/components/Splash/SplashRoot.tsx b/src/components/Splash/SplashRoot.tsx index a0f4711934e7cf5a221a9ebe1ecff28c3aaf1832..35a6583ebb67ea341c4c280d459c99595be4bf9e 100644 --- a/src/components/Splash/SplashRoot.tsx +++ b/src/components/Splash/SplashRoot.tsx @@ -79,16 +79,13 @@ const SplashRoot = ({ } setUserProfile(profile) await initializationService.initUserChallenge() - // const fluidTypes = await initializationService.initFluidTypes() - // setFluidTypeState(fluidTypes) const fluidStatus = await initializationService.initFluidStatus() setFluidStatusState(fluidStatus) const currentChallenge = await initializationService.initCurrentChallenge() if (currentChallenge) { setCurrentChallengeState(currentChallenge) const isChallengeOver = await initializationService.isCurrentChallengeOver( - currentChallenge, - fluidTypes + currentChallenge ) setChallengeNotificationState(isChallengeOver) } diff --git a/src/components/Splash/SplashScreen.tsx b/src/components/Splash/SplashScreen.tsx index e7d587555f91bf82bf286bc4388e433b9179bc0c..706d00ec6836dda36163e2a30f2438557751ab0c 100644 --- a/src/components/Splash/SplashScreen.tsx +++ b/src/components/Splash/SplashScreen.tsx @@ -1,7 +1,10 @@ import React from 'react' import Lottie from 'react-lottie' +import logoGrandLyon from 'assets/icons/tabbar/grand-lyon.svg' +import logoTiga from 'assets/png/logo-TIGA.png' import * as loadingData from 'assets/anims/splash.json' +import StyledIcon from 'components/CommonKit/Icon/StyledIcon' const loadingOptions = { loop: true, @@ -17,6 +20,14 @@ const SplashScreen: React.FC = () => { <> <div className="splash-content"> <Lottie options={loadingOptions} height={300} width={300} /> + <div className="splash-logos-container"> + <StyledIcon + className="logo-grand-lyon" + icon={logoGrandLyon} + size={100} + /> + <img className="logo-tiga" src={logoTiga} /> + </div> </div> <div className="splash-footer"></div> </> diff --git a/src/components/Splash/SplashScreenError.tsx b/src/components/Splash/SplashScreenError.tsx index 0ba708c157a512dfabf1a64b1dd40ff1f2e9b171..0999d9b77eab098e4133d3b7d98d0ff462173840 100644 --- a/src/components/Splash/SplashScreenError.tsx +++ b/src/components/Splash/SplashScreenError.tsx @@ -2,6 +2,9 @@ import React from 'react' import { useI18n } from 'cozy-ui/transpiled/react' import Lottie from 'react-lottie' import StyledButton from 'components/CommonKit/Button/StyledButton' +import logoGrandLyon from 'assets/icons/tabbar/grand-lyon.svg' +import logoTiga from 'assets/png/logo-TIGA.png' +import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import * as loadingData from 'assets/anims/splash.json' @@ -20,6 +23,14 @@ const SplashScreenError: React.FC = () => { <> <div className="splash-content"> <Lottie options={loadingOptions} height={300} width={300} /> + <div className="splash-logos-container"> + <StyledIcon + className="logo-grand-lyon" + icon={logoGrandLyon} + size={100} + /> + <img className="logo-tiga" src={logoTiga} /> + </div> </div> <div className="splash-footer"> <div className="splash-footer-error-text text-16-normal"> diff --git a/src/cozy-client.d.ts b/src/cozy-client.d.ts index d14548709e101fdbefd8b510a5f111553f9bd903..cd7db7603b4bfe846d8555e07803cce9cb973dd8 100644 --- a/src/cozy-client.d.ts +++ b/src/cozy-client.d.ts @@ -7,6 +7,7 @@ declare module 'cozy-client' { type QueryDefinition = { where(selector: any) include(relations: string[]) + limitBy(limit: number) } type QueryResult = { diff --git a/src/cozy-harvest-lib.d.ts b/src/cozy-harvest-lib.d.ts index 0f45be52b7f5085fb28accb0e6666703ea436cc5..6322ea7904223decd70f287ceb5d859bc3708e0d 100644 --- a/src/cozy-harvest-lib.d.ts +++ b/src/cozy-harvest-lib.d.ts @@ -4,3 +4,4 @@ declare module 'cozy-harvest-lib/dist/connections/triggers' declare module 'cozy-harvest-lib/dist/helpers/triggers' declare module 'cozy-harvest-lib/dist/models/ConnectionFlow' declare module 'cozy-harvest-lib/dist/components/OAuthWindow' +declare module 'cozy-harvest-lib/dist/helpers/oauth' diff --git a/src/db/ecogestureData.json b/src/db/ecogestureData.json index 1fd5f7e766cecda694ac01149d32ef49d1b49c9f..43efa986c1e6c688837688fa526e102dd304e210 100644 --- a/src/db/ecogestureData.json +++ b/src/db/ecogestureData.json @@ -505,4 +505,4 @@ "pack": 0, "nwh": 6 } -] \ No newline at end of file +] diff --git a/src/locales/fr.json b/src/locales/fr.json index 592f3db3a76b2aef0aedd64335f4935781041474..a4931fb5bcabe8c7d61cf7d2f990e8e1fb1373ff 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -195,7 +195,7 @@ "BACK": "I'll be back", "ECOGESTURE": "Voir l'écogeste", "LINKED_ECOGESTURES": "Écogestes associés", - "VIEW_START": "Revenez dans %{smart_count} jour pour voir l'évolution de vos données et découvrir votre objectif |||| Revenez dans %{smart_count} jours pour voir l'évolution de vos données et découvrir votre objectif", + "VIEW_START": "Revenez dans %{smart_count} jour pour voir l'évolution de vos données |||| Revenez dans %{smart_count} jours pour voir l'évolution de vos données", "VIEW_RESULT": "Résultats le ", "PERIOD": "Période de defi", "OK": "Ok", diff --git a/src/services/challenge.service.ts b/src/services/challenge.service.ts index d4c18b512f763324f1f4177178452eabaa61c45a..2cfd3e7c37734bb6aea226654a472245001519cf 100644 --- a/src/services/challenge.service.ts +++ b/src/services/challenge.service.ts @@ -5,7 +5,6 @@ import { CHALLENGETYPE_DOCTYPE, ECOGESTURE_DOCTYPE, USERCHALLENGE_DOCTYPE, - USERPROFILE_DOCTYPE, } from 'doctypes' import UserProfileService from 'services/userProfile.service' @@ -19,6 +18,7 @@ import { TimeStep } from 'enum/timeStep.enum' import { Ecogesture, UserProfile, UserChallenge, ChallengeType } from 'models' import ConsumptionService from 'services/consumption.service' import PerformanceIndicatorService from 'services/performanceIndicator.service' +import { getCompareChallengePeriod, getLagDays } from 'utils/date' export default class ChallengeService { private readonly _client: Client @@ -29,132 +29,86 @@ export default class ChallengeService { this._challengeMapper = new ChallengeMapperService() } - public async getMaxEnergy( - challenge: UserChallenge, - client: Client, - challengeFluidTypes: FluidType[] - ) { - const consumptionService = new ConsumptionService(client) - let durationTimeStep = '' - let duration = 0 - if (challenge && challenge.challengeType) { - durationTimeStep = Object.keys(challenge.challengeType.duration)[0] - duration = (challenge.challengeType.duration as any)[durationTimeStep] + public async updateChallenge( + id: string | undefined, + attributes: { + [key: string]: string | boolean | number | ChallengeState } - const delay = { [durationTimeStep]: -duration } - const startDate = challenge.startingDate.plus(delay) - const endDate = challenge.startingDate.plus({ days: -1 }).endOf('day') - const period = { startDate, endDate } - if (challenge && challenge.challengeType) { - const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( - period, - TimeStep.DAY, - challengeFluidTypes - ) - const performanceIndicatorService = new PerformanceIndicatorService() - const maxEnergy = performanceIndicatorService.aggregatePerformanceIndicators( - fetchedPerformanceIndicators - ) - return maxEnergy.value - } else { - return 0 + ): Promise<UserChallenge | null> { + try { + const { data: userchallenge } = await this._client + .query( + this._client + .find(USERCHALLENGE_DOCTYPE) + .where({ _id: id }) + .limitBy(1) + ) + .then(async ({ data }: any) => { + const doc = data[0] + return await this._client.save({ + ...doc, + ...attributes, + }) + }) + return userchallenge ? userchallenge : null + } catch (err) { + console.log(err) + throw err } } - public async setMaxEnergy( + public async getMaxEnergy( challenge: UserChallenge, - client: Client, challengeFluidTypes: FluidType[] ): Promise<number> { - const consumptionService = new ConsumptionService(client) - let durationTimeStep = '' - let duration = 0 - if (challenge && challenge.challengeType) { - durationTimeStep = Object.keys(challenge.challengeType.duration)[0] - duration = (challenge.challengeType.duration as any)[durationTimeStep] - } - const delay = { [durationTimeStep]: -duration } - const startDate = challenge.startingDate.plus(delay) - const endDate = challenge.startingDate.plus({ days: -1 }).endOf('day') - const period = { startDate, endDate } - if (challenge && challenge.challengeType) { - const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( - period, - TimeStep.DAY, - challengeFluidTypes - ) - const performanceIndicatorService = new PerformanceIndicatorService() - const maxEnergy = performanceIndicatorService.aggregatePerformanceIndicators( - fetchedPerformanceIndicators - ) - if (maxEnergy && maxEnergy.value && maxEnergy.value > 0) { - try { - await this._client - .query( - this._client - .find(USERCHALLENGE_DOCTYPE) - .where({ _id: challenge.id }) - .limitBy(1) - ) - .then(async ({ data }) => { - const doc = data[0] - await this._client.save({ - ...doc, - maxEnergy: maxEnergy.value, - }) - }) - return maxEnergy.value - } catch (error) { - return -1 - } - } - } - return -1 - } - - public async getSpentEnergy( - challenge: UserChallenge, - client: Client, - challengeFluidTypes: FluidType[] - ) { - const lagDays = this.getLagDays(challengeFluidTypes) - if (DateTime.local() > challenge.startingDate.plus({ days: lagDays })) { - const consumptionService = new ConsumptionService(client) - const startDate = challenge.startingDate - let endDate = DateTime.local() - .plus({ days: -lagDays }) - .endOf('day') - if (await this.isChallengeOver(challenge, challengeFluidTypes)) { - endDate = challenge.endingDate.plus({ days: -1 }).endOf('day') - } - const period = { startDate, endDate } + const period = getCompareChallengePeriod(challenge, challengeFluidTypes) + try { if (challenge && challenge.challengeType) { + const consumptionService = new ConsumptionService(this._client) const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( period, TimeStep.DAY, challengeFluidTypes ) const performanceIndicatorService = new PerformanceIndicatorService() - const spentEnergy = performanceIndicatorService.aggregatePerformanceIndicators( + const maxEnergy = performanceIndicatorService.aggregatePerformanceIndicators( fetchedPerformanceIndicators ) - return spentEnergy.value - } else { - return -1 + if (maxEnergy && maxEnergy.value && maxEnergy.value > 0) { + return maxEnergy.value + } } - } else { + return -1 + } catch (error) { + console.log(error) return -1 } } - public async setSpentEnergy( + public async setMaxEnergy( + challenge: UserChallenge, + challengeFluidTypes: FluidType[] + ): Promise<number> { + const maxEnergy = await this.getMaxEnergy(challenge, challengeFluidTypes) + if (maxEnergy && maxEnergy > 0) { + try { + await this.updateChallenge(challenge.id, { maxEnergy: maxEnergy }) + return maxEnergy + } catch (error) { + console.log(error) + return -1 + } + } + return -1 + } + + public async getSpentEnergy( challenge: UserChallenge, - client: Client, challengeFluidTypes: FluidType[] ): Promise<number> { - const lagDays = this.getLagDays(challengeFluidTypes) + const lagDays = getLagDays(challengeFluidTypes) if (DateTime.local() > challenge.startingDate.plus({ days: lagDays })) { - const consumptionService = new ConsumptionService(client) + const consumptionService = new ConsumptionService(this._client) const startDate = challenge.startingDate let endDate = DateTime.local() .plus({ days: -lagDays }) @@ -163,79 +117,48 @@ export default class ChallengeService { endDate = challenge.endingDate.plus({ days: -1 }).endOf('day') } const period = { startDate, endDate } - if (challenge && challenge.challengeType) { - const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( - period, - TimeStep.DAY, - challengeFluidTypes - ) - const performanceIndicatorService = new PerformanceIndicatorService() - const spentEnergy = performanceIndicatorService.aggregatePerformanceIndicators( - fetchedPerformanceIndicators - ) - if (spentEnergy && spentEnergy.value && spentEnergy.value >= 0) { - try { - await this._client - .query( - this._client - .find(USERCHALLENGE_DOCTYPE) - .where({ _id: challenge.id }) - .limitBy(1) - ) - .then(async ({ data }) => { - const doc = data[0] - await this._client.save({ - ...doc, - currentEnergy: spentEnergy.value, - }) - }) + try { + if (challenge && challenge.challengeType) { + const fetchedPerformanceIndicators = await consumptionService.getPerformanceIndicators( + period, + TimeStep.DAY, + challengeFluidTypes + ) + const performanceIndicatorService = new PerformanceIndicatorService() + const spentEnergy = performanceIndicatorService.aggregatePerformanceIndicators( + fetchedPerformanceIndicators + ) + if (spentEnergy && spentEnergy.value && spentEnergy.value >= 0) { return spentEnergy.value - } catch (error) { - return 0 } } + } catch (error) { + console.log(error) + return 0 } } return 0 } - public async updateUserLevel(level: number) { - await this._client - .query(this._client.find(USERPROFILE_DOCTYPE).limitBy(1)) - .then(async ({ data }) => { - const doc = data[0] - let actualLevel = doc.level - if (level > actualLevel) { - actualLevel = level - } - await this._client.save({ - ...doc, - level: actualLevel + 1, - }) - }) - } + public async setSpentEnergy( + challenge: UserChallenge, + challengeFluidTypes: FluidType[] + ): Promise<number> { + const spentEnergy = await this.getSpentEnergy( + challenge, + challengeFluidTypes + ) + if (spentEnergy && spentEnergy >= 0) { + try { + await this.updateChallenge(challenge.id, { currentEnergy: spentEnergy }) - public async updateChallengeState( - id: string | undefined, - newState: number - ): Promise<boolean> { - try { - await this._client - .query( - this._client - .find(USERCHALLENGE_DOCTYPE) - .where({ _id: id }) - .limitBy(1) - ) - .then(async ({ data }) => { - const doc = data[0] - await this._client.save({ ...doc, state: newState }) - }) - return true - } catch (err) { - console.log(err) - throw err + return spentEnergy + } catch (error) { + console.log(error) + return 0 + } } + return 0 } public async isChallengeOver( @@ -261,10 +184,10 @@ export default class ChallengeService { fluidTypes: FluidType[], typeChallenge: TypeChallenge ) { - const lagDays = this.getLagDays(fluidTypes) + const lagDays = getLagDays(fluidTypes) const endDate = typeChallenge === TypeChallenge.CHALLENGE - ? endingDate.plus({ days: lagDays }).startOf('day') + ? endingDate.plus({ days: lagDays - 1 }).startOf('day') : endingDate if (DateTime.local() > endDate) { return true @@ -328,11 +251,13 @@ export default class ChallengeService { if (challenge && challenge.challengeType) { if (await this.isChallengeOver(challenge, fluidTypes)) { if (challenge.challengeType.type === TypeChallenge.ACHIEVEMENT) { - await this.updateChallengeState( - challenge.id, - ChallengeState.FINISHED - ) - await this.updateUserLevel(challenge.challengeType.level) + await this.updateChallenge(challenge.id, { + state: ChallengeState.FINISHED, + }) + const userProfileService = new UserProfileService(this._client) + await userProfileService.updateUserProfile({ + level: challenge.challengeType.level + 1, + }) } else { if ( this.getTheRightBadge( @@ -340,12 +265,14 @@ export default class ChallengeService { challenge.maxEnergy ) ) { - await this.updateUserLevel(challenge.challengeType.level) + const userProfileService = new UserProfileService(this._client) + await userProfileService.updateUserProfile({ + level: challenge.challengeType.level + 1, + }) } - await this.updateChallengeState( - challenge.id, - ChallengeState.FINISHED - ) + await this.updateChallenge(challenge.id, { + state: ChallengeState.FINISHED, + }) } } } @@ -363,35 +290,13 @@ export default class ChallengeService { public getViewingDate = (challenge: UserChallenge): DateTime => { const startingDate = challenge.startingDate if (challenge && challenge.fluidTypes && challenge.fluidTypes.length > 0) { - const lagDays = this.getLagDays(challenge.fluidTypes) + const lagDays = getLagDays(challenge.fluidTypes) return startingDate.plus({ days: lagDays }) } else { return startingDate } } - /* - * Return the diff of day which represent - * the possible calculation of data based on configured fluidTypes - */ - public getLagDays = (fluidTypes: FluidType[]): number => { - if ( - fluidTypes && - fluidTypes.length > 0 && - fluidTypes.includes(FluidType.WATER) - ) { - return 3 - } else if ( - fluidTypes && - fluidTypes.length > 0 && - fluidTypes.includes(FluidType.GAS) - ) { - return 2 - } else { - return 1 - } - } - public async getAllChallengeTypeEntities(): Promise< ChallengeTypeEntity[] | null > { @@ -469,16 +374,6 @@ export default class ChallengeService { return challengeTypes } - public async getUserLevel() { - let userLevel - await this._client - .query(this._client.find(USERPROFILE_DOCTYPE).limitBy(1)) - .then(async ({ data }) => { - userLevel = data[0].level - }) - return userLevel - } - public async updateCurrentChallengeProgress( challenge: UserChallenge ): Promise<UserChallenge | null> { @@ -488,22 +383,20 @@ export default class ChallengeService { challenge.challengeType && challenge.challengeType.type === TypeChallenge.CHALLENGE ) { + if (challenge.maxEnergy === -1 && challenge.fluidTypes) { + const maxEnergyResult = await this.setMaxEnergy( + challenge, + challenge.fluidTypes + ) + if (maxEnergyResult > 0) { + challenge.maxEnergy = maxEnergyResult + } + } // Check if we are in the viewing timezone for current challenge const viewingDate = this.getViewingDate(challenge) if (DateTime.local() >= viewingDate && challenge.fluidTypes) { - if (challenge.maxEnergy === -1 && challenge.fluidTypes) { - const maxEnergyResult = await this.setMaxEnergy( - challenge, - this._client, - challenge.fluidTypes - ) - if (maxEnergyResult > 0) { - challenge.maxEnergy = maxEnergyResult - } - } const currentEnergyResult = await this.setSpentEnergy( challenge, - this._client, challenge.fluidTypes ) if (currentEnergyResult) { @@ -527,9 +420,7 @@ export default class ChallengeService { // Ensure that none challenge is already on going const ongoingChallenge = await this.getCurrentChallenge() if (!ongoingChallenge) { - const startDate = DateTime.utc() - .plus({ days: 1 }) - .startOf('day') + const startDate = DateTime.utc().startOf('day') const userChallenge: UserChallenge = { startingDate: startDate, @@ -655,13 +546,14 @@ export default class ChallengeService { public async cancelChallenge(id: string): Promise<boolean> { try { - await this.updateChallengeState(id, ChallengeState.ABANDONED) + await this.updateChallenge(id, { state: ChallengeState.ABANDONED }) return true } catch (err) { console.log(err) throw err } } + public async getUnlockedEcogestures(): Promise<string[] | null> { const relationShipsToInclude = ['selectedEcogestures'] const ecogestures = await this._client.query( diff --git a/src/services/initialization.service.ts b/src/services/initialization.service.ts index 92281a377947f24ad86e2a60375d371cb37c2e57..694a7f97c3e4890a3e86fc4c3d601f06cff67f6a 100644 --- a/src/services/initialization.service.ts +++ b/src/services/initialization.service.ts @@ -1,5 +1,4 @@ import { Client } from 'cozy-client' -import { DateTime } from 'luxon' import { CHALLENGETYPE_DOCTYPE, ECOGESTURE_DOCTYPE, @@ -19,7 +18,6 @@ import { } from 'doctypes' import { FluidType } from 'enum/fluid.enum' -import { TypeChallenge } from 'enum/challenge.enum' import { FluidStatus, UserChallenge, UserProfile } from 'models' import ChallengeService from 'services/challenge.service' @@ -430,38 +428,10 @@ export default class InitializationService { // No current challenge return null } else { - if ( - currentChallenge && - currentChallenge.challengeType && - currentChallenge.challengeType.type === TypeChallenge.CHALLENGE - ) { - // Check if we are in the viewing timezone for current challenge - const viewingDate = challengeService.getViewingDate(currentChallenge) - if (DateTime.local() >= viewingDate && currentChallenge.fluidTypes) { - if ( - currentChallenge.maxEnergy === -1 && - currentChallenge.fluidTypes - ) { - const maxEnergyResult = await challengeService.setMaxEnergy( - currentChallenge, - this._client, - currentChallenge.fluidTypes - ) - if (maxEnergyResult > 0) { - currentChallenge.maxEnergy = maxEnergyResult - } - } - const currentEnergyResult = await challengeService.setSpentEnergy( - currentChallenge, - this._client, - currentChallenge.fluidTypes - ) - if (currentEnergyResult) { - currentChallenge.currentEnergy = currentEnergyResult - } - } - } - return currentChallenge + const updatedChallenge = await challengeService.updateCurrentChallengeProgress( + currentChallenge + ) + return updatedChallenge } } catch (error) { console.log('Initialization error: ', error) @@ -475,13 +445,12 @@ export default class InitializationService { * else return false */ public async isCurrentChallengeOver( - challenge: UserChallenge, - fluidTypes: FluidType[] + challenge: UserChallenge ): Promise<boolean> { const challengeService = new ChallengeService(this._client) const isOver = await challengeService.isCurrentChallengeOver( challenge, - fluidTypes + challenge.fluidTypes ) return isOver } diff --git a/src/services/timePeriod.service.ts b/src/services/timePeriod.service.ts index a822b66dc7b62f2b7dc75eb688abc7031090af0f..efa5c017338e52e0bc0752e27f14acbc3a6b0c5e 100644 --- a/src/services/timePeriod.service.ts +++ b/src/services/timePeriod.service.ts @@ -170,13 +170,13 @@ export default class TimePeriodService { break case TimeStep.MONTH: comparisonTimePeriodStartDate = DateTime.local( - timePeriod.startDate.year - 1, - timePeriod.startDate.month, + timePeriod.startDate.year, + timePeriod.startDate.month - 1, timePeriod.startDate.day ) comparisonTimePeriodEndDate = DateTime.local( - timePeriod.endDate.year - 1, - timePeriod.endDate.month, + timePeriod.endDate.year, + timePeriod.endDate.month - 1, 1 ).endOf('month') break diff --git a/src/services/userProfile.service.ts b/src/services/userProfile.service.ts index e6a6faa31e95cd6b2672781a09fa85606410532e..033903ac1f62d0fb7859742a45d69b3e561783c3 100644 --- a/src/services/userProfile.service.ts +++ b/src/services/userProfile.service.ts @@ -24,7 +24,7 @@ export default class UserProfileService { } public async updateUserProfile(attributes: { - [key: string]: string | string[] | boolean | DateTime + [key: string]: string | string[] | boolean | number | DateTime }): Promise<UserProfile | null> { const { data: userProfile } = await this._client .query(this._client.find(USERPROFILE_DOCTYPE).limitBy(1)) diff --git a/src/styles/components/_nav.scss b/src/styles/components/_nav.scss index 3804811754c71a16b78eebe7b56e1e4d8183f981..71852729c87b6f24d24ab9a90d14cd3145457c7b 100644 --- a/src/styles/components/_nav.scss +++ b/src/styles/components/_nav.scss @@ -7,15 +7,46 @@ 0px 8px 10px rgba(0, 0, 0, 0.14); border-top: unset; border-right: unset; + position: relative; z-index: 19; +} +.logos-container { + position: absolute; + width: 100%; + bottom: 1.5rem; + display: flex; + flex-direction: column; + align-items: center; + @media #{$tablet} { + display: none; + } .logo-grand-lyon { - position: absolute; - bottom: 20px; - left: 100px; - @media #{$tablet} { - display: none; - } + width: 100%; + max-width: 100px; } + .logo-tiga { + width: 100%; + max-width: 80px; + } +} +.parameters-logos { + padding: 0 1.5rem 1.5rem 1.5rem; + display: none; + @media #{$tablet} { + display: block; + } +} +.logo-tiga-parameters { + display: block; + width: 100%; + max-width: 80px; + margin: auto; +} +.logo-grand-lyon-parameters { + display: block; + width: 100%; + max-width: 100px; + margin: auto; } .c-nav-link { padding: 0 1rem; diff --git a/src/styles/components/_splash.scss b/src/styles/components/_splash.scss index a8a5edb2709751254bc1c7773b9b033919e6ee45..797facc9bca294132baac08d96349d826703cad6 100644 --- a/src/styles/components/_splash.scss +++ b/src/styles/components/_splash.scss @@ -31,9 +31,28 @@ display: flex; flex-direction: column; align-items: center; - justify-content: center; + justify-content: flex-end; flex: 1; - margin-top: 6rem; + &:first-child { + margin: auto; + } + .splash-logos-container { + align-self: flex-end; + margin-top: 3rem; + width: 100%; + display: flex; + justify-content: center; + gap: 1.5rem; + align-items: center; + .logo-grand-lyon { + width: 100%; + max-width: 100px; + } + .logo-tiga { + width: 100%; + max-width: 80px; + } + } } .splash-footer { display: flex; diff --git a/src/styles/components/_version.scss b/src/styles/components/_version.scss index fd16553d2034796ba22b7b3425b9d39c21da7b09..655b9fcfc3f18d998d0d8f61e721ca24e34679e1 100644 --- a/src/styles/components/_version.scss +++ b/src/styles/components/_version.scss @@ -3,6 +3,6 @@ .version-root { color: $grey-bright; - text-align: end; - margin: 1rem 1.5rem 2rem; + text-align: center; + margin: 0 1.5rem 2rem; } diff --git a/src/targets/browser/index.tsx b/src/targets/browser/index.tsx index f9fdb9294bab2dec0beceb7e8805483103558202..be2dfb3c7c802098443603d6972212213f8eb66e 100644 --- a/src/targets/browser/index.tsx +++ b/src/targets/browser/index.tsx @@ -8,13 +8,14 @@ import ReactDOM, { render } from 'react-dom' import { Document } from 'cozy-doctypes' import { I18n } from 'cozy-ui/transpiled/react' import { initTranslation } from 'cozy-ui/transpiled/react/I18n' +import { handleOAuthResponse } from 'cozy-harvest-lib/dist/helpers/oauth' import schema from 'doctypes' const manifest = require('../../../manifest.webapp') const renderApp = (polyglot: any, lang: string, client: Client) => { + if (handleOAuthResponse()) return const App = require('components/App').default - render( <CozyProvider client={client}> <I18n lang={lang} polyglot={polyglot}> diff --git a/src/utils/date.ts b/src/utils/date.ts index b4267dde5383b80fc350a2a5727608bec6dfea54..92cd0171282bad1a7e4bed0a98d5ed62d491766d 100644 --- a/src/utils/date.ts +++ b/src/utils/date.ts @@ -1,5 +1,6 @@ import { DateTime } from 'luxon' import { TimeStep } from 'enum/timeStep.enum' +import { FluidType } from 'enum/fluid.enum' import { TimePeriod } from 'models' import { UserChallenge } from 'models' @@ -7,19 +8,51 @@ export function compareDates(dateA: DateTime, dateB: DateTime) { return dateA < dateB ? -1 : 1 } -export const formatCompareChallengeDate = (challenge: UserChallenge) => { +/* + * Return the diff of day which represent + * the possible calculation of data based on configured fluidTypes + */ +export const getLagDays = (fluidTypes: FluidType[]): number => { + if ( + fluidTypes && + fluidTypes.length > 0 && + fluidTypes.includes(FluidType.WATER) + ) { + return 3 + } else if ( + fluidTypes && + fluidTypes.length > 0 && + fluidTypes.includes(FluidType.GAS) + ) { + return 2 + } else { + return 1 + } +} + +export const getCompareChallengePeriod = ( + challenge: UserChallenge, + fluidTypes: FluidType[] +): TimePeriod => { let durationTimeStep = '' let duration = 0 + const lag = getLagDays(fluidTypes) if (challenge && challenge.challengeType) { durationTimeStep = Object.keys(challenge.challengeType.duration)[0] duration = (challenge.challengeType.duration as any)[durationTimeStep] } - const delay = { [durationTimeStep]: -duration } + const delay = { [durationTimeStep]: -duration - lag + 1 } const startDate = challenge.startingDate.plus(delay) - const endDate = challenge.startingDate.plus({ days: -1 }).endOf('day') - return ` (du ${startDate.toFormat('dd/MM')} au ${endDate.toFormat('dd/MM')})` + const endDate = challenge.startingDate.plus({ days: -lag }).endOf('day') + return { startDate: startDate, endDate: endDate } } +export const formatCompareChallengeDate = (challenge: UserChallenge) => { + const period = getCompareChallengePeriod(challenge, challenge.fluidTypes) + return ` (du ${period.startDate.toFormat( + 'dd/MM' + )} au ${period.endDate.toFormat('dd/MM')})` +} export const convertDateByTimeStep = ( timeperiod: TimePeriod | null, timeStep: TimeStep, diff --git a/test/data/dayData-elec.json b/test/data/dayData-elec.json index eacc138c9f5e8cdbaa969f83390e7509a36621c9..0f24ba3c574bb88bae609373b190979fa5152dc4 100644 --- a/test/data/dayData-elec.json +++ b/test/data/dayData-elec.json @@ -1 +1 @@ -{"com.grandlyon.enedis.day":[{"load":6.08,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":8.81,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":5.02,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":5.98,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":9.82,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":4.32,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":9.75,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":3.81,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":6.04,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":7.54,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":9.39,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":8.37,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":5.78,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":4.43,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":7.67,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":3.75,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":4.73,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":8.91,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":4.42,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":7.69,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":9.82,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":6.59,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":7.76,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":9.97,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":8.77,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":4.16,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":9.88,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":7.31,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":4.86,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":5.16,"year":2020,"month":6,"day":29,"hour":0,"minute":0},{"load":5.79,"year":2020,"month":6,"day":30,"hour":0,"minute":0},{"load":6.7,"year":2020,"month":7,"day":1,"hour":0,"minute":0},{"load":5.9,"year":2020,"month":7,"day":2,"hour":0,"minute":0},{"load":4.19,"year":2020,"month":7,"day":3,"hour":0,"minute":0},{"load":5.47,"year":2020,"month":7,"day":4,"hour":0,"minute":0},{"load":3.37,"year":2020,"month":7,"day":5,"hour":0,"minute":0},{"load":8.55,"year":2020,"month":7,"day":6,"hour":0,"minute":0},{"load":6.72,"year":2020,"month":7,"day":7,"hour":0,"minute":0},{"load":9.01,"year":2020,"month":7,"day":8,"hour":0,"minute":0},{"load":3.45,"year":2020,"month":7,"day":9,"hour":0,"minute":0},{"load":7.42,"year":2020,"month":7,"day":10,"hour":0,"minute":0},{"load":8.56,"year":2020,"month":7,"day":11,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":7,"day":12,"hour":0,"minute":0},{"load":6.18,"year":2020,"month":7,"day":13,"hour":0,"minute":0},{"load":5.78,"year":2020,"month":7,"day":14,"hour":0,"minute":0},{"load":7.08,"year":2020,"month":7,"day":15,"hour":0,"minute":0},{"load":4.79,"year":2020,"month":7,"day":16,"hour":0,"minute":0},{"load":6.06,"year":2020,"month":7,"day":17,"hour":0,"minute":0},{"load":5.91,"year":2020,"month":7,"day":18,"hour":0,"minute":0},{"load":7,"year":2020,"month":7,"day":19,"hour":0,"minute":0},{"load":6.26,"year":2020,"month":7,"day":20,"hour":0,"minute":0},{"load":4.46,"year":2020,"month":7,"day":21,"hour":0,"minute":0},{"load":6.15,"year":2020,"month":7,"day":22,"hour":0,"minute":0},{"load":4.61,"year":2020,"month":7,"day":23,"hour":0,"minute":0},{"load":5.69,"year":2020,"month":7,"day":24,"hour":0,"minute":0},{"load":7.3,"year":2020,"month":7,"day":25,"hour":0,"minute":0},{"load":6.74,"year":2020,"month":7,"day":26,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":7,"day":27,"hour":0,"minute":0},{"load":3.72,"year":2020,"month":7,"day":28,"hour":0,"minute":0},{"load":8.85,"year":2020,"month":7,"day":29,"hour":0,"minute":0},{"load":4.37,"year":2020,"month":7,"day":30,"hour":0,"minute":0},{"load":8.28,"year":2020,"month":7,"day":31,"hour":0,"minute":0},{"load":5.62,"year":2020,"month":8,"day":1,"hour":0,"minute":0},{"load":9.24,"year":2020,"month":8,"day":2,"hour":0,"minute":0},{"load":9.99,"year":2020,"month":8,"day":3,"hour":0,"minute":0},{"load":3.75,"year":2020,"month":8,"day":4,"hour":0,"minute":0},{"load":4.93,"year":2020,"month":8,"day":5,"hour":0,"minute":0},{"load":4.9,"year":2020,"month":8,"day":6,"hour":0,"minute":0},{"load":8.48,"year":2020,"month":8,"day":7,"hour":0,"minute":0},{"load":6.03,"year":2020,"month":8,"day":8,"hour":0,"minute":0},{"load":4.47,"year":2020,"month":8,"day":9,"hour":0,"minute":0},{"load":5.02,"year":2020,"month":8,"day":10,"hour":0,"minute":0},{"load":4.68,"year":2020,"month":8,"day":11,"hour":0,"minute":0},{"load":5.72,"year":2020,"month":8,"day":12,"hour":0,"minute":0},{"load":3.56,"year":2020,"month":8,"day":13,"hour":0,"minute":0},{"load":9.03,"year":2020,"month":8,"day":14,"hour":0,"minute":0},{"load":5.29,"year":2020,"month":8,"day":15,"hour":0,"minute":0},{"load":9.19,"year":2020,"month":8,"day":16,"hour":0,"minute":0},{"load":4.99,"year":2020,"month":8,"day":17,"hour":0,"minute":0},{"load":8.06,"year":2020,"month":8,"day":18,"hour":0,"minute":0},{"load":9.2,"year":2020,"month":8,"day":19,"hour":0,"minute":0},{"load":5,"year":2020,"month":8,"day":20,"hour":0,"minute":0},{"load":9.42,"year":2020,"month":8,"day":21,"hour":0,"minute":0},{"load":4.85,"year":2020,"month":8,"day":22,"hour":0,"minute":0},{"load":6.55,"year":2020,"month":8,"day":23,"hour":0,"minute":0},{"load":6.52,"year":2020,"month":8,"day":24,"hour":0,"minute":0},{"load":5.64,"year":2020,"month":8,"day":25,"hour":0,"minute":0},{"load":8.91,"year":2020,"month":8,"day":26,"hour":0,"minute":0},{"load":9.87,"year":2020,"month":8,"day":27,"hour":0,"minute":0},{"load":5.38,"year":2020,"month":8,"day":28,"hour":0,"minute":0},{"load":4.93,"year":2020,"month":8,"day":29,"hour":0,"minute":0},{"load":5.02,"year":2020,"month":8,"day":30,"hour":0,"minute":0},{"load":5.1,"year":2020,"month":8,"day":31,"hour":0,"minute":0},{"load":8.9,"year":2020,"month":9,"day":1,"hour":0,"minute":0},{"load":8.43,"year":2020,"month":9,"day":2,"hour":0,"minute":0},{"load":7.32,"year":2020,"month":9,"day":3,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":9,"day":4,"hour":0,"minute":0},{"load":8.47,"year":2020,"month":9,"day":5,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":9,"day":6,"hour":0,"minute":0},{"load":5.37,"year":2020,"month":9,"day":7,"hour":0,"minute":0},{"load":4.26,"year":2020,"month":9,"day":8,"hour":0,"minute":0},{"load":4,"year":2020,"month":9,"day":9,"hour":0,"minute":0},{"load":8.67,"year":2020,"month":9,"day":10,"hour":0,"minute":0},{"load":4.9,"year":2020,"month":9,"day":11,"hour":0,"minute":0},{"load":9.78,"year":2020,"month":9,"day":12,"hour":0,"minute":0},{"load":6.76,"year":2020,"month":9,"day":13,"hour":0,"minute":0},{"load":6.16,"year":2020,"month":9,"day":14,"hour":0,"minute":0},{"load":4.8,"year":2020,"month":9,"day":15,"hour":0,"minute":0},{"load":7.33,"year":2020,"month":9,"day":16,"hour":0,"minute":0},{"load":3.59,"year":2020,"month":9,"day":17,"hour":0,"minute":0},{"load":6.12,"year":2020,"month":9,"day":18,"hour":0,"minute":0},{"load":6.59,"year":2020,"month":9,"day":19,"hour":0,"minute":0},{"load":3.91,"year":2020,"month":9,"day":20,"hour":0,"minute":0},{"load":5.11,"year":2020,"month":9,"day":21,"hour":0,"minute":0},{"load":8.38,"year":2020,"month":9,"day":22,"hour":0,"minute":0},{"load":6.97,"year":2020,"month":9,"day":23,"hour":0,"minute":0},{"load":6.39,"year":2020,"month":9,"day":24,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":35.71,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":206.97,"year":2020,"month":6,"day":0,"hour":0,"minute":0},{"load":191.88,"year":2020,"month":7,"day":0,"hour":0,"minute":0},{"load":202.62,"year":2020,"month":8,"day":0,"hour":0,"minute":0},{"load":140.61,"year":2020,"month":9,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":777.79,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.enedis.day":[{"load":8.68,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":9.16,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":9.5,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":8.15,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":4.59,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":3.54,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":7.08,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":4.4,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":5.22,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":3.33,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":6.61,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":9.36,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":6.45,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":9.29,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":7.63,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":4.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":7.1,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":9.56,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":7.74,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":9.03,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":4.65,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":7.98,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":3.01,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":4.67,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":5.53,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":8.43,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":9.08,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":9.18,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":3.15,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":3.26,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":7.09,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":7.34,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":6.55,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":8.89,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":8.5,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":3.09,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":9.6,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":8.07,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":7.47,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":3.4,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":5.24,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":3.06,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":7.16,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":5.07,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":5.75,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":5.52,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":6.62,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":4.27,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":8.87,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":7.04,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":8.21,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":3.85,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":8.96,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":9.83,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":3.36,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":4.05,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":8.95,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":7.85,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":9.96,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":5.44,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":9.65,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":5.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":3.05,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":9.62,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":4.28,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":3.11,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":7.45,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":5.36,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":9.64,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":4.5,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":5.11,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":7.72,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":9.19,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":8.19,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":4.41,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":7.95,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":8.4,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":8.73,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":5.2,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":4.26,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":3.8,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":6.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":7.28,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":6.49,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":6.84,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":9.76,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":3.12,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":8.7,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":5.05,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":7.76,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":8.68,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":7.68,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":7.02,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":5.28,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":9.06,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":9.41,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":8.09,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":3.51,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":4.73,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":8.66,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":9.45,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":5.84,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":6.63,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":7.43,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":9.44,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":204.78,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":193.08,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":209.08,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":198.29,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":805.23,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/data/dayData-gas.json b/test/data/dayData-gas.json index 3be71f94de06487036242948affefada812ec975..7f93ad6f0920018eba10965246ea3ab7b85281fc 100644 --- a/test/data/dayData-gas.json +++ b/test/data/dayData-gas.json @@ -1 +1 @@ -{"com.grandlyon.grdf.day":[{"load":35.53,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":25.49,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":16.23,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":59.35,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":63.01,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":46.92,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":49.29,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":38.33,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":64.76,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":58.58,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":58.57,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":30.01,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":46.96,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":49.11,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":54.54,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":18.32,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":67.22,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":36.71,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":52.45,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":18.15,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":16.12,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":23.03,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":58.67,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":21.87,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":31.59,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":30.95,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":30.73,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":24.53,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":23.6,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":43.88,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":20.22,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":36.81,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":41.63,"year":2020,"month":6,"day":29,"hour":0,"minute":0},{"load":32.63,"year":2020,"month":6,"day":30,"hour":0,"minute":0},{"load":57.19,"year":2020,"month":7,"day":1,"hour":0,"minute":0},{"load":53.01,"year":2020,"month":7,"day":2,"hour":0,"minute":0},{"load":32.09,"year":2020,"month":7,"day":3,"hour":0,"minute":0},{"load":59.38,"year":2020,"month":7,"day":4,"hour":0,"minute":0},{"load":18.23,"year":2020,"month":7,"day":5,"hour":0,"minute":0},{"load":45.7,"year":2020,"month":7,"day":6,"hour":0,"minute":0},{"load":42.09,"year":2020,"month":7,"day":7,"hour":0,"minute":0},{"load":60.09,"year":2020,"month":7,"day":8,"hour":0,"minute":0},{"load":28.81,"year":2020,"month":7,"day":9,"hour":0,"minute":0},{"load":20.35,"year":2020,"month":7,"day":10,"hour":0,"minute":0},{"load":58.91,"year":2020,"month":7,"day":11,"hour":0,"minute":0},{"load":56.64,"year":2020,"month":7,"day":12,"hour":0,"minute":0},{"load":57.47,"year":2020,"month":7,"day":13,"hour":0,"minute":0},{"load":24.81,"year":2020,"month":7,"day":14,"hour":0,"minute":0},{"load":51.01,"year":2020,"month":7,"day":15,"hour":0,"minute":0},{"load":27.62,"year":2020,"month":7,"day":16,"hour":0,"minute":0},{"load":19.69,"year":2020,"month":7,"day":17,"hour":0,"minute":0},{"load":28.89,"year":2020,"month":7,"day":18,"hour":0,"minute":0},{"load":16.59,"year":2020,"month":7,"day":19,"hour":0,"minute":0},{"load":21.56,"year":2020,"month":7,"day":20,"hour":0,"minute":0},{"load":62.16,"year":2020,"month":7,"day":21,"hour":0,"minute":0},{"load":29.34,"year":2020,"month":7,"day":22,"hour":0,"minute":0},{"load":36.89,"year":2020,"month":7,"day":23,"hour":0,"minute":0},{"load":52.78,"year":2020,"month":7,"day":24,"hour":0,"minute":0},{"load":50.75,"year":2020,"month":7,"day":25,"hour":0,"minute":0},{"load":33.32,"year":2020,"month":7,"day":26,"hour":0,"minute":0},{"load":27.03,"year":2020,"month":7,"day":27,"hour":0,"minute":0},{"load":41.7,"year":2020,"month":7,"day":28,"hour":0,"minute":0},{"load":63.76,"year":2020,"month":7,"day":29,"hour":0,"minute":0},{"load":59.09,"year":2020,"month":7,"day":30,"hour":0,"minute":0},{"load":28.01,"year":2020,"month":7,"day":31,"hour":0,"minute":0},{"load":24.6,"year":2020,"month":8,"day":1,"hour":0,"minute":0},{"load":31.23,"year":2020,"month":8,"day":2,"hour":0,"minute":0},{"load":54.23,"year":2020,"month":8,"day":3,"hour":0,"minute":0},{"load":29.09,"year":2020,"month":8,"day":4,"hour":0,"minute":0},{"load":24.93,"year":2020,"month":8,"day":5,"hour":0,"minute":0},{"load":59.86,"year":2020,"month":8,"day":6,"hour":0,"minute":0},{"load":45.15,"year":2020,"month":8,"day":7,"hour":0,"minute":0},{"load":55.66,"year":2020,"month":8,"day":8,"hour":0,"minute":0},{"load":35.11,"year":2020,"month":8,"day":9,"hour":0,"minute":0},{"load":16.84,"year":2020,"month":8,"day":10,"hour":0,"minute":0},{"load":42.01,"year":2020,"month":8,"day":11,"hour":0,"minute":0},{"load":66.55,"year":2020,"month":8,"day":12,"hour":0,"minute":0},{"load":21.88,"year":2020,"month":8,"day":13,"hour":0,"minute":0},{"load":67.07,"year":2020,"month":8,"day":14,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":8,"day":15,"hour":0,"minute":0},{"load":35.62,"year":2020,"month":8,"day":16,"hour":0,"minute":0},{"load":39.83,"year":2020,"month":8,"day":17,"hour":0,"minute":0},{"load":16.18,"year":2020,"month":8,"day":18,"hour":0,"minute":0},{"load":20.51,"year":2020,"month":8,"day":19,"hour":0,"minute":0},{"load":37.5,"year":2020,"month":8,"day":20,"hour":0,"minute":0},{"load":51.84,"year":2020,"month":8,"day":21,"hour":0,"minute":0},{"load":27.74,"year":2020,"month":8,"day":22,"hour":0,"minute":0},{"load":53.13,"year":2020,"month":8,"day":23,"hour":0,"minute":0},{"load":22.31,"year":2020,"month":8,"day":24,"hour":0,"minute":0},{"load":66.84,"year":2020,"month":8,"day":25,"hour":0,"minute":0},{"load":30.64,"year":2020,"month":8,"day":26,"hour":0,"minute":0},{"load":49.45,"year":2020,"month":8,"day":27,"hour":0,"minute":0},{"load":63.1,"year":2020,"month":8,"day":28,"hour":0,"minute":0},{"load":47.9,"year":2020,"month":8,"day":29,"hour":0,"minute":0},{"load":42.83,"year":2020,"month":8,"day":30,"hour":0,"minute":0},{"load":22.05,"year":2020,"month":8,"day":31,"hour":0,"minute":0},{"load":45.14,"year":2020,"month":9,"day":1,"hour":0,"minute":0},{"load":67.47,"year":2020,"month":9,"day":2,"hour":0,"minute":0},{"load":30.49,"year":2020,"month":9,"day":3,"hour":0,"minute":0},{"load":26.48,"year":2020,"month":9,"day":4,"hour":0,"minute":0},{"load":29.7,"year":2020,"month":9,"day":5,"hour":0,"minute":0},{"load":35.01,"year":2020,"month":9,"day":6,"hour":0,"minute":0},{"load":48.61,"year":2020,"month":9,"day":7,"hour":0,"minute":0},{"load":57.15,"year":2020,"month":9,"day":8,"hour":0,"minute":0},{"load":37.78,"year":2020,"month":9,"day":9,"hour":0,"minute":0},{"load":39.95,"year":2020,"month":9,"day":10,"hour":0,"minute":0},{"load":54.51,"year":2020,"month":9,"day":11,"hour":0,"minute":0},{"load":37.81,"year":2020,"month":9,"day":12,"hour":0,"minute":0},{"load":38.04,"year":2020,"month":9,"day":13,"hour":0,"minute":0},{"load":17.11,"year":2020,"month":9,"day":14,"hour":0,"minute":0},{"load":54.43,"year":2020,"month":9,"day":15,"hour":0,"minute":0},{"load":46.72,"year":2020,"month":9,"day":16,"hour":0,"minute":0},{"load":38.12,"year":2020,"month":9,"day":17,"hour":0,"minute":0},{"load":56.3,"year":2020,"month":9,"day":18,"hour":0,"minute":0},{"load":34.16,"year":2020,"month":9,"day":19,"hour":0,"minute":0},{"load":64.01,"year":2020,"month":9,"day":20,"hour":0,"minute":0},{"load":37.92,"year":2020,"month":9,"day":21,"hour":0,"minute":0},{"load":59.28,"year":2020,"month":9,"day":22,"hour":0,"minute":0},{"load":20.37,"year":2020,"month":9,"day":23,"hour":0,"minute":0},{"load":52.95,"year":2020,"month":9,"day":24,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":199.61,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":1183.37,"year":2020,"month":6,"day":0,"hour":0,"minute":0},{"load":1232.37,"year":2020,"month":7,"day":0,"hour":0,"minute":0},{"load":1284.74,"year":2020,"month":8,"day":0,"hour":0,"minute":0},{"load":984.37,"year":2020,"month":9,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":4884.46,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.grdf.day":[{"load":54.26,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":23.68,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":37.71,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":49.7,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":17.21,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":65.57,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":18.23,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":34.33,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":28.06,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":57.34,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":30.97,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":58.28,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":49.57,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":66.56,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":22.51,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":17.31,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":16,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":39.09,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":28.44,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":44.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":59.75,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":30.8,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":29.87,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":42.77,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":61.1,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":20.67,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":53.12,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":31.16,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":36.92,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":25.89,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":35.35,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":60.23,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":20.91,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":45.95,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":59.7,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":64.69,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":67.26,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":63.95,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":47.16,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":67.37,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":64.67,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":34.26,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":43.72,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":16.33,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":39.6,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":31.53,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":41.88,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":25.59,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":16.86,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":21.62,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":26.31,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":50.56,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":35.57,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":60.46,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":45.19,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":45.61,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":18.76,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":55.74,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":18.01,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":62.47,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":46.36,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":30.68,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":34.05,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":65.52,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":41.96,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":17.5,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":39.3,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":31.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":39.88,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":59.32,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":30.2,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":25.99,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":30.02,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":61.32,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":30.49,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":54.46,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":34.97,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":65.65,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":47.9,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":31.9,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":32.14,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":60.88,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":62.44,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":40.6,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":22.11,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":31.99,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":64.52,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":41.9,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":39.57,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":17.65,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":37.92,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":21.91,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":39.04,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":25.55,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":22.35,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":36.99,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":38.82,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":18.47,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":51.11,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":23.93,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":63.05,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":42.87,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":64.65,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":22.86,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":56.89,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":35.68,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":23.83,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":22.83,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":27.9,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":21.87,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":19.93,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":32.48,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":66.18,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":21.37,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":62.57,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":56.02,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":60.83,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":47.79,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":1213.53,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":1287.31,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":1295.15,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":1065.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":4861.68,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/data/dayData-water.json b/test/data/dayData-water.json index 476d57f98ec8f33802ca8cd8a56c2057c8100635..9fc1b5b30652b8a411940ff6bd96f4c7da62d9b4 100644 --- a/test/data/dayData-water.json +++ b/test/data/dayData-water.json @@ -1 +1 @@ -{"com.grandlyon.egl.day":[{"load":237.04,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":242.81,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":212.9,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":268.25,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":266.06,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":289.42,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":289.2,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":286.71,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":207.4,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":288.92,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":233.63,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":202.74,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":278.65,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":284.88,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":276.15,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":257.3,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":277.56,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":264.73,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":298.17,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":234.72,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":249.81,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":224.06,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":222.52,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":213.27,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":259.79,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":216.74,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":226.34,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":248.06,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":298.42,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":204.95,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":291.84,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":229.62,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":233.65,"year":2020,"month":6,"day":29,"hour":0,"minute":0},{"load":292.09,"year":2020,"month":6,"day":30,"hour":0,"minute":0},{"load":278.64,"year":2020,"month":7,"day":1,"hour":0,"minute":0},{"load":226.66,"year":2020,"month":7,"day":2,"hour":0,"minute":0},{"load":243.15,"year":2020,"month":7,"day":3,"hour":0,"minute":0},{"load":282.63,"year":2020,"month":7,"day":4,"hour":0,"minute":0},{"load":254.7,"year":2020,"month":7,"day":5,"hour":0,"minute":0},{"load":260.3,"year":2020,"month":7,"day":6,"hour":0,"minute":0},{"load":267.19,"year":2020,"month":7,"day":7,"hour":0,"minute":0},{"load":248.8,"year":2020,"month":7,"day":8,"hour":0,"minute":0},{"load":254.81,"year":2020,"month":7,"day":9,"hour":0,"minute":0},{"load":230.72,"year":2020,"month":7,"day":10,"hour":0,"minute":0},{"load":292.46,"year":2020,"month":7,"day":11,"hour":0,"minute":0},{"load":233.72,"year":2020,"month":7,"day":12,"hour":0,"minute":0},{"load":212.48,"year":2020,"month":7,"day":13,"hour":0,"minute":0},{"load":232.43,"year":2020,"month":7,"day":14,"hour":0,"minute":0},{"load":222.56,"year":2020,"month":7,"day":15,"hour":0,"minute":0},{"load":228.99,"year":2020,"month":7,"day":16,"hour":0,"minute":0},{"load":270.76,"year":2020,"month":7,"day":17,"hour":0,"minute":0},{"load":291.95,"year":2020,"month":7,"day":18,"hour":0,"minute":0},{"load":230.37,"year":2020,"month":7,"day":19,"hour":0,"minute":0},{"load":221.6,"year":2020,"month":7,"day":20,"hour":0,"minute":0},{"load":293.69,"year":2020,"month":7,"day":21,"hour":0,"minute":0},{"load":283.06,"year":2020,"month":7,"day":22,"hour":0,"minute":0},{"load":273.25,"year":2020,"month":7,"day":23,"hour":0,"minute":0},{"load":284.96,"year":2020,"month":7,"day":24,"hour":0,"minute":0},{"load":247.53,"year":2020,"month":7,"day":25,"hour":0,"minute":0},{"load":241.34,"year":2020,"month":7,"day":26,"hour":0,"minute":0},{"load":222.38,"year":2020,"month":7,"day":27,"hour":0,"minute":0},{"load":273.17,"year":2020,"month":7,"day":28,"hour":0,"minute":0},{"load":236.45,"year":2020,"month":7,"day":29,"hour":0,"minute":0},{"load":291.07,"year":2020,"month":7,"day":30,"hour":0,"minute":0},{"load":283.29,"year":2020,"month":7,"day":31,"hour":0,"minute":0},{"load":249.96,"year":2020,"month":8,"day":1,"hour":0,"minute":0},{"load":241.98,"year":2020,"month":8,"day":2,"hour":0,"minute":0},{"load":250.4,"year":2020,"month":8,"day":3,"hour":0,"minute":0},{"load":207.46,"year":2020,"month":8,"day":4,"hour":0,"minute":0},{"load":224.57,"year":2020,"month":8,"day":5,"hour":0,"minute":0},{"load":281.49,"year":2020,"month":8,"day":6,"hour":0,"minute":0},{"load":208.54,"year":2020,"month":8,"day":7,"hour":0,"minute":0},{"load":271.64,"year":2020,"month":8,"day":8,"hour":0,"minute":0},{"load":295.7,"year":2020,"month":8,"day":9,"hour":0,"minute":0},{"load":287.04,"year":2020,"month":8,"day":10,"hour":0,"minute":0},{"load":278.65,"year":2020,"month":8,"day":11,"hour":0,"minute":0},{"load":282.84,"year":2020,"month":8,"day":12,"hour":0,"minute":0},{"load":268.67,"year":2020,"month":8,"day":13,"hour":0,"minute":0},{"load":246.33,"year":2020,"month":8,"day":14,"hour":0,"minute":0},{"load":208.02,"year":2020,"month":8,"day":15,"hour":0,"minute":0},{"load":210.63,"year":2020,"month":8,"day":16,"hour":0,"minute":0},{"load":258.75,"year":2020,"month":8,"day":17,"hour":0,"minute":0},{"load":264.8,"year":2020,"month":8,"day":18,"hour":0,"minute":0},{"load":298.27,"year":2020,"month":8,"day":19,"hour":0,"minute":0},{"load":282.52,"year":2020,"month":8,"day":20,"hour":0,"minute":0},{"load":271.1,"year":2020,"month":8,"day":21,"hour":0,"minute":0},{"load":283.11,"year":2020,"month":8,"day":22,"hour":0,"minute":0},{"load":243.36,"year":2020,"month":8,"day":23,"hour":0,"minute":0},{"load":287.46,"year":2020,"month":8,"day":24,"hour":0,"minute":0},{"load":281.05,"year":2020,"month":8,"day":25,"hour":0,"minute":0},{"load":237.64,"year":2020,"month":8,"day":26,"hour":0,"minute":0},{"load":258.52,"year":2020,"month":8,"day":27,"hour":0,"minute":0},{"load":270.78,"year":2020,"month":8,"day":28,"hour":0,"minute":0},{"load":266.46,"year":2020,"month":8,"day":29,"hour":0,"minute":0},{"load":217.09,"year":2020,"month":8,"day":30,"hour":0,"minute":0},{"load":202.61,"year":2020,"month":8,"day":31,"hour":0,"minute":0},{"load":283.2,"year":2020,"month":9,"day":1,"hour":0,"minute":0},{"load":267.48,"year":2020,"month":9,"day":2,"hour":0,"minute":0},{"load":243.73,"year":2020,"month":9,"day":3,"hour":0,"minute":0},{"load":292.5,"year":2020,"month":9,"day":4,"hour":0,"minute":0},{"load":243.89,"year":2020,"month":9,"day":5,"hour":0,"minute":0},{"load":288.86,"year":2020,"month":9,"day":6,"hour":0,"minute":0},{"load":240.6,"year":2020,"month":9,"day":7,"hour":0,"minute":0},{"load":230.54,"year":2020,"month":9,"day":8,"hour":0,"minute":0},{"load":223.75,"year":2020,"month":9,"day":9,"hour":0,"minute":0},{"load":257.81,"year":2020,"month":9,"day":10,"hour":0,"minute":0},{"load":200.04,"year":2020,"month":9,"day":11,"hour":0,"minute":0},{"load":204.25,"year":2020,"month":9,"day":12,"hour":0,"minute":0},{"load":297.54,"year":2020,"month":9,"day":13,"hour":0,"minute":0},{"load":214.01,"year":2020,"month":9,"day":14,"hour":0,"minute":0},{"load":277.44,"year":2020,"month":9,"day":15,"hour":0,"minute":0},{"load":292.02,"year":2020,"month":9,"day":16,"hour":0,"minute":0},{"load":273.95,"year":2020,"month":9,"day":17,"hour":0,"minute":0},{"load":224.65,"year":2020,"month":9,"day":18,"hour":0,"minute":0},{"load":205.56,"year":2020,"month":9,"day":19,"hour":0,"minute":0},{"load":233.97,"year":2020,"month":9,"day":20,"hour":0,"minute":0},{"load":283.7,"year":2020,"month":9,"day":21,"hour":0,"minute":0},{"load":236.3,"year":2020,"month":9,"day":22,"hour":0,"minute":0},{"load":242.84,"year":2020,"month":9,"day":23,"hour":0,"minute":0},{"load":232.41,"year":2020,"month":9,"day":24,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":1227.06,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":7659.98,"year":2020,"month":6,"day":0,"hour":0,"minute":0},{"load":7886.43,"year":2020,"month":7,"day":0,"hour":0,"minute":0},{"load":7970.68,"year":2020,"month":8,"day":0,"hour":0,"minute":0},{"load":5707.84,"year":2020,"month":9,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":30451.99,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.egl.day":[{"load":247.65,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":232.71,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":217.9,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":258.81,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":289.17,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":286.9,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":206.26,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":201.78,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":200.18,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":202.96,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":286.27,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":238.18,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":274.11,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":276.18,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":223.14,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":299.63,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":276.89,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":288.3,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":296.3,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":273.51,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":204.61,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":203.61,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":230.36,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":218.49,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":280.85,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":223.82,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":252.06,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":291.88,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":207.27,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":249.33,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":220.06,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":249.28,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":287.94,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":237.88,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":287.62,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":299.19,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":254.24,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":272.49,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":232.14,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":284.61,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":258.03,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":234.38,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":295.21,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":236.01,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":257.66,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":250.71,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":213.32,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":259.05,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":220.95,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":225.31,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":223.71,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":250.34,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":248.72,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":275.59,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":232.33,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":254.08,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":221.86,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":289.57,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":208.69,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":254.81,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":257.92,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":280.71,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":202.37,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":205.7,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":282.76,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":206.52,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":218.92,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":226.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":215.4,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":250.81,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":217.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":204.09,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":211.4,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":283.43,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":203.69,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":216.3,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":275.13,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":211.48,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":238.59,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":253.97,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":294.1,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":229.54,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":290.48,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":227.17,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":273.5,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":246.74,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":292.37,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":223.45,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":292.97,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":238.23,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":206.24,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":253.29,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":293.48,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":234.42,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":202.9,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":258.29,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":284.04,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":252.25,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":297.81,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":208.7,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":201.99,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":277.3,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":243.84,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":250.95,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":275.6,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":292.57,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":203.66,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":225.43,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":231.72,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":242.33,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":247.47,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":229.35,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":231.66,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":244.6,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":253.68,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":251.6,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":282.54,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":259.97,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":7663.35,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":7535.78,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":7495.88,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":6937.68,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":29632.69,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file diff --git a/test/data/dayData.json b/test/data/dayData.json index ad70aaebeefc7e679e8f380b10e8d4c5ead91e75..4d04550e79f9f3f13671c911904966c147bf5a36 100644 --- a/test/data/dayData.json +++ b/test/data/dayData.json @@ -1 +1 @@ -{"com.grandlyon.enedis.day":[{"load":6.08,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":8.81,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":5.02,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":5.98,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":9.82,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":4.32,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":9.75,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":3.81,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":6.04,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":7.54,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":9.39,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":8.37,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":5.78,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":4.43,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":7.67,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":3.75,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":4.73,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":8.91,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":4.42,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":7.69,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":9.82,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":6.59,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":7.76,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":9.97,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":8.77,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":4.16,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":9.88,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":7.31,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":4.86,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":5.16,"year":2020,"month":6,"day":29,"hour":0,"minute":0},{"load":5.79,"year":2020,"month":6,"day":30,"hour":0,"minute":0},{"load":6.7,"year":2020,"month":7,"day":1,"hour":0,"minute":0},{"load":5.9,"year":2020,"month":7,"day":2,"hour":0,"minute":0},{"load":4.19,"year":2020,"month":7,"day":3,"hour":0,"minute":0},{"load":5.47,"year":2020,"month":7,"day":4,"hour":0,"minute":0},{"load":3.37,"year":2020,"month":7,"day":5,"hour":0,"minute":0},{"load":8.55,"year":2020,"month":7,"day":6,"hour":0,"minute":0},{"load":6.72,"year":2020,"month":7,"day":7,"hour":0,"minute":0},{"load":9.01,"year":2020,"month":7,"day":8,"hour":0,"minute":0},{"load":3.45,"year":2020,"month":7,"day":9,"hour":0,"minute":0},{"load":7.42,"year":2020,"month":7,"day":10,"hour":0,"minute":0},{"load":8.56,"year":2020,"month":7,"day":11,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":7,"day":12,"hour":0,"minute":0},{"load":6.18,"year":2020,"month":7,"day":13,"hour":0,"minute":0},{"load":5.78,"year":2020,"month":7,"day":14,"hour":0,"minute":0},{"load":7.08,"year":2020,"month":7,"day":15,"hour":0,"minute":0},{"load":4.79,"year":2020,"month":7,"day":16,"hour":0,"minute":0},{"load":6.06,"year":2020,"month":7,"day":17,"hour":0,"minute":0},{"load":5.91,"year":2020,"month":7,"day":18,"hour":0,"minute":0},{"load":7,"year":2020,"month":7,"day":19,"hour":0,"minute":0},{"load":6.26,"year":2020,"month":7,"day":20,"hour":0,"minute":0},{"load":4.46,"year":2020,"month":7,"day":21,"hour":0,"minute":0},{"load":6.15,"year":2020,"month":7,"day":22,"hour":0,"minute":0},{"load":4.61,"year":2020,"month":7,"day":23,"hour":0,"minute":0},{"load":5.69,"year":2020,"month":7,"day":24,"hour":0,"minute":0},{"load":7.3,"year":2020,"month":7,"day":25,"hour":0,"minute":0},{"load":6.74,"year":2020,"month":7,"day":26,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":7,"day":27,"hour":0,"minute":0},{"load":3.72,"year":2020,"month":7,"day":28,"hour":0,"minute":0},{"load":8.85,"year":2020,"month":7,"day":29,"hour":0,"minute":0},{"load":4.37,"year":2020,"month":7,"day":30,"hour":0,"minute":0},{"load":8.28,"year":2020,"month":7,"day":31,"hour":0,"minute":0},{"load":5.62,"year":2020,"month":8,"day":1,"hour":0,"minute":0},{"load":9.24,"year":2020,"month":8,"day":2,"hour":0,"minute":0},{"load":9.99,"year":2020,"month":8,"day":3,"hour":0,"minute":0},{"load":3.75,"year":2020,"month":8,"day":4,"hour":0,"minute":0},{"load":4.93,"year":2020,"month":8,"day":5,"hour":0,"minute":0},{"load":4.9,"year":2020,"month":8,"day":6,"hour":0,"minute":0},{"load":8.48,"year":2020,"month":8,"day":7,"hour":0,"minute":0},{"load":6.03,"year":2020,"month":8,"day":8,"hour":0,"minute":0},{"load":4.47,"year":2020,"month":8,"day":9,"hour":0,"minute":0},{"load":5.02,"year":2020,"month":8,"day":10,"hour":0,"minute":0},{"load":4.68,"year":2020,"month":8,"day":11,"hour":0,"minute":0},{"load":5.72,"year":2020,"month":8,"day":12,"hour":0,"minute":0},{"load":3.56,"year":2020,"month":8,"day":13,"hour":0,"minute":0},{"load":9.03,"year":2020,"month":8,"day":14,"hour":0,"minute":0},{"load":5.29,"year":2020,"month":8,"day":15,"hour":0,"minute":0},{"load":9.19,"year":2020,"month":8,"day":16,"hour":0,"minute":0},{"load":4.99,"year":2020,"month":8,"day":17,"hour":0,"minute":0},{"load":8.06,"year":2020,"month":8,"day":18,"hour":0,"minute":0},{"load":9.2,"year":2020,"month":8,"day":19,"hour":0,"minute":0},{"load":5,"year":2020,"month":8,"day":20,"hour":0,"minute":0},{"load":9.42,"year":2020,"month":8,"day":21,"hour":0,"minute":0},{"load":4.85,"year":2020,"month":8,"day":22,"hour":0,"minute":0},{"load":6.55,"year":2020,"month":8,"day":23,"hour":0,"minute":0},{"load":6.52,"year":2020,"month":8,"day":24,"hour":0,"minute":0},{"load":5.64,"year":2020,"month":8,"day":25,"hour":0,"minute":0},{"load":8.91,"year":2020,"month":8,"day":26,"hour":0,"minute":0},{"load":9.87,"year":2020,"month":8,"day":27,"hour":0,"minute":0},{"load":5.38,"year":2020,"month":8,"day":28,"hour":0,"minute":0},{"load":4.93,"year":2020,"month":8,"day":29,"hour":0,"minute":0},{"load":5.02,"year":2020,"month":8,"day":30,"hour":0,"minute":0},{"load":5.1,"year":2020,"month":8,"day":31,"hour":0,"minute":0},{"load":8.9,"year":2020,"month":9,"day":1,"hour":0,"minute":0},{"load":8.43,"year":2020,"month":9,"day":2,"hour":0,"minute":0},{"load":7.32,"year":2020,"month":9,"day":3,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":9,"day":4,"hour":0,"minute":0},{"load":8.47,"year":2020,"month":9,"day":5,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":9,"day":6,"hour":0,"minute":0},{"load":5.37,"year":2020,"month":9,"day":7,"hour":0,"minute":0},{"load":4.26,"year":2020,"month":9,"day":8,"hour":0,"minute":0},{"load":4,"year":2020,"month":9,"day":9,"hour":0,"minute":0},{"load":8.67,"year":2020,"month":9,"day":10,"hour":0,"minute":0},{"load":4.9,"year":2020,"month":9,"day":11,"hour":0,"minute":0},{"load":9.78,"year":2020,"month":9,"day":12,"hour":0,"minute":0},{"load":6.76,"year":2020,"month":9,"day":13,"hour":0,"minute":0},{"load":6.16,"year":2020,"month":9,"day":14,"hour":0,"minute":0},{"load":4.8,"year":2020,"month":9,"day":15,"hour":0,"minute":0},{"load":7.33,"year":2020,"month":9,"day":16,"hour":0,"minute":0},{"load":3.59,"year":2020,"month":9,"day":17,"hour":0,"minute":0},{"load":6.12,"year":2020,"month":9,"day":18,"hour":0,"minute":0},{"load":6.59,"year":2020,"month":9,"day":19,"hour":0,"minute":0},{"load":3.91,"year":2020,"month":9,"day":20,"hour":0,"minute":0},{"load":5.11,"year":2020,"month":9,"day":21,"hour":0,"minute":0},{"load":8.38,"year":2020,"month":9,"day":22,"hour":0,"minute":0},{"load":6.97,"year":2020,"month":9,"day":23,"hour":0,"minute":0},{"load":6.39,"year":2020,"month":9,"day":24,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":35.71,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":206.97,"year":2020,"month":6,"day":0,"hour":0,"minute":0},{"load":191.88,"year":2020,"month":7,"day":0,"hour":0,"minute":0},{"load":202.62,"year":2020,"month":8,"day":0,"hour":0,"minute":0},{"load":140.61,"year":2020,"month":9,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":777.79,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.day":[{"load":35.53,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":25.49,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":16.23,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":59.35,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":63.01,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":46.92,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":49.29,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":38.33,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":64.76,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":58.58,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":58.57,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":30.01,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":46.96,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":49.11,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":54.54,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":18.32,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":67.22,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":36.71,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":52.45,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":18.15,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":16.12,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":23.03,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":58.67,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":21.87,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":31.59,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":30.95,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":30.73,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":24.53,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":23.6,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":43.88,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":20.22,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":36.81,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":41.63,"year":2020,"month":6,"day":29,"hour":0,"minute":0},{"load":32.63,"year":2020,"month":6,"day":30,"hour":0,"minute":0},{"load":57.19,"year":2020,"month":7,"day":1,"hour":0,"minute":0},{"load":53.01,"year":2020,"month":7,"day":2,"hour":0,"minute":0},{"load":32.09,"year":2020,"month":7,"day":3,"hour":0,"minute":0},{"load":59.38,"year":2020,"month":7,"day":4,"hour":0,"minute":0},{"load":18.23,"year":2020,"month":7,"day":5,"hour":0,"minute":0},{"load":45.7,"year":2020,"month":7,"day":6,"hour":0,"minute":0},{"load":42.09,"year":2020,"month":7,"day":7,"hour":0,"minute":0},{"load":60.09,"year":2020,"month":7,"day":8,"hour":0,"minute":0},{"load":28.81,"year":2020,"month":7,"day":9,"hour":0,"minute":0},{"load":20.35,"year":2020,"month":7,"day":10,"hour":0,"minute":0},{"load":58.91,"year":2020,"month":7,"day":11,"hour":0,"minute":0},{"load":56.64,"year":2020,"month":7,"day":12,"hour":0,"minute":0},{"load":57.47,"year":2020,"month":7,"day":13,"hour":0,"minute":0},{"load":24.81,"year":2020,"month":7,"day":14,"hour":0,"minute":0},{"load":51.01,"year":2020,"month":7,"day":15,"hour":0,"minute":0},{"load":27.62,"year":2020,"month":7,"day":16,"hour":0,"minute":0},{"load":19.69,"year":2020,"month":7,"day":17,"hour":0,"minute":0},{"load":28.89,"year":2020,"month":7,"day":18,"hour":0,"minute":0},{"load":16.59,"year":2020,"month":7,"day":19,"hour":0,"minute":0},{"load":21.56,"year":2020,"month":7,"day":20,"hour":0,"minute":0},{"load":62.16,"year":2020,"month":7,"day":21,"hour":0,"minute":0},{"load":29.34,"year":2020,"month":7,"day":22,"hour":0,"minute":0},{"load":36.89,"year":2020,"month":7,"day":23,"hour":0,"minute":0},{"load":52.78,"year":2020,"month":7,"day":24,"hour":0,"minute":0},{"load":50.75,"year":2020,"month":7,"day":25,"hour":0,"minute":0},{"load":33.32,"year":2020,"month":7,"day":26,"hour":0,"minute":0},{"load":27.03,"year":2020,"month":7,"day":27,"hour":0,"minute":0},{"load":41.7,"year":2020,"month":7,"day":28,"hour":0,"minute":0},{"load":63.76,"year":2020,"month":7,"day":29,"hour":0,"minute":0},{"load":59.09,"year":2020,"month":7,"day":30,"hour":0,"minute":0},{"load":28.01,"year":2020,"month":7,"day":31,"hour":0,"minute":0},{"load":24.6,"year":2020,"month":8,"day":1,"hour":0,"minute":0},{"load":31.23,"year":2020,"month":8,"day":2,"hour":0,"minute":0},{"load":54.23,"year":2020,"month":8,"day":3,"hour":0,"minute":0},{"load":29.09,"year":2020,"month":8,"day":4,"hour":0,"minute":0},{"load":24.93,"year":2020,"month":8,"day":5,"hour":0,"minute":0},{"load":59.86,"year":2020,"month":8,"day":6,"hour":0,"minute":0},{"load":45.15,"year":2020,"month":8,"day":7,"hour":0,"minute":0},{"load":55.66,"year":2020,"month":8,"day":8,"hour":0,"minute":0},{"load":35.11,"year":2020,"month":8,"day":9,"hour":0,"minute":0},{"load":16.84,"year":2020,"month":8,"day":10,"hour":0,"minute":0},{"load":42.01,"year":2020,"month":8,"day":11,"hour":0,"minute":0},{"load":66.55,"year":2020,"month":8,"day":12,"hour":0,"minute":0},{"load":21.88,"year":2020,"month":8,"day":13,"hour":0,"minute":0},{"load":67.07,"year":2020,"month":8,"day":14,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":8,"day":15,"hour":0,"minute":0},{"load":35.62,"year":2020,"month":8,"day":16,"hour":0,"minute":0},{"load":39.83,"year":2020,"month":8,"day":17,"hour":0,"minute":0},{"load":16.18,"year":2020,"month":8,"day":18,"hour":0,"minute":0},{"load":20.51,"year":2020,"month":8,"day":19,"hour":0,"minute":0},{"load":37.5,"year":2020,"month":8,"day":20,"hour":0,"minute":0},{"load":51.84,"year":2020,"month":8,"day":21,"hour":0,"minute":0},{"load":27.74,"year":2020,"month":8,"day":22,"hour":0,"minute":0},{"load":53.13,"year":2020,"month":8,"day":23,"hour":0,"minute":0},{"load":22.31,"year":2020,"month":8,"day":24,"hour":0,"minute":0},{"load":66.84,"year":2020,"month":8,"day":25,"hour":0,"minute":0},{"load":30.64,"year":2020,"month":8,"day":26,"hour":0,"minute":0},{"load":49.45,"year":2020,"month":8,"day":27,"hour":0,"minute":0},{"load":63.1,"year":2020,"month":8,"day":28,"hour":0,"minute":0},{"load":47.9,"year":2020,"month":8,"day":29,"hour":0,"minute":0},{"load":42.83,"year":2020,"month":8,"day":30,"hour":0,"minute":0},{"load":22.05,"year":2020,"month":8,"day":31,"hour":0,"minute":0},{"load":45.14,"year":2020,"month":9,"day":1,"hour":0,"minute":0},{"load":67.47,"year":2020,"month":9,"day":2,"hour":0,"minute":0},{"load":30.49,"year":2020,"month":9,"day":3,"hour":0,"minute":0},{"load":26.48,"year":2020,"month":9,"day":4,"hour":0,"minute":0},{"load":29.7,"year":2020,"month":9,"day":5,"hour":0,"minute":0},{"load":35.01,"year":2020,"month":9,"day":6,"hour":0,"minute":0},{"load":48.61,"year":2020,"month":9,"day":7,"hour":0,"minute":0},{"load":57.15,"year":2020,"month":9,"day":8,"hour":0,"minute":0},{"load":37.78,"year":2020,"month":9,"day":9,"hour":0,"minute":0},{"load":39.95,"year":2020,"month":9,"day":10,"hour":0,"minute":0},{"load":54.51,"year":2020,"month":9,"day":11,"hour":0,"minute":0},{"load":37.81,"year":2020,"month":9,"day":12,"hour":0,"minute":0},{"load":38.04,"year":2020,"month":9,"day":13,"hour":0,"minute":0},{"load":17.11,"year":2020,"month":9,"day":14,"hour":0,"minute":0},{"load":54.43,"year":2020,"month":9,"day":15,"hour":0,"minute":0},{"load":46.72,"year":2020,"month":9,"day":16,"hour":0,"minute":0},{"load":38.12,"year":2020,"month":9,"day":17,"hour":0,"minute":0},{"load":56.3,"year":2020,"month":9,"day":18,"hour":0,"minute":0},{"load":34.16,"year":2020,"month":9,"day":19,"hour":0,"minute":0},{"load":64.01,"year":2020,"month":9,"day":20,"hour":0,"minute":0},{"load":37.92,"year":2020,"month":9,"day":21,"hour":0,"minute":0},{"load":59.28,"year":2020,"month":9,"day":22,"hour":0,"minute":0},{"load":20.37,"year":2020,"month":9,"day":23,"hour":0,"minute":0},{"load":52.95,"year":2020,"month":9,"day":24,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":199.61,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":1183.37,"year":2020,"month":6,"day":0,"hour":0,"minute":0},{"load":1232.37,"year":2020,"month":7,"day":0,"hour":0,"minute":0},{"load":1284.74,"year":2020,"month":8,"day":0,"hour":0,"minute":0},{"load":984.37,"year":2020,"month":9,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":4884.46,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.day":[{"load":237.04,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":242.81,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":212.9,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":268.25,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":266.06,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":289.42,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":289.2,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":286.71,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":207.4,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":288.92,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":233.63,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":202.74,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":278.65,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":284.88,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":276.15,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":257.3,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":277.56,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":264.73,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":298.17,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":234.72,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":249.81,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":224.06,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":222.52,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":213.27,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":259.79,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":216.74,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":226.34,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":248.06,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":298.42,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":204.95,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":291.84,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":229.62,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":233.65,"year":2020,"month":6,"day":29,"hour":0,"minute":0},{"load":292.09,"year":2020,"month":6,"day":30,"hour":0,"minute":0},{"load":278.64,"year":2020,"month":7,"day":1,"hour":0,"minute":0},{"load":226.66,"year":2020,"month":7,"day":2,"hour":0,"minute":0},{"load":243.15,"year":2020,"month":7,"day":3,"hour":0,"minute":0},{"load":282.63,"year":2020,"month":7,"day":4,"hour":0,"minute":0},{"load":254.7,"year":2020,"month":7,"day":5,"hour":0,"minute":0},{"load":260.3,"year":2020,"month":7,"day":6,"hour":0,"minute":0},{"load":267.19,"year":2020,"month":7,"day":7,"hour":0,"minute":0},{"load":248.8,"year":2020,"month":7,"day":8,"hour":0,"minute":0},{"load":254.81,"year":2020,"month":7,"day":9,"hour":0,"minute":0},{"load":230.72,"year":2020,"month":7,"day":10,"hour":0,"minute":0},{"load":292.46,"year":2020,"month":7,"day":11,"hour":0,"minute":0},{"load":233.72,"year":2020,"month":7,"day":12,"hour":0,"minute":0},{"load":212.48,"year":2020,"month":7,"day":13,"hour":0,"minute":0},{"load":232.43,"year":2020,"month":7,"day":14,"hour":0,"minute":0},{"load":222.56,"year":2020,"month":7,"day":15,"hour":0,"minute":0},{"load":228.99,"year":2020,"month":7,"day":16,"hour":0,"minute":0},{"load":270.76,"year":2020,"month":7,"day":17,"hour":0,"minute":0},{"load":291.95,"year":2020,"month":7,"day":18,"hour":0,"minute":0},{"load":230.37,"year":2020,"month":7,"day":19,"hour":0,"minute":0},{"load":221.6,"year":2020,"month":7,"day":20,"hour":0,"minute":0},{"load":293.69,"year":2020,"month":7,"day":21,"hour":0,"minute":0},{"load":283.06,"year":2020,"month":7,"day":22,"hour":0,"minute":0},{"load":273.25,"year":2020,"month":7,"day":23,"hour":0,"minute":0},{"load":284.96,"year":2020,"month":7,"day":24,"hour":0,"minute":0},{"load":247.53,"year":2020,"month":7,"day":25,"hour":0,"minute":0},{"load":241.34,"year":2020,"month":7,"day":26,"hour":0,"minute":0},{"load":222.38,"year":2020,"month":7,"day":27,"hour":0,"minute":0},{"load":273.17,"year":2020,"month":7,"day":28,"hour":0,"minute":0},{"load":236.45,"year":2020,"month":7,"day":29,"hour":0,"minute":0},{"load":291.07,"year":2020,"month":7,"day":30,"hour":0,"minute":0},{"load":283.29,"year":2020,"month":7,"day":31,"hour":0,"minute":0},{"load":249.96,"year":2020,"month":8,"day":1,"hour":0,"minute":0},{"load":241.98,"year":2020,"month":8,"day":2,"hour":0,"minute":0},{"load":250.4,"year":2020,"month":8,"day":3,"hour":0,"minute":0},{"load":207.46,"year":2020,"month":8,"day":4,"hour":0,"minute":0},{"load":224.57,"year":2020,"month":8,"day":5,"hour":0,"minute":0},{"load":281.49,"year":2020,"month":8,"day":6,"hour":0,"minute":0},{"load":208.54,"year":2020,"month":8,"day":7,"hour":0,"minute":0},{"load":271.64,"year":2020,"month":8,"day":8,"hour":0,"minute":0},{"load":295.7,"year":2020,"month":8,"day":9,"hour":0,"minute":0},{"load":287.04,"year":2020,"month":8,"day":10,"hour":0,"minute":0},{"load":278.65,"year":2020,"month":8,"day":11,"hour":0,"minute":0},{"load":282.84,"year":2020,"month":8,"day":12,"hour":0,"minute":0},{"load":268.67,"year":2020,"month":8,"day":13,"hour":0,"minute":0},{"load":246.33,"year":2020,"month":8,"day":14,"hour":0,"minute":0},{"load":208.02,"year":2020,"month":8,"day":15,"hour":0,"minute":0},{"load":210.63,"year":2020,"month":8,"day":16,"hour":0,"minute":0},{"load":258.75,"year":2020,"month":8,"day":17,"hour":0,"minute":0},{"load":264.8,"year":2020,"month":8,"day":18,"hour":0,"minute":0},{"load":298.27,"year":2020,"month":8,"day":19,"hour":0,"minute":0},{"load":282.52,"year":2020,"month":8,"day":20,"hour":0,"minute":0},{"load":271.1,"year":2020,"month":8,"day":21,"hour":0,"minute":0},{"load":283.11,"year":2020,"month":8,"day":22,"hour":0,"minute":0},{"load":243.36,"year":2020,"month":8,"day":23,"hour":0,"minute":0},{"load":287.46,"year":2020,"month":8,"day":24,"hour":0,"minute":0},{"load":281.05,"year":2020,"month":8,"day":25,"hour":0,"minute":0},{"load":237.64,"year":2020,"month":8,"day":26,"hour":0,"minute":0},{"load":258.52,"year":2020,"month":8,"day":27,"hour":0,"minute":0},{"load":270.78,"year":2020,"month":8,"day":28,"hour":0,"minute":0},{"load":266.46,"year":2020,"month":8,"day":29,"hour":0,"minute":0},{"load":217.09,"year":2020,"month":8,"day":30,"hour":0,"minute":0},{"load":202.61,"year":2020,"month":8,"day":31,"hour":0,"minute":0},{"load":283.2,"year":2020,"month":9,"day":1,"hour":0,"minute":0},{"load":267.48,"year":2020,"month":9,"day":2,"hour":0,"minute":0},{"load":243.73,"year":2020,"month":9,"day":3,"hour":0,"minute":0},{"load":292.5,"year":2020,"month":9,"day":4,"hour":0,"minute":0},{"load":243.89,"year":2020,"month":9,"day":5,"hour":0,"minute":0},{"load":288.86,"year":2020,"month":9,"day":6,"hour":0,"minute":0},{"load":240.6,"year":2020,"month":9,"day":7,"hour":0,"minute":0},{"load":230.54,"year":2020,"month":9,"day":8,"hour":0,"minute":0},{"load":223.75,"year":2020,"month":9,"day":9,"hour":0,"minute":0},{"load":257.81,"year":2020,"month":9,"day":10,"hour":0,"minute":0},{"load":200.04,"year":2020,"month":9,"day":11,"hour":0,"minute":0},{"load":204.25,"year":2020,"month":9,"day":12,"hour":0,"minute":0},{"load":297.54,"year":2020,"month":9,"day":13,"hour":0,"minute":0},{"load":214.01,"year":2020,"month":9,"day":14,"hour":0,"minute":0},{"load":277.44,"year":2020,"month":9,"day":15,"hour":0,"minute":0},{"load":292.02,"year":2020,"month":9,"day":16,"hour":0,"minute":0},{"load":273.95,"year":2020,"month":9,"day":17,"hour":0,"minute":0},{"load":224.65,"year":2020,"month":9,"day":18,"hour":0,"minute":0},{"load":205.56,"year":2020,"month":9,"day":19,"hour":0,"minute":0},{"load":233.97,"year":2020,"month":9,"day":20,"hour":0,"minute":0},{"load":283.7,"year":2020,"month":9,"day":21,"hour":0,"minute":0},{"load":236.3,"year":2020,"month":9,"day":22,"hour":0,"minute":0},{"load":242.84,"year":2020,"month":9,"day":23,"hour":0,"minute":0},{"load":232.41,"year":2020,"month":9,"day":24,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":1227.06,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":7659.98,"year":2020,"month":6,"day":0,"hour":0,"minute":0},{"load":7886.43,"year":2020,"month":7,"day":0,"hour":0,"minute":0},{"load":7970.68,"year":2020,"month":8,"day":0,"hour":0,"minute":0},{"load":5707.84,"year":2020,"month":9,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":30451.99,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file +{"com.grandlyon.enedis.day":[{"load":8.68,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":9.16,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":9.5,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":8.15,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":4.59,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":3.54,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":9.21,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":7.08,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":4.4,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":5.22,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":3.41,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":3.33,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":6.61,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":9.36,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":6.45,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":9.29,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":7.63,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":4.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":7.1,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":9.56,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":7.74,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":9.03,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":7.2,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":4.65,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":7.98,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":3.01,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":4.67,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":5.53,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":8.43,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":9.08,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":9.18,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":3.15,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":3.26,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":7.97,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":7.09,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":7.34,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":6.55,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":8.89,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":8.5,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":3.09,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":9.6,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":8.07,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":7.47,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":3.4,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":5.24,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":3.06,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":7.16,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":5.07,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":5.82,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":5.75,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":5.52,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":6.62,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":4.27,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":8.87,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":7.04,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":8.21,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":3.85,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":8.96,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":9.83,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":3.36,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":4.05,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":8.95,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":7.85,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":9.96,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":5.44,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":9.65,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":5.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":3.05,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":9.62,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":4.28,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":3.11,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":7.45,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":5.36,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":9.64,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":4.5,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":5.11,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":7.72,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":9.19,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":8.19,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":4.41,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":7.95,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":8.4,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":8.73,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":5.2,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":4.26,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":3.8,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":6.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":7.28,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":8.83,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":6.49,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":6.84,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":9.76,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":3.12,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":8.7,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":7.81,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":5.05,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":7.76,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":8.68,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":6.58,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":7.68,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":5.51,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":7.02,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":5.28,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":9.06,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":9.41,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":8.09,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":3.51,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":4.73,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":8.66,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":9.45,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":5.84,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":6.63,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":7.43,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":9.44,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":3.65,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.enedis.month":[{"load":204.78,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":193.08,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":209.08,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":198.29,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.enedis.year":[{"load":805.23,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.day":[{"load":54.26,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":23.68,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":37.71,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":49.7,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":17.21,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":65.57,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":18.23,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":34.33,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":28.06,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":57.34,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":30.97,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":58.28,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":49.57,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":66.56,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":22.51,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":17.31,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":16,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":39.09,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":28.44,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":44.14,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":59.75,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":30.8,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":29.87,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":42.77,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":61.1,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":20.67,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":53.12,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":31.16,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":36.92,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":25.89,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":35.35,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":60.23,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":20.91,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":45.95,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":59.7,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":64.69,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":67.26,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":63.95,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":47.16,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":67.37,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":64.67,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":34.26,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":43.72,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":16.33,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":39.6,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":31.53,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":41.88,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":25.59,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":16.86,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":21.62,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":26.31,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":50.56,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":35.57,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":60.46,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":45.19,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":45.61,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":18.76,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":55.74,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":18.01,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":62.47,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":46.36,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":30.68,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":34.05,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":65.52,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":41.96,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":17.5,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":39.3,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":31.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":39.88,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":59.32,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":30.2,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":25.99,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":30.02,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":61.32,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":30.49,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":62.52,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":54.46,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":34.97,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":65.65,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":47.9,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":31.9,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":32.14,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":60.88,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":62.44,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":40.6,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":22.11,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":31.99,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":64.52,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":41.9,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":39.57,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":17.65,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":37.92,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":21.91,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":39.04,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":25.55,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":22.35,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":36.99,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":38.82,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":18.47,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":51.11,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":23.93,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":63.05,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":42.87,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":64.65,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":22.86,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":56.89,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":35.68,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":23.83,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":22.83,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":27.9,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":21.87,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":19.93,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":32.48,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":66.18,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":21.37,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":62.57,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":56.02,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":60.83,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":47.79,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.grdf.month":[{"load":1213.53,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":1287.31,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":1295.15,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":1065.69,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.grdf.year":[{"load":4861.68,"year":2020,"month":1,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.day":[{"load":247.65,"year":2020,"month":3,"day":2,"hour":0,"minute":0},{"load":232.71,"year":2020,"month":3,"day":3,"hour":0,"minute":0},{"load":217.9,"year":2020,"month":3,"day":4,"hour":0,"minute":0},{"load":258.81,"year":2020,"month":3,"day":5,"hour":0,"minute":0},{"load":289.17,"year":2020,"month":3,"day":6,"hour":0,"minute":0},{"load":286.9,"year":2020,"month":3,"day":7,"hour":0,"minute":0},{"load":206.26,"year":2020,"month":3,"day":8,"hour":0,"minute":0},{"load":201.78,"year":2020,"month":3,"day":9,"hour":0,"minute":0},{"load":200.18,"year":2020,"month":3,"day":10,"hour":0,"minute":0},{"load":202.96,"year":2020,"month":3,"day":11,"hour":0,"minute":0},{"load":286.27,"year":2020,"month":3,"day":12,"hour":0,"minute":0},{"load":238.18,"year":2020,"month":3,"day":13,"hour":0,"minute":0},{"load":274.11,"year":2020,"month":3,"day":14,"hour":0,"minute":0},{"load":276.18,"year":2020,"month":3,"day":15,"hour":0,"minute":0},{"load":223.14,"year":2020,"month":3,"day":16,"hour":0,"minute":0},{"load":299.63,"year":2020,"month":3,"day":17,"hour":0,"minute":0},{"load":276.89,"year":2020,"month":3,"day":18,"hour":0,"minute":0},{"load":288.3,"year":2020,"month":3,"day":19,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":3,"day":20,"hour":0,"minute":0},{"load":296.3,"year":2020,"month":3,"day":21,"hour":0,"minute":0},{"load":273.51,"year":2020,"month":3,"day":22,"hour":0,"minute":0},{"load":204.61,"year":2020,"month":3,"day":23,"hour":0,"minute":0},{"load":203.61,"year":2020,"month":3,"day":24,"hour":0,"minute":0},{"load":230.36,"year":2020,"month":3,"day":25,"hour":0,"minute":0},{"load":218.49,"year":2020,"month":3,"day":26,"hour":0,"minute":0},{"load":280.85,"year":2020,"month":3,"day":27,"hour":0,"minute":0},{"load":223.82,"year":2020,"month":3,"day":28,"hour":0,"minute":0},{"load":252.06,"year":2020,"month":3,"day":29,"hour":0,"minute":0},{"load":291.88,"year":2020,"month":3,"day":30,"hour":0,"minute":0},{"load":207.27,"year":2020,"month":3,"day":31,"hour":0,"minute":0},{"load":249.33,"year":2020,"month":4,"day":1,"hour":0,"minute":0},{"load":220.06,"year":2020,"month":4,"day":2,"hour":0,"minute":0},{"load":249.28,"year":2020,"month":4,"day":3,"hour":0,"minute":0},{"load":287.94,"year":2020,"month":4,"day":4,"hour":0,"minute":0},{"load":237.88,"year":2020,"month":4,"day":5,"hour":0,"minute":0},{"load":287.62,"year":2020,"month":4,"day":6,"hour":0,"minute":0},{"load":299.19,"year":2020,"month":4,"day":7,"hour":0,"minute":0},{"load":254.24,"year":2020,"month":4,"day":8,"hour":0,"minute":0},{"load":272.49,"year":2020,"month":4,"day":9,"hour":0,"minute":0},{"load":232.14,"year":2020,"month":4,"day":10,"hour":0,"minute":0},{"load":284.61,"year":2020,"month":4,"day":11,"hour":0,"minute":0},{"load":258.03,"year":2020,"month":4,"day":12,"hour":0,"minute":0},{"load":234.38,"year":2020,"month":4,"day":13,"hour":0,"minute":0},{"load":295.21,"year":2020,"month":4,"day":14,"hour":0,"minute":0},{"load":236.01,"year":2020,"month":4,"day":15,"hour":0,"minute":0},{"load":257.66,"year":2020,"month":4,"day":16,"hour":0,"minute":0},{"load":250.71,"year":2020,"month":4,"day":17,"hour":0,"minute":0},{"load":213.32,"year":2020,"month":4,"day":18,"hour":0,"minute":0},{"load":259.05,"year":2020,"month":4,"day":19,"hour":0,"minute":0},{"load":220.95,"year":2020,"month":4,"day":20,"hour":0,"minute":0},{"load":225.31,"year":2020,"month":4,"day":21,"hour":0,"minute":0},{"load":223.71,"year":2020,"month":4,"day":22,"hour":0,"minute":0},{"load":250.34,"year":2020,"month":4,"day":23,"hour":0,"minute":0},{"load":248.72,"year":2020,"month":4,"day":24,"hour":0,"minute":0},{"load":275.59,"year":2020,"month":4,"day":25,"hour":0,"minute":0},{"load":232.33,"year":2020,"month":4,"day":26,"hour":0,"minute":0},{"load":254.08,"year":2020,"month":4,"day":27,"hour":0,"minute":0},{"load":221.86,"year":2020,"month":4,"day":28,"hour":0,"minute":0},{"load":289.57,"year":2020,"month":4,"day":29,"hour":0,"minute":0},{"load":208.69,"year":2020,"month":4,"day":30,"hour":0,"minute":0},{"load":254.81,"year":2020,"month":5,"day":1,"hour":0,"minute":0},{"load":257.92,"year":2020,"month":5,"day":2,"hour":0,"minute":0},{"load":280.71,"year":2020,"month":5,"day":3,"hour":0,"minute":0},{"load":202.37,"year":2020,"month":5,"day":4,"hour":0,"minute":0},{"load":205.7,"year":2020,"month":5,"day":5,"hour":0,"minute":0},{"load":282.76,"year":2020,"month":5,"day":6,"hour":0,"minute":0},{"load":206.52,"year":2020,"month":5,"day":7,"hour":0,"minute":0},{"load":218.92,"year":2020,"month":5,"day":8,"hour":0,"minute":0},{"load":226.36,"year":2020,"month":5,"day":9,"hour":0,"minute":0},{"load":215.4,"year":2020,"month":5,"day":10,"hour":0,"minute":0},{"load":250.81,"year":2020,"month":5,"day":11,"hour":0,"minute":0},{"load":217.54,"year":2020,"month":5,"day":12,"hour":0,"minute":0},{"load":204.09,"year":2020,"month":5,"day":13,"hour":0,"minute":0},{"load":211.4,"year":2020,"month":5,"day":14,"hour":0,"minute":0},{"load":283.43,"year":2020,"month":5,"day":15,"hour":0,"minute":0},{"load":203.69,"year":2020,"month":5,"day":16,"hour":0,"minute":0},{"load":216.3,"year":2020,"month":5,"day":17,"hour":0,"minute":0},{"load":275.13,"year":2020,"month":5,"day":18,"hour":0,"minute":0},{"load":224.24,"year":2020,"month":5,"day":19,"hour":0,"minute":0},{"load":211.48,"year":2020,"month":5,"day":20,"hour":0,"minute":0},{"load":238.59,"year":2020,"month":5,"day":21,"hour":0,"minute":0},{"load":253.97,"year":2020,"month":5,"day":22,"hour":0,"minute":0},{"load":294.1,"year":2020,"month":5,"day":23,"hour":0,"minute":0},{"load":229.54,"year":2020,"month":5,"day":24,"hour":0,"minute":0},{"load":290.48,"year":2020,"month":5,"day":25,"hour":0,"minute":0},{"load":227.17,"year":2020,"month":5,"day":26,"hour":0,"minute":0},{"load":273.5,"year":2020,"month":5,"day":27,"hour":0,"minute":0},{"load":246.74,"year":2020,"month":5,"day":28,"hour":0,"minute":0},{"load":292.37,"year":2020,"month":5,"day":29,"hour":0,"minute":0},{"load":223.45,"year":2020,"month":5,"day":30,"hour":0,"minute":0},{"load":292.97,"year":2020,"month":5,"day":31,"hour":0,"minute":0},{"load":238.23,"year":2020,"month":6,"day":1,"hour":0,"minute":0},{"load":206.24,"year":2020,"month":6,"day":2,"hour":0,"minute":0},{"load":253.29,"year":2020,"month":6,"day":3,"hour":0,"minute":0},{"load":293.48,"year":2020,"month":6,"day":4,"hour":0,"minute":0},{"load":234.42,"year":2020,"month":6,"day":5,"hour":0,"minute":0},{"load":202.9,"year":2020,"month":6,"day":6,"hour":0,"minute":0},{"load":258.29,"year":2020,"month":6,"day":7,"hour":0,"minute":0},{"load":284.04,"year":2020,"month":6,"day":8,"hour":0,"minute":0},{"load":252.25,"year":2020,"month":6,"day":9,"hour":0,"minute":0},{"load":297.81,"year":2020,"month":6,"day":10,"hour":0,"minute":0},{"load":208.7,"year":2020,"month":6,"day":11,"hour":0,"minute":0},{"load":201.99,"year":2020,"month":6,"day":12,"hour":0,"minute":0},{"load":277.3,"year":2020,"month":6,"day":13,"hour":0,"minute":0},{"load":243.84,"year":2020,"month":6,"day":14,"hour":0,"minute":0},{"load":250.95,"year":2020,"month":6,"day":15,"hour":0,"minute":0},{"load":275.6,"year":2020,"month":6,"day":16,"hour":0,"minute":0},{"load":292.57,"year":2020,"month":6,"day":17,"hour":0,"minute":0},{"load":203.66,"year":2020,"month":6,"day":18,"hour":0,"minute":0},{"load":225.43,"year":2020,"month":6,"day":19,"hour":0,"minute":0},{"load":231.72,"year":2020,"month":6,"day":20,"hour":0,"minute":0},{"load":242.33,"year":2020,"month":6,"day":21,"hour":0,"minute":0},{"load":247.47,"year":2020,"month":6,"day":22,"hour":0,"minute":0},{"load":229.35,"year":2020,"month":6,"day":23,"hour":0,"minute":0},{"load":231.66,"year":2020,"month":6,"day":24,"hour":0,"minute":0},{"load":244.6,"year":2020,"month":6,"day":25,"hour":0,"minute":0},{"load":253.68,"year":2020,"month":6,"day":26,"hour":0,"minute":0},{"load":251.6,"year":2020,"month":6,"day":27,"hour":0,"minute":0},{"load":282.54,"year":2020,"month":6,"day":28,"hour":0,"minute":0},{"load":259.97,"year":2020,"month":6,"day":29,"hour":0,"minute":0}],"com.grandlyon.egl.month":[{"load":7663.35,"year":2020,"month":3,"day":0,"hour":0,"minute":0},{"load":7535.78,"year":2020,"month":4,"day":0,"hour":0,"minute":0},{"load":7495.88,"year":2020,"month":5,"day":0,"hour":0,"minute":0},{"load":6937.68,"year":2020,"month":6,"day":1,"hour":0,"minute":0}],"com.grandlyon.egl.year":[{"load":29632.69,"year":2020,"month":1,"day":1,"hour":0,"minute":0}]} \ No newline at end of file