'', 'transactionStartTime' => 0, 'transactionStartEnergyImport' => 0.0, 'transactionStartEnergyExport' => 0.0, 'lastTransactionState' => '', 'lastIdToken' => '', 'sessionEnergyImport' => 0.0, 'sessionEnergyExport' => 0.0, 'sessionPeakPower' => 0.0, 'sessionStopReason' => '' ]; } public static function fromJson(string $json): array { $data = json_decode($json, true); if (!is_array($data)) { return self::empty(); } return array_replace(self::empty(), $data); } public static function toJson(array $state): string { return json_encode(array_replace(self::empty(), $state)); } } ?>